get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) if(NOT _isMultiConfig) set(CMAKE_BUILD_TYPE Debug) endif() include(ExternalProject) # Test various combinations of USES_TERMINAL with ExternalProject_Add. macro(DoTerminalTest _target) ExternalProject_Add(${_target} DOWNLOAD_COMMAND "${CMAKE_COMMAND}" -E echo "download" UPDATE_COMMAND "${CMAKE_COMMAND}" -E echo "update" CONFIGURE_COMMAND "${CMAKE_COMMAND}" -E echo "configure" BUILD_COMMAND "${CMAKE_COMMAND}" -E echo "build" TEST_COMMAND "${CMAKE_COMMAND}" -E echo "test" INSTALL_COMMAND "${CMAKE_COMMAND}" -E echo "install" ${ARGN} ) endmacro() # USES_TERMINAL on all steps DoTerminalTest(TerminalTest1 USES_TERMINAL_DOWNLOAD 1 USES_TERMINAL_UPDATE 1 USES_TERMINAL_CONFIGURE 1 USES_TERMINAL_BUILD 1 USES_TERMINAL_TEST 1 USES_TERMINAL_INSTALL 1 ) # USES_TERMINAL on every other step, starting with download DoTerminalTest(TerminalTest2 USES_TERMINAL_DOWNLOAD 1 USES_TERMINAL_CONFIGURE 1 USES_TERMINAL_TEST 1 ) # USES_TERMINAL on every other step, starting with update DoTerminalTest(TerminalTest3 USES_TERMINAL_UPDATE 1 USES_TERMINAL_BUILD 1 USES_TERMINAL_INSTALL 1 ) # USES_TERMINAL on no step DoTerminalTest(TerminalTest4)