29 lines
1.3 KiB
CMake
29 lines
1.3 KiB
CMake
# Each compiler/flag variant has its own cache and products.
|
|
foreach(variant debug release sanitize)
|
|
set(extra)
|
|
if(CMAKE_CXX_COMPILER)
|
|
list(APPEND extra "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}")
|
|
endif()
|
|
if(variant STREQUAL debug)
|
|
set(kind Debug)
|
|
else()
|
|
set(kind Release)
|
|
list(APPEND extra -DXTC_REPRODUCIBLE=ON)
|
|
endif()
|
|
if(variant STREQUAL sanitize)
|
|
set(kind Debug)
|
|
list(APPEND extra -DXTC_SANITIZE=ON -DXTC_BUILD_GUI=OFF -DCMAKE_C_COMPILER=clang)
|
|
set(target test-sanitize)
|
|
else()
|
|
set(target ${variant})
|
|
endif()
|
|
add_custom_target(${target}
|
|
COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" -S "${PROJECT_SOURCE_DIR}" -B "${CMAKE_CURRENT_BINARY_DIR}/${variant}"
|
|
-DCMAKE_BUILD_TYPE=${kind} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
|
-DXTC_WITH_JACK=${XTC_WITH_JACK} -DXTC_WITH_LADSPA=${XTC_WITH_LADSPA}
|
|
-DXTC_BUILD_GUI=${XTC_BUILD_GUI} ${extra}
|
|
COMMAND ${CMAKE_COMMAND} --build "${CMAKE_CURRENT_BINARY_DIR}/${variant}" --parallel 3
|
|
COMMAND ${CMAKE_CTEST_COMMAND} --test-dir "${CMAKE_CURRENT_BINARY_DIR}/${variant}" --output-on-failure
|
|
USES_TERMINAL VERBATIM)
|
|
endforeach()
|
|
add_custom_target(check-development DEPENDS check analyze test-sanitize)
|