-
Notifications
You must be signed in to change notification settings - Fork 2
/
CMakeLists.txt
68 lines (56 loc) · 1.95 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
cmake_minimum_required(VERSION 3.14)
# CMake 3.8 for C++17.
# CMake 3.14 for FetchContent_MakeAvailable().
#set(CMAKE_DISABLE_SOURCE_CHANGES ON)
set(CMAKE_DISABLE_IN_SOURCE_BUILD ON)
project(Protocon LANGUAGES "C" "CXX")
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_CXX_STANDARD 17)
#SET(CMAKE_CXX_FLAGS_DEBUG "-g3")
#SET(CMAKE_C_FLAGS_DEBUG "-g3")
#set (CMAKE_BUILD_TYPE DEBUG)
#set (CMAKE_BUILD_TYPE RELEASE)
#set (CMAKE_BUILD_TYPE RelWithDebInfo)
if (NOT CMAKE_BUILD_TYPE)
set (CMAKE_BUILD_TYPE Release)
endif()
# Keep assertions enabled.
string(REPLACE "-DNDEBUG" "" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
string(REPLACE "/DNDEBUG" "" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
string(REPLACE "-DNDEBUG" "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
string(REPLACE "/DNDEBUG" "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
include(CTest)
include(FetchContent)
include("dep/cmake_fetchcontent/fildesh.cmake")
include("dep/cmake_fetchcontent/mddglu.cmake")
include(ExternalProject)
include("dep/cmake_externalproject/peg.cmake")
#### Build ####
include_directories(
"${PROJECT_SOURCE_DIR}"
${Fildesh_INCLUDE_DIRS}
)
add_subdirectory(src)
#### Test ####
# (The src/ subdirectory has some tests too.)
if (BUILD_TESTING)
add_subdirectory(test)
endif()
#### Install ####
# (The src/ subdirectory installed some stuff too.)
install(DIRECTORY "${PROJECT_SOURCE_DIR}/doc/" DESTINATION doc)
install(DIRECTORY "${PROJECT_SOURCE_DIR}/example/" DESTINATION example)
# Build a CPack-driven installer package.
# cpack --config CPackConfig.cmake
# Or just:
# cpack
include(InstallRequiredSystemLibraries)
string(TIMESTAMP CPACK_PACKAGE_VERSION "%Y%m%d")
#set(CPACK_PACKAGE_VERSION "20210725")
set(CPACK_GENERATOR "ZIP")
#set(CPACK_GENERATOR "STGZ;TGZ;ZIP")
set(MyName "Alex Klinkhamer")
set(CPACK_PACKAGE_VENDOR ${MyName})
set(CPACK_PACKAGE_CONTACT ${MyName})
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
include(CPack)