-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
72 lines (56 loc) · 1.93 KB
/
CMakeLists.txt
File metadata and controls
72 lines (56 loc) · 1.93 KB
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
cmake_minimum_required(VERSION 3.10)
project(tui-test LANGUAGES CXX)
# Set default build type to Release if not specified
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
# Enable verbose build
set(CMAKE_VERBOSE_MAKEFILE ON)
# Set C++ standard
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
# Strict warnings and errors
add_compile_options(-Wall -Wextra -Werror -pedantic)
# Add extra include and library paths for local libraries.
if(DEFINED ENV{TUI_EXTRA_INCLUDE_PATH})
include_directories($ENV{TUI_EXTRA_INCLUDE_PATH})
endif()
if(DEFINED ENV{TUI_EXTRA_LIB_PATH})
link_directories($ENV{TUI_EXTRA_LIB_PATH})
endif()
# Find all .cpp files under ./src
file(GLOB_RECURSE SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp")
# Remove files from src/schema/src
file(GLOB_RECURSE SCHEMA_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/schema/src/*.cpp")
list(REMOVE_ITEM SOURCES ${SCHEMA_SOURCES})
# Remove the tui-register.cpp entry
list(REMOVE_ITEM SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/tui-register.cpp")
add_executable(tui-server ${SOURCES})
target_include_directories(tui-server
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(tui-server
PRIVATE
curl
tws
sqlite3
uuid
sodium
zstd)
add_executable(tui-register
${CMAKE_CURRENT_SOURCE_DIR}/src/tui-register.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/common/Base64.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/common/Timestamp.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/common/Utf8.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/database/Database.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/database/Sqlite.cpp)
target_include_directories(tui-register
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(tui-register
PRIVATE
sqlite3
uuid)
install(TARGETS tui-server RUNTIME DESTINATION bin)
install(TARGETS tui-register RUNTIME DESTINATION bin)