# 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)