Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitf8346ae

Browse files
committed
Merge pull request#303 from torbjoernk/add-cmake-config
provide cppnetlibConfig.cmake file
2 parentsaef1e7d +a627916 commitf8346ae

File tree

4 files changed

+112
-8
lines changed

4 files changed

+112
-8
lines changed

‎CMakeLists.txt‎

Lines changed: 53 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,24 @@ project(CPP-NETLIB)
88

99
option( CPP-NETLIB_BUILD_SHARED_LIBS"Build cpp-netlib as shared libraries."OFF )
1010

11+
include(GNUInstallDirs)
12+
13+
# determine install path for CMake config files
14+
if(WIN32ANDNOTCYGWIN)
15+
set(DEF_INSTALL_CMAKE_DIR CMake)
16+
else()
17+
set(DEF_INSTALL_CMAKE_DIR lib/CMake/cppnetlib)
18+
endif()
19+
set(INSTALL_CMAKE_DIR${DEF_INSTALL_CMAKE_DIR}CACHEPATH"Installation directory for CMake files")
20+
21+
# Make relative cmake install path absolute (needed later on)
22+
if(NOTIS_ABSOLUTE"${INSTALL_CMAKE_DIR}")
23+
set(INSTALL_CMAKE_DIR"${CMAKE_INSTALL_PREFIX}/${INSTALL_CMAKE_DIR}")
24+
endif()
25+
26+
1127
if(CPP-NETLIB_BUILD_SHARED_LIBSORBUILD_SHARED_LIBS)
12-
message ("Linking boost testing libs dynamically...")
28+
message (STATUS"Linking boost testing libs dynamically...")
1329
set(Boost_USE_STATIC_LIBSOFF)
1430
set(CPP-NETLIB_BUILD_SHARED_LIBSON)
1531
set(BUILD_SHARED_LIBSON)
@@ -68,5 +84,40 @@ endif()
6884

6985
enable_testing()
7086

71-
include(GNUInstallDirs)
7287
install(DIRECTORY boostDESTINATION${CMAKE_INSTALL_INCLUDEDIR})
88+
89+
###
90+
## Export Targets
91+
# (so cpp-netlib can be easily used by other CMake projects)
92+
# [see http://www.cmake.org/Wiki/CMake/Tutorials/How_to_create_a_ProjectConfig.cmake_file]
93+
94+
# Add all targets to the build-tree export set
95+
export(TARGETS cppnetlib-client-connections cppnetlib-server-parsers cppnetlib-uri
96+
FILE"${PROJECT_BINARY_DIR}/cppnetlibTargets.cmake")
97+
# Export the package for use from the build-tree
98+
# (this registers the build-tree with a global CMake-registry)
99+
export(PACKAGE cppnetlib)
100+
# Create the cppnetlibConfig.cmake and cppnetlibConfigVersion files
101+
file(RELATIVE_PATH REL_INCLUDE_DIR"${INSTALL_CMAKE_DIR}"
102+
"${CMAKE_INSTALL_FULL_INCLUDEDIR}")
103+
# ... for the build tree
104+
set(CONF_INCLUDE_DIRS"${PROJECT_SOURCE_DIR}")
105+
configure_file(cppnetlibConfig.cmake.in
106+
"${PROJECT_BINARY_DIR}/cppnetlibConfig.cmake" @ONLY)
107+
# ... for the install tree
108+
set(CONF_INCLUDE_DIRS"\${CPPNETLIB_CMAKE_DIR}/${REL_INCLUDE_DIR}")
109+
configure_file(cppnetlibConfig.cmake.in
110+
"${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/cppnetlibConfig.cmake" @ONLY)
111+
# ... for both
112+
configure_file(cppnetlibConfigVersion.cmake.in
113+
"${PROJECT_BINARY_DIR}/cppnetlibConfigVersion.cmake" @ONLY)
114+
# Install the cppnetlibConfig.cmake and cppnetlibConfigVersion.cmake
115+
install(FILES
116+
"${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/cppnetlibConfig.cmake"
117+
"${PROJECT_BINARY_DIR}/cppnetlibConfigVersion.cmake"
118+
DESTINATION"${INSTALL_CMAKE_DIR}"
119+
COMPONENT dev)
120+
# Install the export set for use with the install-tree
121+
install(EXPORT cppnetlibTargets
122+
DESTINATION"${INSTALL_CMAKE_DIR}"
123+
COMPONENT dev)

‎cppnetlibConfig.cmake.in‎

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# - Config file for the cppnetlib package
2+
# It defines the following variables
3+
# CPPNETLIB_INCLUDE_DIRS - include directories for cppnetlib
4+
# CPPNETLIB_LIBRARIES - libraries to link against
5+
# CPPNETLIB_EXECUTABLE - the bar executable
6+
7+
# Compute paths
8+
get_filename_component(CPPNETLIB_CMAKE_DIR"${CMAKE_CURRENT_LIST_FILE}"PATH)
9+
set(CPPNETLIB_INCLUDE_DIRS"@CONF_INCLUDE_DIRS@")
10+
11+
# Our library dependencies (contains definitions for IMPORTED targets)
12+
if(NOTTARGET cppnetlib-client-connections
13+
ANDNOTTARGET cppnetlib-server-parsers
14+
ANDNOTTARGET cppnetlib-uri
15+
ANDNOTCPPNETLIB_BINARY_DIR)
16+
include("${CPPNETLIB_CMAKE_DIR}/cppnetlibTargets.cmake")
17+
endif()
18+
19+
# These are IMPORTED targets created by cppnetlibTargets.cmake
20+
set(CPPNETLIB_LIBRARIES
21+
cppnetlib-client-connections
22+
cppnetlib-server-parsers
23+
cppnetlib-uri)
24+
#set(CPPNETLIB_EXECUTABLE ...) # maybe the examples?

‎cppnetlibConfigVersion.cmake.in‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
set(PACKAGE_VERSION"@CPPNETLIB_VERSION_STRING@")
2+
3+
# Check whether the requested PACKAGE_FIND_VERSION is compatible
4+
if("${PACKAGE_VERSION}"VERSION_LESS"${PACKAGE_FIND_VERSION}")
5+
set(PACKAGE_VERSION_COMPATIBLEFALSE)
6+
else()
7+
set(PACKAGE_VERSION_COMPATIBLETRUE)
8+
if ("${PACKAGE_VERSION}"VERSION_EQUAL"${PACKAGE_FIND_VERSION}")
9+
set(PACKAGE_VERSION_EXACTTRUE)
10+
endif()
11+
endif()

‎libs/network/src/CMakeLists.txt‎

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,38 @@
88

99
include_directories(${CPP-NETLIB_SOURCE_DIR})
1010

11+
file(GLOB_RECURSE CPP-NETLIB_HEADERS
12+
"${CPP-NETLIB_SOURCE_DIR}/boost/""*.hpp")
13+
1114
set(CPP-NETLIB_URI_SRCS uri/uri.cpp uri/schemes.cpp)
1215
add_library(cppnetlib-uri ${CPP-NETLIB_URI_SRCS})
1316
set_target_properties(cppnetlib-uri
14-
PROPERTIESVERSION${CPPNETLIB_VERSION_STRING}SOVERSION${CPPNETLIB_VERSION_MAJOR})
15-
install(TARGETS cppnetlib-uriDESTINATION${CMAKE_INSTALL_LIBDIR})
17+
PROPERTIESVERSION${CPPNETLIB_VERSION_STRING}
18+
SOVERSION${CPPNETLIB_VERSION_MAJOR}
19+
PUBLIC_HEADER"${CPP-NETLIB_HEADERS}")
20+
install(TARGETS cppnetlib-uri
21+
EXPORT cppnetlibTargets
22+
PUBLIC_HEADERDESTINATION${CMAKE_INSTALL_FULL_INCLUDEDIR}
23+
LIBRARYDESTINATION${CMAKE_INSTALL_FULL_LIBDIR})
1624

1725
set(CPP-NETLIB_HTTP_SERVER_SRCS server_request_parsers_impl.cpp)
1826
add_library(cppnetlib-server-parsers ${CPP-NETLIB_HTTP_SERVER_SRCS})
1927
set_target_properties(cppnetlib-server-parsers
20-
PROPERTIESVERSION${CPPNETLIB_VERSION_STRING}SOVERSION${CPPNETLIB_VERSION_MAJOR})
21-
install(TARGETS cppnetlib-server-parsersDESTINATION${CMAKE_INSTALL_LIBDIR})
28+
PROPERTIESVERSION${CPPNETLIB_VERSION_STRING}
29+
SOVERSION${CPPNETLIB_VERSION_MAJOR}
30+
PUBLIC_HEADER"${CPP-NETLIB_HEADERS}")
31+
install(TARGETS cppnetlib-server-parsers
32+
EXPORT cppnetlibTargets
33+
PUBLIC_HEADERDESTINATION${CMAKE_INSTALL_FULL_INCLUDEDIR}
34+
LIBRARYDESTINATION${CMAKE_INSTALL_FULL_LIBDIR})
2235

2336
set(CPP-NETLIB_HTTP_CLIENT_SRCS client.cpp)
2437
add_library(cppnetlib-client-connections ${CPP-NETLIB_HTTP_CLIENT_SRCS})
2538
set_target_properties(cppnetlib-client-connections
26-
PROPERTIESVERSION${CPPNETLIB_VERSION_STRING}SOVERSION${CPPNETLIB_VERSION_MAJOR})
27-
install(TARGETS cppnetlib-client-connectionsDESTINATION${CMAKE_INSTALL_LIBDIR})
39+
PROPERTIESVERSION${CPPNETLIB_VERSION_STRING}
40+
SOVERSION${CPPNETLIB_VERSION_MAJOR}
41+
PUBLIC_HEADER"${CPP-NETLIB_HEADERS}")
42+
install(TARGETS cppnetlib-client-connections
43+
EXPORT cppnetlibTargets
44+
PUBLIC_HEADERDESTINATION${CMAKE_INSTALL_FULL_INCLUDEDIR}
45+
LIBRARYDESTINATION${CMAKE_INSTALL_FULL_LIBDIR})

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp