Przeglądaj źródła

Merge topic 'fix-CMP0046-warning'

d83245a3 cmTarget: Don't create duplicate backtraces in CMP0046 warning
Brad King 11 lat temu
rodzic
commit
e1a671c7d8

+ 3 - 4
Source/cmTarget.cxx

@@ -418,11 +418,10 @@ void cmTarget::SetMakefile(cmMakefile* mf)
 //----------------------------------------------------------------------------
 void cmTarget::AddUtility(const std::string& u, cmMakefile *makefile)
 {
-  this->Utilities.insert(u);
-  if(makefile)
-  {
+  if(this->Utilities.insert(u).second && makefile)
+    {
     makefile->GetBacktrace(UtilityBacktraces[u]);
-  }
+    }
 }
 
 //----------------------------------------------------------------------------

+ 1 - 0
Tests/RunCMake/CMP0046/CMP0046-Duplicate-result.txt

@@ -0,0 +1 @@
+0

+ 10 - 0
Tests/RunCMake/CMP0046/CMP0046-Duplicate-stderr.txt

@@ -0,0 +1,10 @@
+CMake Warning \(dev\) at CMP0046-Duplicate.cmake:5 \(add_dependencies\):
+  Policy CMP0046 is not set: Error on non-existent dependency in
+  add_dependencies.  Run "cmake --help-policy CMP0046" for policy details.
+  Use the cmake_policy command to set the policy and suppress this warning.
+
+  The dependency target "ctgt_no_exist" of target "dummy" does not exist.
+Call Stack \(most recent call first\):
+  CMP0046-Duplicate.cmake:8 \(add_dep\)
+  CMakeLists.txt:3 \(include\)
+This warning is for project developers.  Use -Wno-dev to suppress it.

+ 9 - 0
Tests/RunCMake/CMP0046/CMP0046-Duplicate.cmake

@@ -0,0 +1,9 @@
+
+add_library(dummy empty.cpp)
+
+macro(add_dep)
+  add_dependencies(dummy ctgt_no_exist)
+endmacro()
+
+add_dep()
+add_dep()

+ 1 - 0
Tests/RunCMake/CMP0046/RunCMakeTest.cmake

@@ -6,3 +6,4 @@ run_cmake(CMP0046-WARN-missing-dependency)
 
 run_cmake(CMP0046-OLD-existing-dependency)
 run_cmake(CMP0046-NEW-existing-dependency)
+run_cmake(CMP0046-Duplicate)

+ 7 - 0
Tests/RunCMake/CMP0046/empty.cpp

@@ -0,0 +1,7 @@
+#ifdef _WIN32
+__declspec(dllexport)
+#endif
+int empty()
+{
+  return 0;
+}