cmake_minimum_required(VERSION 3.20) project(email-tracker LANGUAGES CXX) set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # Dependencies add_subdirectory(external/fmt) add_subdirectory(external/spdlog) add_subdirectory(external/tomlplusplus) add_subdirectory(external/bitsery) # Executables add_executable(${PROJECT_NAME}-client src/main-tracker.cpp) add_executable(${PROJECT_NAME}-daemon src/main-daemon.cpp) # Common targets set(COMMON_LIBS fmt spdlog tomlplusplus bitsery) set(COMMON_INCLUDES external/fmt/include external/spdlog/include external/tomlplusplus/include external/bitsery/include/bitsery ) # Apply common settings foreach(target ${PROJECT_NAME}-client ${PROJECT_NAME}-daemon) target_link_libraries(${target} PRIVATE ${COMMON_LIBS}) target_include_directories(${target} PRIVATE ${COMMON_INCLUDES}) endforeach()