cmake_minimum_required(VERSION 4.0) project(test_args_parser LANGUAGES CXX) set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP 1) find_package(spdlog CONFIG REQUIRED) find_package(fmt CONFIG REQUIRED) add_executable(test_args_parser main.cc test_args_parser.cppm) if(TARGET std_module) add_dependencies(test_args_parser std_module) endif() target_sources( test_args_parser PRIVATE FILE_SET cxx_modules TYPE CXX_MODULES BASE_DIRS ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../../src FILES test_args_parser.cppm ../../src/bridge/spdlog.cppm ../../src/utils/args_parser.cppm) target_compile_definitions(test_args_parser PRIVATE SPDLOG_HEADER_ONLY FMT_HEADER_ONLY) target_link_libraries(test_args_parser PRIVATE spdlog::spdlog_header_only fmt::fmt-header-only) target_compile_options( test_args_parser PRIVATE -Wall -Wextra -Wpedantic -Wno-import-implementation-partition-unit-in-interface-unit $<$:-g -O0> $<$:-O3>) if(BUILD_TESTS) add_test(NAME test_args_parser COMMAND $) endif()