|
1 | 1 |
|
2 | 2 | ############ Setup project and cmake |
3 | | - |
4 | | -# Project name |
5 | | -project (websocketpp) |
6 | | - |
7 | 3 | # Minimum cmake requirement. We should require a quite recent |
8 | 4 | # cmake for the dependency find macros etc. to be up to date. |
9 | | -cmake_minimum_required (VERSION 2.6) |
| 5 | +cmake_minimum_required (VERSION 2.8.8) |
10 | 6 |
|
| 7 | +############ Paths |
| 8 | + |
| 9 | +set (WEBSOCKETPP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}) |
| 10 | +set (WEBSOCKETPP_INCLUDE ${WEBSOCKETPP_ROOT}/websocketpp) |
| 11 | +set (WEBSOCKETPP_BUILD_ROOT ${CMAKE_CURRENT_BINARY_DIR}) |
| 12 | +set (WEBSOCKETPP_BIN ${WEBSOCKETPP_BUILD_ROOT}/bin) |
| 13 | +set (WEBSOCKETPP_LIB ${WEBSOCKETPP_BUILD_ROOT}/lib) |
| 14 | + |
| 15 | +# CMake install step prefix. I assume linux users want the prefix to |
| 16 | +# be the default /usr or /usr/local so this is only adjusted on Windows. |
| 17 | +# This must be set prior to any call to project or it will not be read correctly. |
| 18 | +# - Windows: Build the INSTALL project in your solution file. |
| 19 | +# - Linux/OSX: make install. |
| 20 | +if (WIN32) |
| 21 | + set (CMAKE_INSTALL_PREFIX "${WEBSOCKETPP_ROOT}/install" CACHE PATH "") |
| 22 | +endif () |
| 23 | + |
| 24 | +############ Project name and version |
11 | 25 | set (WEBSOCKETPP_MAJOR_VERSION 0) |
12 | | -set (WEBSOCKETPP_MINOR_VERSION 7) |
13 | | -set (WEBSOCKETPP_PATCH_VERSION 0) |
| 26 | +set (WEBSOCKETPP_MINOR_VERSION 8) |
| 27 | +set (WEBSOCKETPP_PATCH_VERSION 1) |
14 | 28 | set (WEBSOCKETPP_VERSION ${WEBSOCKETPP_MAJOR_VERSION}.${WEBSOCKETPP_MINOR_VERSION}.${WEBSOCKETPP_PATCH_VERSION}) |
15 | 29 |
|
| 30 | +if(POLICY CMP0048) |
| 31 | + cmake_policy(GET CMP0048 _version_policy) |
| 32 | +endif() |
| 33 | + |
| 34 | +if(_version_allowed STREQUAL NEW) |
| 35 | + project (websocketpp VERSION ${WEBSOCKETPP_VERSION}) |
| 36 | +else() |
| 37 | + project (websocketpp) |
| 38 | +endif() |
| 39 | + |
16 | 40 | set_property(GLOBAL PROPERTY USE_FOLDERS ON) |
17 | 41 |
|
18 | 42 | set(INSTALL_INCLUDE_DIR include CACHE PATH "Installation directory for header files") |
@@ -44,21 +68,6 @@ set (CMAKE_CONFIGURATION_TYPES "Release;RelWithDebInfo;Debug" CACHE STRING "Conf |
44 | 68 | set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) |
45 | 69 | include (CMakeHelpers) |
46 | 70 |
|
47 | | -############ Paths |
48 | | - |
49 | | -set (WEBSOCKETPP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}) |
50 | | -set (WEBSOCKETPP_INCLUDE ${WEBSOCKETPP_ROOT}/websocketpp) |
51 | | -set (WEBSOCKETPP_BUILD_ROOT ${CMAKE_CURRENT_BINARY_DIR}) |
52 | | -set (WEBSOCKETPP_BIN ${WEBSOCKETPP_BUILD_ROOT}/bin) |
53 | | -set (WEBSOCKETPP_LIB ${WEBSOCKETPP_BUILD_ROOT}/lib) |
54 | | - |
55 | | -# CMake install step prefix. I assume linux users want the prefix to |
56 | | -# be the default /usr or /usr/local so this is only adjusted on Windows. |
57 | | -# - Windows: Build the INSTALL project in your solution file. |
58 | | -# - Linux/OSX: make install. |
59 | | -if (MSVC) |
60 | | - set (CMAKE_INSTALL_PREFIX "${WEBSOCKETPP_ROOT}/install") |
61 | | -endif () |
62 | 71 |
|
63 | 72 | ############ Build customization |
64 | 73 |
|
@@ -193,7 +202,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES) |
193 | 202 | endif () |
194 | 203 |
|
195 | 204 | if (NOT Boost_USE_STATIC_LIBS) |
196 | | - add_definitions (/DBOOST_TEST_DYN_LINK) |
| 205 | + add_definitions (-DBOOST_TEST_DYN_LINK) |
197 | 206 | endif () |
198 | 207 |
|
199 | 208 | set (Boost_FIND_REQUIRED TRUE) |
@@ -250,8 +259,16 @@ print_used_build_config() |
250 | 259 |
|
251 | 260 | export (PACKAGE websocketpp) |
252 | 261 |
|
253 | | -configure_file (websocketpp-config.cmake.in "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/websocketpp-config.cmake" @ONLY) |
254 | | -configure_file (websocketpp-configVersion.cmake.in "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/websocketpp-configVersion.cmake" @ONLY) |
| 262 | +include(CMakePackageConfigHelpers) |
| 263 | +configure_package_config_file(websocketpp-config.cmake.in |
| 264 | + "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/websocketpp-config.cmake" |
| 265 | + PATH_VARS INSTALL_INCLUDE_DIR |
| 266 | + INSTALL_DESTINATION "${INSTALL_CMAKE_DIR}" |
| 267 | + NO_CHECK_REQUIRED_COMPONENTS_MACRO |
| 268 | +) |
| 269 | +write_basic_package_version_file("${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/websocketpp-configVersion.cmake" |
| 270 | + VERSION ${WEBSOCKETPP_VERSION} |
| 271 | + COMPATIBILITY ExactVersion) |
255 | 272 |
|
256 | 273 | # Install the websocketpp-config.cmake and websocketpp-configVersion.cmake |
257 | 274 | install (FILES |
|
0 commit comments