-
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathCMakeLists.txt
94 lines (78 loc) · 2.41 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
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
project(tg-focus)
# santinize, linked by all targets
if (DEFINED ENV{WITH_SANITIZERS})
add_compile_options(-fsanitize=address -fsanitize=undefined -fno-sanitize=vptr -fsanitize=leak)
link_libraries(asan ubsan)
endif()
# ----------------------------- tdlib -----------------------------
set(ZLIB_USE_STATIC_LIBS ON)
# might need to build from source in most distros
set(OPENSSL_USE_STATIC_LIBS TRUE)
add_subdirectory(3rd/tdlib)
# ------------------------------ OURS ------------------------------
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
if(CMAKE_BUILD_TYPE STREQUAL "Release")
# add_compile_options(-Wall -Wextra)
add_compile_options(-flto)
add_link_options(-Wl,-s)
endif()
# ------------------------------ conf ------------------------------
add_executable(
tgf-conf
${PROJECT_SOURCE_DIR}/tgf-conf/TgfConf.cpp
${PROJECT_SOURCE_DIR}/tgf-conf/State.cpp
${PROJECT_SOURCE_DIR}/tgf-conf/Auth.cpp
${PROJECT_SOURCE_DIR}/shared/TgfData.cpp
${PROJECT_SOURCE_DIR}/shared/PosixRegex.cpp
${PROJECT_SOURCE_DIR}/shared/LvLog.cpp
${PROJECT_SOURCE_DIR}/shared/TgfLocale.cpp
${PROJECT_SOURCE_DIR}/shared/TgfFilter.cpp
)
target_include_directories(
tgf-conf
PRIVATE ${PROJECT_SOURCE_DIR}/shared
PRIVATE ${PROJECT_SOURCE_DIR}/3rd/toml11
)
target_link_libraries(
tgf-conf
PRIVATE Td::TdStatic
)
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
target_link_libraries(
tgf-conf
PRIVATE -static -no-pie
)
endif()
# ----------------------------- focusd -----------------------------
add_executable(
tgf-focusd
${PROJECT_SOURCE_DIR}/tgf-focusd/TgfFocusd.cpp
${PROJECT_SOURCE_DIR}/tgf-focusd/State.cpp
${PROJECT_SOURCE_DIR}/tgf-focusd/Worker.cpp
${PROJECT_SOURCE_DIR}/tgf-focusd/Collector.cpp
${PROJECT_SOURCE_DIR}/shared/TgfData.cpp
${PROJECT_SOURCE_DIR}/shared/PosixRegex.cpp
${PROJECT_SOURCE_DIR}/shared/TgfFilter.cpp
${PROJECT_SOURCE_DIR}/shared/TgfMsg.cpp
${PROJECT_SOURCE_DIR}/shared/LvLog.cpp
${PROJECT_SOURCE_DIR}/shared/TgfLocale.cpp
)
target_include_directories(
tgf-focusd
PRIVATE ${PROJECT_SOURCE_DIR}/shared
PRIVATE ${PROJECT_SOURCE_DIR}/3rd/toml11
)
target_link_libraries(
tgf-focusd
PRIVATE Td::TdStatic
)
target_link_libraries(
tgf-focusd
PRIVATE -static -no-pie
)
# ----------------------------- tests -----------------------------
enable_testing()
add_subdirectory(test)