25 lines
1.0 KiB
CMake
25 lines
1.0 KiB
CMake
# Function to add a library target.
|
|
function(custom_add_library_from_dir TARGET)
|
|
# Gather files from the current directory
|
|
file(GLOB TARGET_SRC "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
|
|
add_library(${TARGET} ${TARGET_SRC})
|
|
endfunction()
|
|
|
|
# Function to add an executable target.
|
|
function(custom_add_executable_from_dir TARGET)
|
|
# Gather files from the current directory
|
|
file(GLOB TARGET_SRC "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
|
|
add_executable(${TARGET} ${TARGET_SRC})
|
|
endfunction()
|
|
|
|
# Function to add an executable target containing tests for a library.
|
|
function(custom_add_test_from_dir TARGET LIBRARY)
|
|
custom_add_executable_from_dir(${TARGET})
|
|
# Add path to Catch framework header
|
|
target_include_directories(${TARGET} PRIVATE "${CMAKE_SOURCE_DIR}/libs/catch")
|
|
# Link with the library being tested
|
|
target_link_libraries(${TARGET} ${LIBRARY})
|
|
# Register the executable with CMake as a test set
|
|
add_test(${TARGET} ${TARGET})
|
|
endfunction()
|