1
1
cmake_minimum_required (VERSION 3.10)
2
- project (myframe VERSION 0.9.1 )
2
+ project (myframe VERSION 0.9.2 )
3
3
4
4
### option
5
- option (MYFRAME_USE_CV "Using conditional variables for thread communication" OFF )
6
- option (MYFRAME_INSTALL_DEPS "Install deps" ON )
5
+ option (MYFRAME_USE_CV "Using conditional variables for thread communication" ON )
6
+ option (MYFRAME_INSTALL_DEPS "Install deps" OFF )
7
7
option (MYFRAME_GENERATE_EXAMPLE "Generate example library" ON )
8
8
option (MYFRAME_GENERATE_TEST "Generate test executable program" ON )
9
9
10
+ ### cmake module
11
+ set (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR} /cmake" )
12
+
10
13
### compile option
11
14
set (CMAKE_C_VISIBILITY_PRESET hidden)
12
15
set (CMAKE_CXX_VISIBILITY_PRESET hidden)
@@ -20,16 +23,9 @@ else()
20
23
message (STATUS "Set default cxx standard 17" )
21
24
endif ()
22
25
23
- ### output path
24
- set (MYFRAME_OUTPUT_ROOT "${CMAKE_BINARY_DIR} /output" )
25
- set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${MYFRAME_OUTPUT_ROOT} /lib)
26
- set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${MYFRAME_OUTPUT_ROOT} /lib)
27
- set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${MYFRAME_OUTPUT_ROOT} /bin)
28
-
29
26
### install path
30
27
if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
31
- set (CMAKE_INSTALL_PREFIX "$ENV{HOME} /${CMAKE_PROJECT_NAME} " CACHE PATH "myframe default install prefix" FORCE)
32
- message (STATUS "Set default install prefix $ENV{HOME} /${CMAKE_PROJECT_NAME} " )
28
+ message (STATUS "Set default install prefix ${CMAKE_INSTALL_PREFIX} " )
33
29
else ()
34
30
message (STATUS "Set install prefix ${CMAKE_INSTALL_PREFIX} " )
35
31
endif ()
@@ -46,90 +42,41 @@ find_package(Threads REQUIRED)
46
42
find_package (jsoncpp REQUIRED)
47
43
find_package (glog REQUIRED)
48
44
49
- link_libraries (
50
- Threads::Threads
51
- ${CMAKE_DL_LIBS}
52
- glog::glog
53
- jsoncpp_lib
54
- )
55
-
56
- ### include dir
57
- include_directories (.)
58
-
59
45
### sub directory
60
46
add_subdirectory (myframe)
61
47
add_subdirectory (launcher)
62
48
if (MYFRAME_GENERATE_EXAMPLE)
63
- add_subdirectory (examples)
49
+ add_subdirectory (examples)
64
50
endif ()
65
51
if (MYFRAME_GENERATE_TEST)
66
- add_subdirectory (test )
52
+ add_subdirectory (test )
67
53
endif ()
68
54
69
55
### install file/dir
70
56
install (FILES
71
- "LICENSE"
72
- PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
73
- DESTINATION .
57
+ "LICENSE"
58
+ PERMISSIONS
59
+ OWNER_READ OWNER_WRITE
60
+ GROUP_READ
61
+ WORLD_READ
62
+ DESTINATION .
63
+ )
64
+ install (PROGRAMS
65
+ "tools/gen_mod_proj.py"
66
+ DESTINATION ${MYFRAME_BIN_DIR}
74
67
)
75
68
install (DIRECTORY templates DESTINATION .)
76
- install (DIRECTORY tools DESTINATION .)
77
- install (DIRECTORY conf DESTINATION .)
78
69
install (DIRECTORY DESTINATION ${MYFRAME_LOG_DIR} )
79
70
install (DIRECTORY DESTINATION ${MYFRAME_SERVICE_DIR} )
80
- install (CODE "
81
- file(
82
- WRITE ${CMAKE_INSTALL_PREFIX} /version.txt
83
- \" ${${PROJECT_NAME} _VERSION_MAJOR}.${${PROJECT_NAME} _VERSION_MINOR}.${${PROJECT_NAME} _VERSION_PATCH}\"
84
- )
85
- " )
86
71
if (MYFRAME_INSTALL_DEPS)
87
- if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.21" )
88
- install (IMPORTED_RUNTIME_ARTIFACTS jsoncpp_lib)
89
- install (IMPORTED_RUNTIME_ARTIFACTS glog::glog)
90
- install (IMPORTED_RUNTIME_ARTIFACTS gflags)
91
- endif ()
72
+ if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.21" )
73
+ install (IMPORTED_RUNTIME_ARTIFACTS jsoncpp_lib)
74
+ install (IMPORTED_RUNTIME_ARTIFACTS glog::glog)
75
+ install (IMPORTED_RUNTIME_ARTIFACTS gflags)
76
+ else ()
77
+ message (WARNING "Can not install deps lib, cmake version ${CMAKE_VERSION} < 3.21" )
78
+ endif ()
92
79
endif ()
93
80
94
81
### package
95
- include (InstallRequiredSystemLibraries)
96
- set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR} /LICENSE" )
97
- set (CPACK_PACKAGE_VERSION_MAJOR "${${PROJECT_NAME} _VERSION_MAJOR}" )
98
- set (CPACK_PACKAGE_VERSION_MINOR "${${PROJECT_NAME} _VERSION_MINOR}" )
99
- set (CPACK_PACKAGE_VERSION_PATCH "${${PROJECT_NAME} _VERSION_PATCH}" )
100
- include (CPack)
101
-
102
- ### export cmake file
103
- install (EXPORT "${PROJECT_NAME} Targets"
104
- FILE "${PROJECT_NAME} Targets.cmake"
105
- DESTINATION lib/cmake/${PROJECT_NAME}
106
- )
107
-
108
- include (CMakePackageConfigHelpers)
109
- # generate the config file that is includes the exports
110
- configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR} /Config.cmake.in
111
- "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
112
- INSTALL_DESTINATION "lib/cmake/${PROJECT_NAME} "
113
- NO_SET_AND_CHECK_MACRO
114
- NO_CHECK_REQUIRED_COMPONENTS_MACRO
115
- )
116
-
117
- # generate the version file for the config file
118
- write_basic_package_version_file(
119
- "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} ConfigVersion.cmake"
120
- VERSION "${PROJECT_VERSION} "
121
- COMPATIBILITY SameMinorVersion
122
- )
123
-
124
- # install the configuration file
125
- install (FILES
126
- "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
127
- "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} ConfigVersion.cmake"
128
- DESTINATION lib/cmake/${PROJECT_NAME}
129
- )
130
-
131
- # generate the export targets for the build tree
132
- # needs to be after the install(TARGETS ) command
133
- export (EXPORT "${PROJECT_NAME} Targets"
134
- FILE "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} Targets.cmake"
135
- )
82
+ include (Packing)
0 commit comments