|
1 | 1 | cmake_minimum_required(VERSION 3.10)
|
2 |
| -project(myframe) |
| 2 | +project(myframe VERSION 0.8.1) |
3 | 3 |
|
4 | 4 | ### gcc version
|
5 | 5 | if (CMAKE_COMPILER_IS_GNUCC)
|
@@ -40,7 +40,6 @@ set(MYFRAME_CONF_DIR "conf")
|
40 | 40 | ### deps libs
|
41 | 41 | find_package(jsoncpp REQUIRED)
|
42 | 42 | find_package(gflags REQUIRED)
|
43 |
| -find_package(GTest REQUIRED) |
44 | 43 |
|
45 | 44 | link_libraries(
|
46 | 45 | pthread dl rt m
|
@@ -78,26 +77,52 @@ install(DIRECTORY tools DESTINATION .)
|
78 | 77 | install(DIRECTORY conf DESTINATION .)
|
79 | 78 | install(DIRECTORY DESTINATION ${MYFRAME_LOG_DIR})
|
80 | 79 | install(DIRECTORY DESTINATION ${MYFRAME_SERVICE_DIR})
|
81 |
| -execute_process( |
82 |
| - COMMAND git rev-parse --abbrev-ref HEAD |
83 |
| - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} |
84 |
| - OUTPUT_VARIABLE GIT_BRANCH |
85 |
| - OUTPUT_STRIP_TRAILING_WHITESPACE |
86 |
| -) |
87 |
| -execute_process( |
88 |
| - COMMAND git rev-parse HEAD |
89 |
| - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} |
90 |
| - OUTPUT_VARIABLE GIT_COMMIT_ID |
91 |
| - OUTPUT_STRIP_TRAILING_WHITESPACE |
92 |
| -) |
93 |
| -execute_process( |
94 |
| - COMMAND git show -s --format=%ci HEAD |
95 |
| - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} |
96 |
| - OUTPUT_VARIABLE GIT_COMMIT_DATE |
97 |
| - OUTPUT_STRIP_TRAILING_WHITESPACE |
98 |
| -) |
99 | 80 | install(CODE "
|
100 | 81 | file(
|
101 | 82 | WRITE ${CMAKE_INSTALL_PREFIX}/version.txt
|
102 |
| - \"${GIT_BRANCH}\n${GIT_COMMIT_ID}\n${GIT_COMMIT_DATE}\n\") |
| 83 | + \"${${PROJECT_NAME}_VERSION_MAJOR}.${${PROJECT_NAME}_VERSION_MINOR}.${${PROJECT_NAME}_VERSION_PATCH}\" |
| 84 | + ) |
103 | 85 | ")
|
| 86 | + |
| 87 | +### package |
| 88 | +include(InstallRequiredSystemLibraries) |
| 89 | +set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") |
| 90 | +set(CPACK_PACKAGE_VERSION_MAJOR "${${PROJECT_NAME}_VERSION_MAJOR}") |
| 91 | +set(CPACK_PACKAGE_VERSION_MINOR "${${PROJECT_NAME}_VERSION_MINOR}") |
| 92 | +set(CPACK_PACKAGE_VERSION_PATCH "${${PROJECT_NAME}_VERSION_PATCH}") |
| 93 | +include(CPack) |
| 94 | + |
| 95 | +### export cmake file |
| 96 | +install(EXPORT "${PROJECT_NAME}Targets" |
| 97 | + FILE "${PROJECT_NAME}Targets.cmake" |
| 98 | + DESTINATION lib/cmake/${PROJECT_NAME} |
| 99 | +) |
| 100 | + |
| 101 | +include(CMakePackageConfigHelpers) |
| 102 | +# generate the config file that is includes the exports |
| 103 | +configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in |
| 104 | + "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" |
| 105 | + INSTALL_DESTINATION "lib/cmake/${PROJECT_NAME}" |
| 106 | + NO_SET_AND_CHECK_MACRO |
| 107 | + NO_CHECK_REQUIRED_COMPONENTS_MACRO |
| 108 | +) |
| 109 | + |
| 110 | +# generate the version file for the config file |
| 111 | +write_basic_package_version_file( |
| 112 | + "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" |
| 113 | + VERSION "${${PROJECT_NAME}_VERSION_MAJOR}.${${PROJECT_NAME}_VERSION_MINOR}.${${PROJECT_NAME}_VERSION_PATCH}" |
| 114 | + COMPATIBILITY AnyNewerVersion |
| 115 | +) |
| 116 | + |
| 117 | +# install the configuration file |
| 118 | +install(FILES |
| 119 | + "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" |
| 120 | + "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" |
| 121 | + DESTINATION lib/cmake/${PROJECT_NAME} |
| 122 | +) |
| 123 | + |
| 124 | +# generate the export targets for the build tree |
| 125 | +# needs to be after the install(TARGETS ) command |
| 126 | +export(EXPORT "${PROJECT_NAME}Targets" |
| 127 | + FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Targets.cmake" |
| 128 | +) |
0 commit comments