-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
97 lines (77 loc) · 3.26 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
89
90
91
92
93
94
95
96
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
CMAKE_POLICY(VERSION 2.8)
PROJECT(MiniAgent)
SET(CMAKE_BUILD_TYPE Debug CACHE STRING "Set build type, including Debug, Release")
SET(WITH_UNIT_TESTS true CACHE BOOL "Compile with the unit tests")
SET(WITH_EXAMPLES true CACHE BOOL "Compile the examples")
SET(CMAKE_C_COMPILER "gcc")
SET(CMAKE_C_FLAGS "-std=c99 -Wall -Wextra")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-sign-compare -Wno-unused-parameter")
SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
SET(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG " )
#SET(LIBPATH /usr/lib /usr/local/lib)
ADD_DEFINITIONS(-D_BSD_SOURCE)
ADD_DEFINITIONS(-D_POSIX_C_SOURCE=200112L)
ADD_DEFINITIONS(-DPROJECT_NAME="${PROJECT_NAME}")
SET(WRAPPER_CMD "${CMAKE_CURRENT_SOURCE_DIR}/contrib/wrapper.sh")
IF(${CMAKE_BUILD_TYPE} MATCHES "Debug")
ADD_DEFINITIONS(-D__DEBUG__)
ADD_DEFINITIONS(-DEV_VERIFY=4)
SET(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/${PROJECT_NAME}")
SET(PROJECT_BASE_DIR "${CMAKE_BINARY_DIR}/${PROJECT_NAME}")
SET(PROJECT_TMP_DIR "${PROJECT_BASE_DIR}")
SET(PROJECT_PID_FILE "${PROJECT_BASE_DIR}/${PROJECT_NAME}.pid")
SET(PROJECT_LOG_FILE "${PROJECT_BASE_DIR}/${PROJECT_NAME}.log")
MESSAGE(STATUS "Using 'Debug' build mode, flags '${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_DEBUG}'")
ELSE()
SET(CMAKE_INSTALL_PREFIX "/usr")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
MESSAGE(STATUS "Using 'Release' build mode, flags '${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_RELEASE}'")
ENDIF()
EXECUTE_PROCESS(
COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/contrib/generate_version.sh" "${CMAKE_CURRENT_SOURCE_DIR}"
OUTPUT_VARIABLE PROJECT_VERSION)
MESSAGE(STATUS "Project version is ${PROJECT_VERSION}")
ADD_DEFINITIONS(-DPROJECT_VERSION="${PROJECT_VERSION}")
INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR})
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/libs)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include)
# FILE(COPY "${CMAKE_CURRENT_SOURCE_DIR}/contrib/config"
# DESTINATION "${BOOTER_BASE_DIR}"
# FILES_MATCHING PATTERN "*.json")
#INCLUDE(CheckIncludeFiles)
#INCLUDE(CheckFunctionExists)
#FIND_PACKAGE(Threads REQUIRED)
#CHECK_INCLUDE_FILES("gcrypt.h" HAVE_GCRYPT_H)
#CHECK_INCLUDE_FILES("sys/sysinfo.h" HAVE_SYS_SYSINFO_H)
#
#CHECK_FUNCTION_EXISTS(setgroups HAVE_SETGROUPS)
#CHECK_FUNCTION_EXISTS(setenv HAVE_SETENV)
#
##SET(CMAKE_REQUIRED_FLAGS "-D_GNU_SOURCE")
##SET(CMAKE_REQUIRED_INCLUDES pthread.h)
#
#SET(CMAKE_REQUIRED_LIBRARIES pthread)
#CHECK_FUNCTION_EXISTS(pthread_setname_np HAVE_PTHREAD_SETNAME_NP)
#CHECK_FUNCTION_EXISTS(htonll HAVE_HTONLL)
#
#SET(CMAKE_REQUIRED_FLAGS "-D_GNU_SOURCE")
#CHECK_FUNCTION_EXISTS(strerror_r HAVE_STRERROR_R)
#
#INCLUDE(TestBigEndian)
#TEST_BIG_ENDIAN(ARCH_BIG_ENDIAN)
CONFIGURE_FILE(daemon/config.h.in config.h)
IF(${WITH_UNIT_TESTS})
ENABLE_TESTING()
ENDIF(${WITH_UNIT_TESTS})
#INCLUDE(contrib/cmake/CPackConfig.cmake)
#INCLUDE(CPack)
ADD_SUBDIRECTORY(libs)
ADD_SUBDIRECTORY(daemon)
MESSAGE(STATUS "=============== CONFIGURATION ===============")
MESSAGE(STATUS " Install ........... ${CMAKE_INSTALL_PREFIX}")
MESSAGE(STATUS " Version ........... ${PROJECT_VERSION}")
MESSAGE(STATUS " Build:")
MESSAGE(STATUS " CFLAGS ............ ${CMAKE_C_FLAGS}")
MESSAGE(STATUS " Builtin:")
MESSAGE(STATUS "=============== >>>> END <<<< ===============")