-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathCMakeLists.txt
87 lines (64 loc) · 2.62 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
CMAKE_MINIMUM_REQUIRED(VERSION 3.2)
CMAKE_POLICY(SET CMP0003 NEW)
PROJECT(nginx-c2h5oh)
set(MAJOR_VERSION 0)
set(MINOR_VERSION 0)
set(PATCH_VERSION 1)
set(C2H5OH_VERSION "${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}")
find_package(Boost COMPONENTS unit_test_framework filesystem REQUIRED)
find_package(ZLIB REQUIRED)
find_library(PQ REQUIRED)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Debug)
endif()
set(CFLAGS "-Wall -DBOOST_DATE_TIME_NO_LIB -DBOOST_SYSTEM_NO_DEPRECATED -DJSMN_PARENT_LINKS")
set(CFLAGS_RELEASE "-O3 -Werror ${CFLAGS}")
set(CFLAGS_DEBUG "-O0 -g -D_DEBUG -Wextra ${CFLAGS}")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS} -std=c2a ${CFLAGS_RELEASE}")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS} -std=c2a ${CFLAGS_DEBUG}")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -std=c++2a ${CFLAGS_RELEASE}")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -std=c++2a ${CFLAGS_DEBUG}")
# dogshit for enable output in testing
if (CMAKE_CONFIGURATION_TYPES)
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND}
--force-new-ctest-process --output-on-failure
--build-config "$<CONFIGURATION>")
else()
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND}
--force-new-ctest-process --output-on-failure)
endif()
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
link_directories(
/usr/lib
${CMAKE_SOURCE_DIR}/lib
)
include_directories(
/usr/local/include/
/usr/include/postgresql
src/c2h5oh
deps/jsmn/
)
set(COMMON_SRCS
src/c2h5oh/pqasync.cc
src/c2h5oh/c2h5oh.cc
)
add_library(c2h5oh ${COMMON_SRCS})
target_link_libraries(c2h5oh pq)
add_definitions(-DBOOST_ALL_DYN_LINK)
add_executable(test-pq tests/test-pq.cc)
target_link_libraries (test-pq c2h5oh ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY} boost_system)
add_executable(test-c2h5oh tests/test-c2h5oh.cc)
target_link_libraries(test-c2h5oh c2h5oh ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY} boost_system)
add_subdirectory(src/nginx)
add_subdirectory(src/deb)
#------------------------------------------------------------------------------
enable_testing()
add_test(NAME init-db WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ./tests/init-db.sh)
add_test(NAME test-pq COMMAND test-pq)
set_tests_properties(test-pq PROPERTIES DEPENDS init-db)
add_test(NAME test-c2h5oh COMMAND test-c2h5oh)
set_tests_properties(test-c2h5oh PROPERTIES DEPENDS init-db)
add_test(NAME test-c2h5oh-nginx COMMAND ./tests/test-c2h5oh-nginx.sh WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
set_tests_properties(test-c2h5oh-nginx PROPERTIES DEPENDS init-db)