include(RunCMake) function(run_tutorial_step name) set(RunCMake_TEST_SOURCE_DIR ${Tutorial_SOURCE_DIR}/${name}) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${name}-build) if(Tutorial_USE_MYMATH) set(math MyMath) else() set(math NoMath) endif() set(config Release) if(RunCMake_GENERATOR_IS_MULTI_CONFIG) set(exe ${RunCMake_TEST_BINARY_DIR}/${config}/Tutorial) else() set(exe ${RunCMake_TEST_BINARY_DIR}/Tutorial) list(APPEND RunCMake_TEST_OPTIONS -DCMAKE_BUILD_TYPE=${config}) endif() list(APPEND RunCMake_TEST_OPTIONS -DUSE_MYMATH:BOOL=${Tutorial_USE_MYMATH}) run_cmake(${name}-configure) unset(RunCMake_TEST_OPTIONS) set(RunCMake_TEST_NO_CLEAN 1) set(RunCMake_TEST_OUTPUT_MERGE 1) run_cmake_command(${name}-build ${CMAKE_COMMAND} --build . --config ${config}) unset(RunCMake_TEST_OUTPUT_MERGE) if(EXISTS ${RunCMake_SOURCE_DIR}/${name}-${math}-run-stdout.txt) set(RunCMake-stdout-file ${name}-${math}-run-stdout.txt) else() set(RunCMake-stdout-file Step-${math}-run-stdout.txt) endif() run_cmake_command(${name}-run ${exe} 25) endfunction() if(NOT Tutorial_USE_MYMATH) run_tutorial_step(Step2) endif() foreach(step RANGE 3 12) run_tutorial_step(Step${step}) endforeach() run_tutorial_step(Complete)