aboutsummaryrefslogtreecommitdiff
path: root/comp3331/server/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'comp3331/server/CMakeLists.txt')
-rw-r--r--comp3331/server/CMakeLists.txt44
1 files changed, 44 insertions, 0 deletions
diff --git a/comp3331/server/CMakeLists.txt b/comp3331/server/CMakeLists.txt
new file mode 100644
index 0000000..60c174e
--- /dev/null
+++ b/comp3331/server/CMakeLists.txt
@@ -0,0 +1,44 @@
+cmake_minimum_required(VERSION 3.10)
+
+project(comp3331_assignment)
+
+set(CMAKE_C_COMPILER "clang")
+set(CMAKE_CXX_COMPILER "clang++")
+
+set(CMAKE_CXX_STANDARD 14)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(CMAKE_CXX_EXTENSIONS OFF)
+set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
+#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/bin")
+
+include_directories(
+ "${PROJECT_SOURCE_DIR}/src"
+)
+
+file (GLOB_RECURSE SHARED_SOURCE_FILES CONFIGURE_DEPENDS
+ "${PROJECT_SOURCE_DIR}/src/shared/*.cc"
+)
+
+foreach(BINARY_NAME client;server)
+ file (GLOB_RECURSE BINARY_SOURCE_FILES CONFIGURE_DEPENDS
+ "${PROJECT_SOURCE_DIR}/src/${BINARY_NAME}/*.cc"
+ )
+ add_executable(${BINARY_NAME}
+ ${BINARY_SOURCE_FILES}
+ ${SHARED_SOURCE_FILES}
+ )
+
+ target_compile_options(${BINARY_NAME} PRIVATE
+ -Wall -Wextra -Wshadow -Wdouble-promotion -Wformat=2 -Wundef -fno-common
+ -Wconversion -Wpedantic -std=c++14 -g3 -O2
+ -fstack-protector-strong -fno-omit-frame-pointer -fsanitize=undefined
+ -Wno-exceptions
+ )
+ target_link_libraries(${BINARY_NAME} PRIVATE
+ #pthread
+ )
+ target_link_options(${BINARY_NAME} PRIVATE
+ -fstack-protector-strong -fsanitize=undefined
+ )
+endforeach()
+