-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
88 lines (76 loc) · 2.43 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
cmake_minimum_required(VERSION 3.10)
project(ini CXX)
set(project_major "1")
set(project_minor "?")
set(project_hash "?")
set(project_branch "?")
set(project_type "?")
set(project_time "?")
find_package(Git)
if(GIT_FOUND)
execute_process(
COMMAND ${GIT_EXECUTABLE} rev-list --all --count
WORKING_DIRECTORY "./"
OUTPUT_VARIABLE project_minor
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(project_minor STREQUAL "")
set(project_minor "?")
endif()
endif()
if(GIT_FOUND)
execute_process(
COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
WORKING_DIRECTORY "./"
OUTPUT_VARIABLE project_hash
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(project_hash STREQUAL "")
set(project_hash "?")
endif()
endif()
if(GIT_FOUND)
execute_process(
COMMAND ${GIT_EXECUTABLE} symbolic-ref --short -q HEAD
WORKING_DIRECTORY "./"
OUTPUT_VARIABLE project_branch
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(project_branch STREQUAL "")
set(project_branch "?")
endif()
endif()
list(APPEND build_options "Debug")
list(APPEND build_options "Release")
if(CMAKE_BUILD_TYPE IN_LIST build_options)
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
set(project_type "D")
else()
set(project_type "R")
endif()
else()
set(project_type "D")
set(CMAKE_BUILD_TYPE "Debug")
endif()
string(TIMESTAMP project_time "%Y-%m-%d_%H:%M:%S")
set(VERSION "${project_major}.${project_minor}.${project_hash}.${project_branch}.${project_type}.${project_time}")
message(STATUS "${VERSION}")
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS_ORG ${CMAKE_C_FLAGS})
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_ORG} -DVERSION='\"${VERSION}\"' -fPIC -O3 -DNDEBUG -rdynamic -Wall -g")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_C_FLAGS_ORG} -DVERSION='\"${VERSION}\"' -fPIC -O0 -rdynamic -Wall -g")
add_subdirectory(module/utils)
include_directories(include)
include_directories(module/utils/include)
aux_source_directory(src/ini INI_SRC)
add_library(ini STATIC ${INI_SRC})
add_library(ini_share SHARED ${INI_SRC})
set_target_properties(ini_share PROPERTIES OUTPUT_NAME ini)
target_link_libraries(ini utils)
include_directories(include)
include_directories(module/utils/include)
add_executable(test test/test.cpp)
target_link_libraries(test ini utils)