-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathCMakeLists.txt
74 lines (59 loc) · 1.9 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
CMAKE_MINIMUM_REQUIRED(VERSION 3.0)
PROJECT(h2_test)
ADD_SUBDIRECTORY(libs)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG .)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG .)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG .)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE .)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE .)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE .)
FILE(GLOB SRC_TEST "test_types.cpp" "test_*.cpp")
IF(NOT CMAKE_CXX_STANDARD)
SET(CMAKE_CXX_STANDARD 14)
ENDIF()
MESSAGE("C++ Standard is " ${CMAKE_CXX_STANDARD})
IF(NOT CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE Debug)
ENDIF()
MESSAGE("Build Type is " ${CMAKE_BUILD_TYPE})
IF(CMAKE_BUILD_TYPE MATCHES "Release")
IF(MSVC)
ADD_COMPILE_OPTIONS(/Od) # Disable Optimization
ELSE()
ADD_COMPILE_OPTIONS(-g -O0)
ENDIF()
ENDIF()
IF(MSVC)
ADD_COMPILE_OPTIONS(-bigobj)
ADD_COMPILE_OPTIONS(/wd4101) #unreferenced local variable
ADD_COMPILE_OPTIONS(/wd4804) #unsafe use of type 'bool' in operation ~ -
ADD_COMPILE_OPTIONS(/wd4805) #comparison operations between bool and int
ADD_COMPILE_OPTIONS(/wd4834) #discarding return value of function
ELSE()
ADD_COMPILE_OPTIONS(-Wno-noexcept-type)
ADD_COMPILE_OPTIONS(-Wno-conversion-null)
ADD_COMPILE_OPTIONS(-Wall)
ADD_COMPILE_OPTIONS(-Werror)
IF(GCC)
ADD_COMPILE_OPTIONS(-fno-access-control)
ENDIF()
ENDIF()
ADD_COMPILE_DEFINITIONS(H2UNIT_SELF_UT=1)
IF(NOT CMAKE_SYSTEM_NAME MATCHES "Windows")
ADD_COMPILE_OPTIONS(-pthread)
ENDIF()
LINK_DIRECTORIES(libs)
LINK_LIBRARIES(a_dynamic_library)
ADD_EXECUTABLE(a.out ${SRC_TEST})
IF(NOT CMAKE_SYSTEM_NAME MATCHES "Windows")
TARGET_LINK_LIBRARIES(a.out pthread)
ENDIF()
IF(CYGWIN OR MINGW)
TARGET_LINK_LIBRARIES(a.out Ws2_32 Shlwapi Dbghelp)
ENDIF()
IF(CMAKE_SYSTEM_NAME MATCHES "Darwin")
ADD_CUSTOM_TARGET(fixup ALL
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/../h2fix.sh a.out
DEPENDS a.out
)
ENDIF()