1- cmake_minimum_required (VERSION 2.8)
1+ cmake_minimum_required (VERSION 3.0)
2+
3+ # setup directory where we should look for cmake files
4+ list (APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR} /cmake" )
5+
6+ option (HUNTER_ENABLED "Enable Hunter package manager" NO )
7+ include (HunterGate)
8+ HunterGate(
9+ URL "https://github.com/ruslo/hunter/archive/v0.18.47.tar.gz"
10+ SHA1 "f0c476a3a0f9edd6182936d8c4460811f112189c"
11+ )
12+
213project (libjson-rpc-cpp)
314
4- # list command no longer ignores empty elements
15+ # list command no longer ignores empty elements
516cmake_policy (SET CMP0007 NEW)
617cmake_policy (SET CMP0012 NEW)
718
@@ -38,6 +49,8 @@ set(COMPILE_TESTS YES CACHE BOOL "Compile test framework")
3849set (COMPILE_STUBGEN YES CACHE BOOL "Compile the stubgenerator" )
3950set (COMPILE_EXAMPLES YES CACHE BOOL "Compile example programs" )
4051
52+ option (WITH_COVERAGE "Build with code coverage flags" ON )
53+
4154# print actual settings
4255if (UNIX )
4356 message (STATUS "UNIX_DOMAIN_SOCKET_SERVER: ${UNIX_DOMAIN_SOCKET_SERVER} " )
@@ -55,9 +68,6 @@ message(STATUS "COMPILE_TESTS: ${COMPILE_TESTS}")
5568message (STATUS "COMPILE_STUBGEN: ${COMPILE_STUBGEN} " )
5669message (STATUS "COMPILE_EXAMPLES: ${COMPILE_EXAMPLES} " )
5770
58- # setup directory where we should look for cmake files
59- set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR} /cmake/" )
60-
6171# setup compiler settings && dependencies
6272include (CMakeCompilerSettings)
6373include (CMakeDependencies)
@@ -67,10 +77,6 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib")
6777set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR} /bin" )
6878set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR} /lib" )
6979
70- if (WIN32 )
71- set (CMAKE_INSTALL_PREFIX ${PROJECT_BINARY_DIR} /dist)
72- endif ()
73-
7480# setup global include_directories (for backwards compatibility)
7581include_directories ("${CMAKE_BINARY_DIR} /gen/" )
7682include_directories ("${CMAKE_BINARY_DIR} /gen/jsonrpccpp/common" )
@@ -90,7 +96,7 @@ endif()
9096
9197# setup test suite
9298if (COMPILE_TESTS)
93- enable_testing (true )
99+ enable_testing ()
94100 add_subdirectory (src/test )
95101endif ()
96102
@@ -114,5 +120,31 @@ add_custom_target(
114120 COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR} /cmake_uninstall.cmake
115121)
116122
123+ # CMake package
124+ set (package_name "libjson-rpc-cpp" )
125+ include (CMakePackageConfigHelpers)
126+ include (GNUInstallDirs)
127+ set (config_install_destination ${CMAKE_INSTALL_LIBDIR} /${package_name} /cmake)
128+ configure_package_config_file(
129+ cmake/${package_name} Config.cmake.in ${package_name} Config.cmake
130+ INSTALL_DESTINATION ${config_install_destination}
131+ )
132+ write_basic_package_version_file(
133+ ${package_name} ConfigVersion.cmake
134+ VERSION ${MAJOR_VERSION} .${MINOR_VERSION} .${PATCH_VERSION}
135+ COMPATIBILITY ExactVersion
136+ )
137+ install (
138+ EXPORT ${package_name} Targets
139+ DESTINATION ${config_install_destination}
140+ NAMESPACE ${package_name} ::
141+ )
142+ install (
143+ FILES
144+ ${CMAKE_CURRENT_BINARY_DIR} /${package_name} Config.cmake
145+ ${CMAKE_CURRENT_BINARY_DIR} /${package_name} ConfigVersion.cmake
146+ DESTINATION ${config_install_destination}
147+ )
148+
117149# packaging stuff
118150include (CMakePackaging)
0 commit comments