-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
64 lines (51 loc) · 1.6 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
cmake_minimum_required(VERSION 3.13)
project(wpl)
enable_testing()
cmake_policy(SET CMP0079 NEW)
option(WPL_NO_TESTS "Do not build test modules." OFF)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/build.props)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/_lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/_bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/_bin)
include_directories(BEFORE .)
if (MSVC)
add_definitions(-D_SCL_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS)
add_definitions(-DUNICODE -D_UNICODE -DISOLATION_AWARE_ENABLED=1)
endif()
add_compile_options(
"$<$<OR:$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:Clang>>:-fPIC>"
"$<$<OR:$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:$<$<COMPILE_LANGUAGE:CXX>:-std=c++11;-fno-rtti>>"
)
if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.13.5)
add_link_options(
"$<$<CXX_COMPILER_ID:GNU>:-Wl,--no-undefined>"
"$<$<CXX_COMPILER_ID:Clang>:-Wl,-undefined,error>"
)
endif()
if (UNIX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
endif()
if (NOT TARGET utfia)
set(UTFIA_NO_TESTS ON)
add_subdirectory(libraries/utfia)
endif()
if (NOT TARGET agge)
set(AGGE_NO_TESTS ON)
set(AGGE_NO_EXTENSIONS ON)
add_subdirectory(libraries/agge)
endif()
add_subdirectory(src)
if (NOT WPL_NO_TESTS)
if (NOT TARGET utee)
set(UTEE_NO_TESTS ON)
add_subdirectory(libraries/utee)
endif()
add_subdirectory(tests)
add_utee_test(wpl.generic.tests)
if (WIN32)
add_utee_test(wpl.win32.tests)
endif()
if (WIN32 OR APPLE)
add_subdirectory(samples)
endif()
endif()