-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
93 lines (69 loc) · 2.18 KB
/
Copy pathCMakeLists.txt
File metadata and controls
93 lines (69 loc) · 2.18 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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
cmake_minimum_required(VERSION 3.16)
project(db_scratch VERSION 1.0 LANGUAGES CXX)
set(CMAKE_BUILD_TYPE Debug)
# -------------------------
# Common
# -------------------------
set(COMMON_INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/src/storage_manager/headers
${CMAKE_CURRENT_SOURCE_DIR}/src/query_manager/headers
${CMAKE_CURRENT_SOURCE_DIR}/src/catalog_manager/headers
${CMAKE_CURRENT_SOURCE_DIR}/src/transaction_manager
${CMAKE_CURRENT_SOURCE_DIR}/proto
)
find_package(Protobuf CONFIG REQUIRED)
# -------------------------
# DB Daemon
# -------------------------
add_executable(db_daemon
daemon.cpp
proto/client_server_common.pb.cc
src/server_helpers.cpp
src/storage_manager/access_methods.cpp
src/storage_manager/buffer_manager.cpp
src/storage_manager/disk_operator.cpp
src/storage_manager/heap_writer.cpp
src/storage_manager/index_writer.cpp
src/storage_manager/insert.cpp
src/query_manager/lexer.cpp
src/query_manager/parser.cpp
src/query_manager/planner.cpp
src/catalog_manager/schema_manager.cpp
src/transaction_manager/transaction_manager.cpp
)
target_include_directories(db_daemon PRIVATE
${COMMON_INCLUDE_DIRS}
)
target_compile_features(db_daemon PRIVATE cxx_std_17)
# -------------------------
# TUI Client
# -------------------------
add_executable(db_client
client.cpp
src/server_helpers.cpp
proto/client_server_common.pb.cc
tui/base_elements.cpp
tui/components.cpp
tui/input_handler.cpp
tui/renderer.cpp
)
target_include_directories(db_client PRIVATE
${COMMON_INCLUDE_DIRS}
)
target_compile_features(db_client PRIVATE cxx_std_17)
# -------------------------
# Warnings
# -------------------------
if(MSVC)
target_compile_options(db_daemon PRIVATE /W4)
target_compile_options(db_client PRIVATE /W4)
else()
target_compile_options(db_daemon PRIVATE -Wall -Wextra -Wpedantic)
target_compile_options(db_client PRIVATE -Wall -Wextra -Wpedantic)
endif()
# -------------------------
# Protobuf
# -------------------------
target_link_libraries(db_daemon PRIVATE protobuf::libprotobuf)
target_link_libraries(db_client PRIVATE protobuf::libprotobuf)