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()