Browse Source

Merge topic 'ninja-multi-spurious-unused-variables' into release-3.17

8b799f80e3 Ninja Multi-Config: Fix spurious unused variable warning

Acked-by: Kitware Robot <[email protected]>
Merge-request: !4421
Brad King 5 years ago
parent
commit
27a29c46b6

+ 3 - 0
Source/cmGlobalNinjaGenerator.cxx

@@ -2600,6 +2600,9 @@ void cmGlobalNinjaMultiGenerator::GetQtAutoGenConfigs(
 
 bool cmGlobalNinjaMultiGenerator::InspectConfigTypeVariables()
 {
+  this->GetCMakeInstance()->MarkCliAsUsed("CMAKE_DEFAULT_BUILD_TYPE");
+  this->GetCMakeInstance()->MarkCliAsUsed("CMAKE_CROSS_CONFIGS");
+  this->GetCMakeInstance()->MarkCliAsUsed("CMAKE_DEFAULT_CONFIGS");
   return this->ReadCacheEntriesForBuild(*this->Makefiles.front()->GetState());
 }
 

+ 1 - 0
Tests/RunCMake/NinjaMultiConfig/NoUnusedVariables.cmake

@@ -0,0 +1 @@
+# Intentionally empty

+ 12 - 2
Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake

@@ -78,8 +78,6 @@ endfunction()
 
 ###############################################################################
 
-set(RunCMake_TEST_NO_CLEAN 1)
-
 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/Simple-build)
 # IMPORTANT: Setting RelWithDebInfo as the first item in CMAKE_CONFIGURATION_TYPES
 # generates a build.ninja file with that configuration
@@ -203,6 +201,7 @@ unset(RunCMake_TEST_OPTIONS)
 include(${RunCMake_TEST_BINARY_DIR}/target_files.cmake)
 run_cmake_build(FrameworkDependencyAutogen framework Release test2:Debug)
 
+set(RunCMake_TEST_NO_CLEAN 1)
 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/CustomCommandGenerator-build)
 set(RunCMake_TEST_OPTIONS "-DCMAKE_CONFIGURATION_TYPES=Debug\\;Release\\;MinSizeRel\\;RelWithDebInfo;-DCMAKE_CROSS_CONFIGS=all")
 run_cmake_configure(CustomCommandGenerator)
@@ -219,6 +218,7 @@ run_cmake_command(CustomCommandGenerator-debug-in-release-graph-generated "${TAR
 run_ninja(CustomCommandGenerator debug-in-release-graph-clean build-Debug.ninja clean:Debug)
 run_ninja(CustomCommandGenerator release-in-debug-graph build-Debug.ninja generated:Release)
 run_cmake_command(CustomCommandGenerator-release-in-debug-graph-generated "${TARGET_FILE_generated_Release}")
+unset(RunCMake_TEST_NO_CLEAN)
 
 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/CustomCommandsAndTargets-build)
 set(RunCMake_TEST_OPTIONS "-DCMAKE_CROSS_CONFIGS=all")
@@ -275,6 +275,16 @@ run_ninja(Install debug-in-release-graph-install build-Release.ninja install:Deb
 #run_cmake_configure(AutoMocExecutable)
 #run_cmake_build(AutoMocExecutable debug-in-release-graph Release exe)
 
+# Need to test this manually because run_cmake() adds --no-warn-unused-cli
+set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/NoUnusedVariables-build)
+run_cmake_command(NoUnusedVariables ${CMAKE_COMMAND} ${CMAKE_CURRENT_LIST_DIR}
+  -G "Ninja Multi-Config"
+  "-DRunCMake_TEST=NoUnusedVariables"
+  "-DCMAKE_CROSS_CONFIGS=all"
+  "-DCMAKE_DEFAULT_BUILD_TYPE=Debug"
+  "-DCMAKE_DEFAULT_CONFIGS=all"
+  )
+
 if(CMake_TEST_CUDA)
   set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/CudaSimple-build)
   run_cmake_configure(CudaSimple)