1
1
cmake_minimum_required (VERSION 3.10)
2
- project (myframe VERSION 0.8.1)
3
-
4
- ### gcc version
5
- if (CMAKE_COMPILER_IS_GNUCC)
6
- execute_process (COMMAND ${CMAKE_CXX_COMPILER} -dumpfullversion -dumpversion
7
- OUTPUT_VARIABLE GCC_VERSION)
8
- string (REGEX MATCHALL "[0-9]+" GCC_VERSION_COMPONENTS ${GCC_VERSION} )
9
- list (GET GCC_VERSION_COMPONENTS 0 GCC_MAJOR)
10
- list (GET GCC_VERSION_COMPONENTS 1 GCC_MINOR)
11
- set (GCC_VERSION "${GCC_MAJOR} .${GCC_MINOR} " )
12
- endif ()
13
-
14
- ### cpp option
15
- if (GCC_VERSION GREATER "8.0" )
16
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wextra-semi" )
17
- endif ()
2
+ project (myframe VERSION 0.8.2)
18
3
19
4
### option
20
- option (GENERATE_EXAMPLE "generate example library" ON )
21
- option (GENERATE_TEST "generate test exec" ON )
5
+ option (MYFRAME_USE_CV "Using conditional variables for thread communication" OFF )
6
+ option (MYFRAME_GENERATE_EXAMPLE "Generate example library" ON )
7
+ option (MYFRAME_GENERATE_TEST "Generate test executable program" ON )
8
+
9
+ ### compile option
10
+ set (CMAKE_C_VISIBILITY_PRESET hidden)
11
+ set (CMAKE_CXX_VISIBILITY_PRESET hidden)
12
+ set (CMAKE_POSITION_INDEPENDENT_CODE ON )
13
+ set (CMAKE_VISIBILITY_INLINES_HIDDEN ON )
14
+ if (CMAKE_CXX_STANDARD_REQUIRED)
15
+ message (STATUS "Set cxx standard ${CMAKE_CXX_STANDARD} " )
16
+ else ()
17
+ set (CMAKE_CXX_STANDARD_REQUIRED ON )
18
+ set (CMAKE_CXX_STANDARD 17)
19
+ message (STATUS "Set default cxx standard 17" )
20
+ endif ()
22
21
23
22
### output path
24
23
set (MYFRAME_OUTPUT_ROOT "${CMAKE_BINARY_DIR} /output" )
@@ -27,9 +26,13 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${MYFRAME_OUTPUT_ROOT}/lib)
27
26
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${MYFRAME_OUTPUT_ROOT} /bin)
28
27
29
28
### install path
30
- # set(CMAKE_INSTALL_PREFIX "$ENV{HOME}/${CMAKE_PROJECT_NAME}")
29
+ if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
30
+ set (CMAKE_INSTALL_PREFIX "$ENV{HOME} /${CMAKE_PROJECT_NAME} " CACHE PATH "myframe default install prefix" FORCE)
31
+ message (STATUS "Set default install prefix $ENV{HOME} /${CMAKE_PROJECT_NAME} " )
32
+ else ()
33
+ message (STATUS "Set install prefix ${CMAKE_INSTALL_PREFIX} " )
34
+ endif ()
31
35
set (CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX} /lib" )
32
- set (MYFRAME_TEST_DIR "test" )
33
36
set (MYFRAME_BIN_DIR "bin" )
34
37
set (MYFRAME_INC_DIR "include" )
35
38
set (MYFRAME_LIB_DIR "lib" )
@@ -38,36 +41,31 @@ set(MYFRAME_SERVICE_DIR "service")
38
41
set (MYFRAME_CONF_DIR "conf" )
39
42
40
43
### deps libs
44
+ find_package (Threads REQUIRED)
41
45
find_package (jsoncpp REQUIRED)
42
- find_package (gflags REQUIRED)
43
46
44
47
link_libraries (
45
- pthread dl rt m
46
- glog gflags
48
+ Threads::Threads
49
+ ${CMAKE_DL_LIBS}
50
+ glog
47
51
jsoncpp
48
- -Wl,-z,defs
49
52
)
50
- if (GCC_VERSION LESS "8.0" )
51
- link_libraries (
52
- stdc++fs
53
- )
54
- endif ()
55
53
56
54
### include dir
57
55
include_directories (.)
58
56
59
57
### sub directory
60
58
add_subdirectory (myframe)
61
59
add_subdirectory (launcher)
62
- if (GENERATE_EXAMPLE )
60
+ if (MYFRAME_GENERATE_EXAMPLE )
63
61
add_subdirectory (examples)
64
62
endif ()
65
- if (GENERATE_TEST )
63
+ if (MYFRAME_GENERATE_TEST )
66
64
add_subdirectory (test )
67
65
endif ()
68
66
69
67
### install file/dir
70
- install (FILES
68
+ install (FILES
71
69
"LICENSE"
72
70
PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
73
71
DESTINATION .
0 commit comments