include(RunCMake) run_cmake(AppendLiteralQuotes) run_cmake(AppendNoOutput) run_cmake(AppendNotOutput) run_cmake(BadArgument) run_cmake(BadByproduct) run_cmake(BadOutput) run_cmake(BadCommand) run_cmake(GeneratedProperty) run_cmake(LiteralQuotes) run_cmake(NoArguments) run_cmake(NoOutputOrTarget) run_cmake(OutputAndTarget) run_cmake(SourceByproducts) run_cmake(SourceUsesTerminal) run_cmake(TargetImported) run_cmake(TargetLiteralQuotes) run_cmake(TargetNotInDir) if(${RunCMake_GENERATOR} MATCHES "Visual Studio ([^89]|[89][0-9])") run_cmake(RemoveEmptyCommands) endif() run_cmake(AssigningMultipleTargets) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/AssigningMultipleTargets-build) set(RunCMake_TEST_NO_CLEAN 1) run_cmake_command(AssigningMultipleTargets-build ${CMAKE_COMMAND} --build .) unset(RunCMake_TEST_BINARY_DIR) unset(RunCMake_TEST_NO_CLEAN) if(NOT RunCMake_GENERATOR STREQUAL "Ninja Multi-Config") run_cmake(WorkingDirectory) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/WorkingDirectory-build) set(RunCMake_TEST_NO_CLEAN 1) if(RunCMake_GENERATOR_IS_MULTI_CONFIG) set(RunCMake-stdout-file WorkingDirectory-build-multi-config-stdout.txt) else() set(RunCMake-stdout-file WorkingDirectory-build-single-config-stdout.txt) endif() run_cmake_command(WorkingDirectory-build ${CMAKE_COMMAND} --build . --config Debug) unset(RunCMake-stdout-file) unset(RunCMake_TEST_BINARY_DIR) unset(RunCMake_TEST_NO_CLEAN) endif() function(test_genex name) run_cmake(${name}) set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/${name}-build") set(RunCMake_TEST_NO_CLEAN 1) run_cmake_command(${name}-build ${CMAKE_COMMAND} --build .) if(NOT EXISTS "${RunCMake_TEST_BINARY_DIR}/wdir/touched") message(SEND_ERROR "File not created by target-dependent add_custom_command()!") endif() unset(RunCMake_TEST_NO_CLEAN) unset(RunCMake_TEST_BINARY_DIR) endfunction() test_genex(TargetGenexEvent)