Skip to content

Commit f5c0df5

Browse files
add find_package support.
1 parent 35456f4 commit f5c0df5

File tree

2 files changed

+43
-1
lines changed

2 files changed

+43
-1
lines changed

CMakeLists.txt

+24-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,12 @@ option(CROW_FEATURE_COMPRESSION "Enable compression capabilities (ZLIB)" OFF)
3434
#####################################
3535
add_library(Crow INTERFACE)
3636
add_library(Crow::Crow ALIAS Crow)
37-
target_include_directories(Crow INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/include)
37+
38+
target_include_directories(Crow
39+
INTERFACE
40+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
41+
$<INSTALL_INTERFACE:include>
42+
)
3843

3944
find_package(Boost 1.64 COMPONENTS system date_time REQUIRED)
4045
find_package(Threads REQUIRED)
@@ -84,7 +89,25 @@ endif()
8489
# Install Files
8590
#####################################
8691
if(CROW_INSTALL)
92+
install(TARGETS Crow EXPORT CrowTargets)
8793
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION include)
94+
95+
install(EXPORT CrowTargets
96+
FILE CrowTargets.cmake
97+
NAMESPACE Crow::
98+
DESTINATION lib/cmake/Crow
99+
)
100+
101+
include(CMakePackageConfigHelpers)
102+
configure_package_config_file(
103+
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/CrowConfig.cmake.in"
104+
"${CMAKE_CURRENT_BINARY_DIR}/CrowConfig.cmake"
105+
INSTALL_DESTINATION lib/cmake/Crow
106+
)
107+
install(FILES
108+
"${CMAKE_CURRENT_BINARY_DIR}/CrowConfig.cmake"
109+
DESTINATION lib/cmake/Crow
110+
)
88111
endif()
89112

90113
set(CPACK_GENERATOR "DEB")

cmake/CrowConfig.cmake.in

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
@PACKAGE_INIT@
2+
3+
set(CROW_FEATURE_COMPRESSION @CROW_FEATURE_COMPRESSION@)
4+
set(CROW_FEATURE_SSL @CROW_FEATURE_SSL@)
5+
6+
include(CMakeFindDependencyMacro)
7+
find_dependency(Boost 1.64 COMPONENTS system date_time)
8+
find_dependency(Threads)
9+
10+
if(CROW_FEATURE_COMPRESSION)
11+
find_dependency(ZLIB)
12+
endif()
13+
14+
if(CROW_FEATURE_SSL)
15+
find_dependency(OpenSSL)
16+
endif()
17+
18+
include("${CMAKE_CURRENT_LIST_DIR}/CrowTargets.cmake")
19+
check_required_components("@PROJECT_NAME@")

0 commit comments

Comments
 (0)