cmake_minimum_required(VERSION "4.2.0") project("ttwhy" VERSION "1.0.0" LANGUAGES CXX ) ### Fetch Dependencies include("FetchContent") FetchContent_Declare("asio" GIT_REPOSITORY "https://github.com/chriskohlhoff/asio" GIT_TAG "asio-1-38-0" ) FetchContent_MakeAvailable("asio") ### asio find_package("Threads") add_library("asio" INTERFACE) add_library("ext::asio" ALIAS "asio") target_include_directories("asio" INTERFACE "${asio_SOURCE_DIR}/asio/include" ) target_link_libraries("asio" INTERFACE "Threads::Threads" ) ### Core Library add_library("ttwhy-core") add_library("ttwhy::lib" ALIAS "ttwhy-core") target_sources("ttwhy-core" PUBLIC FILE_SET CXX_MODULES FILES "ttwhy/lib.cppm" ) target_include_directories("ttwhy-core" PUBLIC "${CMAKE_SOURCE_DIR}" ) target_compile_features("ttwhy-core" PUBLIC "cxx_std_23" ) target_link_libraries("ttwhy-core" PUBLIC "ext::asio" ) ### Main Executable add_executable("ttwhy") add_executable("ttwhy::app" ALIAS "ttwhy") target_sources("ttwhy" PRIVATE "ttwhy/main.cpp" ) target_link_libraries("ttwhy" PRIVATE "ttwhy::lib" )