Add function in cmake to create targets

This commit is contained in:
2025-12-09 16:12:19 +01:00
parent 432a5b1f7c
commit abecf6cfb7
3 changed files with 110 additions and 14 deletions

View File

@@ -2,18 +2,32 @@ find_package(fmt REQUIRED)
find_package(utf8cpp REQUIRED)
find_package(ctre REQUIRED)
set(HEADERS "")
set(SOURCES "day01.cpp")
add_executable(day01 ${HEADERS} ${SOURCES})
target_include_directories(day01 PUBLIC ${PROJECT_SOURCE_DIR})
target_compile_features(day01 PRIVATE cxx_std_23)
target_link_libraries(day01
PRIVATE
${PLATFORM_LINK_LIBRARIES}
fmt
utf8cpp
ctre
function(add_day_executables)
foreach(src IN LISTS ARGN)
get_filename_component(name "${src}" NAME_WE)
add_executable(${name} "${src}")
target_include_directories(${name} PUBLIC "${PROJECT_SOURCE_DIR}")
target_compile_features(${name} PRIVATE cxx_std_23)
target_link_libraries(${name}
PRIVATE
${PLATFORM_LINK_LIBRARIES}
fmt
utf8cpp
ctre
)
target_compile_definitions(${name} PRIVATE ${PLATFORM_DEFINITIONS})
target_compile_options(${name} PRIVATE ${BASE_OPTIONS})
source_group(TREE "${CMAKE_CURRENT_LIST_DIR}" FILES "${src}")
endforeach()
endfunction()
add_day_executables(
"day01.cpp"
"day02.cpp"
)
target_compile_definitions(day01 PRIVATE ${PLATFORM_DEFINITIONS})
target_compile_options(day01 PRIVATE ${BASE_OPTIONS})
source_group(TREE "${CMAKE_CURRENT_LIST_DIR}" FILES ${HEADERS} ${SOURCES})