From bbffaa0e6cf3802644453713e80a84345e96148b Mon Sep 17 00:00:00 2001 From: Sylvain Joubert Date: Sat, 24 Jan 2015 19:42:31 +0100 Subject: [PATCH] Configure some CMake-provided targets with USES_TERMINAL (#14915) This will make them use the 'console' pool with the Ninja generator. Impacted targets are: - Built-in targets: install, install/local, install/strip, tests, package, package_source, rebuild_cache - Targets provided by the CTestTargets module: Nightly, Continuous, Experimental, and all their variants (*Start, *Configure, ...) --- Help/release/dev/console-pool.rst | 4 +++- Modules/CTestTargets.cmake | 3 +++ Source/cmGlobalGenerator.cxx | 14 +++++++------- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/Help/release/dev/console-pool.rst b/Help/release/dev/console-pool.rst index 19c2f191d..1d9bdb8e4 100644 --- a/Help/release/dev/console-pool.rst +++ b/Help/release/dev/console-pool.rst @@ -5,4 +5,6 @@ console-pool commands learned a new ``USES_TERMINAL`` option to request that the command be given direct access to the terminal if possible. The :generator:`Ninja` generator will places such commands in the - ``console`` pool. + ``console`` pool. Build targets provided by CMake that are meant + for individual interactive use, such as ``install``, are now + placed in this pool. diff --git a/Modules/CTestTargets.cmake b/Modules/CTestTargets.cmake index 5b6e062d0..115785017 100644 --- a/Modules/CTestTargets.cmake +++ b/Modules/CTestTargets.cmake @@ -67,6 +67,7 @@ if(NOT _CTEST_TARGETS_ADDED) foreach(mode Experimental Nightly Continuous NightlyMemoryCheck) add_custom_target(${mode} ${CMAKE_CTEST_COMMAND} ${__conf_types} -D ${mode} + USES_TERMINAL ) set_property(TARGET ${mode} PROPERTY RULE_LAUNCH_CUSTOM "") set_property(TARGET ${mode} PROPERTY FOLDER "CTestDashboardTargets") @@ -82,6 +83,7 @@ if(NOT _CTEST_TARGETS_ADDED) ) add_custom_target(${mode}${testtype} ${CMAKE_CTEST_COMMAND} ${__conf_types} -D ${mode}${testtype} + USES_TERMINAL ) set_property(TARGET ${mode}${testtype} PROPERTY RULE_LAUNCH_CUSTOM "") set_property(TARGET ${mode}${testtype} PROPERTY FOLDER "CTestDashboardTargets") @@ -94,6 +96,7 @@ if(NOT _CTEST_TARGETS_ADDED) if(CTEST_TEST_TARGET_ALIAS) add_custom_target(${CTEST_TEST_TARGET_ALIAS} ${CMAKE_CTEST_COMMAND} ${__conf_types} + USES_TERMINAL ) endif() endif() diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index dd3b1ec74..4c95a9fad 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -2191,7 +2191,7 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets) = this->CreateGlobalTarget(this->GetPackageTargetName(), "Run CPack packaging tool...", &cpackCommandLines, depends, - workingDir.c_str(), /*uses_terminal*/false); + workingDir.c_str(), /*uses_terminal*/true); } // CPack source const char* packageSourceTargetName = this->GetPackageSourceTargetName(); @@ -2215,7 +2215,7 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets) = this->CreateGlobalTarget(packageSourceTargetName, "Run CPack packaging tool for source...", &cpackCommandLines, depends, - workingDir.c_str(), /*uses_terminal*/false); + workingDir.c_str(), /*uses_terminal*/true); } } @@ -2241,7 +2241,7 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets) (*targets)[this->GetTestTargetName()] = this->CreateGlobalTarget(this->GetTestTargetName(), "Running tests...", &cpackCommandLines, depends, 0, - /*uses_terminal*/false); + /*uses_terminal*/true); } //Edit Cache @@ -2296,7 +2296,7 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets) (*targets)[rebuildCacheTargetName] = this->CreateGlobalTarget( rebuildCacheTargetName, "Running CMake to regenerate build system...", - &cpackCommandLines, depends, 0, /*uses_terminal*/false); + &cpackCommandLines, depends, 0, /*uses_terminal*/true); } //Install @@ -2377,7 +2377,7 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets) (*targets)[this->GetInstallTargetName()] = this->CreateGlobalTarget( this->GetInstallTargetName(), "Install the project...", - &cpackCommandLines, depends, 0, /*uses_terminal*/false); + &cpackCommandLines, depends, 0, /*uses_terminal*/true); // install_local if(const char* install_local = this->GetInstallLocalTargetName()) @@ -2393,7 +2393,7 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets) (*targets)[install_local] = this->CreateGlobalTarget( install_local, "Installing only the local directory...", - &cpackCommandLines, depends, 0, /*uses_terminal*/false); + &cpackCommandLines, depends, 0, /*uses_terminal*/true); } // install_strip @@ -2410,7 +2410,7 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets) (*targets)[install_strip] = this->CreateGlobalTarget( install_strip, "Installing the project stripped...", - &cpackCommandLines, depends, 0, /*uses_terminal*/false); + &cpackCommandLines, depends, 0, /*uses_terminal*/true); } } }