[Cmake-commits] CMake branch, next, updated. v3.7.2-2219-g37dff4b

Brad King brad.king at kitware.com
Tue Jan 17 09:27:36 EST 2017


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  37dff4b95a8846939d0294434bc0e0b16e006d09 (commit)
       via  d9f836e9567dbcce85b917300e8de9086aa1f1f7 (commit)
      from  af15867d4af1cb9526e136fc67d9fefff6f9e2ea (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=37dff4b95a8846939d0294434bc0e0b16e006d09
commit 37dff4b95a8846939d0294434bc0e0b16e006d09
Merge: af15867 d9f836e
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Jan 17 09:27:34 2017 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Jan 17 09:27:34 2017 -0500

    Merge topic '16165-manually-added-dependencies' into next
    
    d9f836e9 Add a getter for manually added target dependencies


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d9f836e9567dbcce85b917300e8de9086aa1f1f7
commit d9f836e9567dbcce85b917300e8de9086aa1f1f7
Author:     Gregor Jasny <gjasny at googlemail.com>
AuthorDate: Sun Jun 26 00:12:52 2016 +0200
Commit:     Gregor Jasny <gjasny at googlemail.com>
CommitDate: Mon Jan 16 22:38:24 2017 +0100

    Add a getter for manually added target dependencies
    
    Closes: #16165

diff --git a/Help/manual/cmake-properties.7.rst b/Help/manual/cmake-properties.7.rst
index 864d1dc..5b39bed 100644
--- a/Help/manual/cmake-properties.7.rst
+++ b/Help/manual/cmake-properties.7.rst
@@ -236,6 +236,7 @@ Properties on Targets
    /prop_tgt/MACOSX_BUNDLE
    /prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST
    /prop_tgt/MACOSX_RPATH
+   /prop_tgt/MANUALLY_ADDED_DEPENDENCIES
    /prop_tgt/MAP_IMPORTED_CONFIG_CONFIG
    /prop_tgt/NAME
    /prop_tgt/NO_SONAME
diff --git a/Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst b/Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst
new file mode 100644
index 0000000..c12ea14
--- /dev/null
+++ b/Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst
@@ -0,0 +1,8 @@
+MANUALLY_ADDED_DEPENDENCIES
+---------------------------
+
+Get manually added dependencies to other top-level targets.
+
+This read-only property can be used to query all dependencies that
+were added for this target with the :command:`add_dependencies`
+command.
diff --git a/Help/release/dev/manually-added-dependencies.rst b/Help/release/dev/manually-added-dependencies.rst
new file mode 100644
index 0000000..6c486da
--- /dev/null
+++ b/Help/release/dev/manually-added-dependencies.rst
@@ -0,0 +1,6 @@
+manually-added-dependencies
+---------------------------
+
+* The target property :prop_tgt:`MANUALLY_ADDED_DEPENDENCIES` has
+  been added.  It is read-only and could be used to retrieve
+  dependencies that have been added with :command:`add_dependencies`.
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 9261ca8..d825e5c 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -852,6 +852,12 @@ void cmTarget::SetProperty(const std::string& prop, const char* value)
         this->Makefile->GetBacktrace())) {
     return;
   }
+  if (prop == "MANUALLY_ADDED_DEPENDENCIES") {
+    std::ostringstream e;
+    e << "MANUALLY_ADDED_DEPENDENCIES property is read-only\n";
+    this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
+    return;
+  }
   if (prop == "NAME") {
     std::ostringstream e;
     e << "NAME property is read-only\n";
@@ -1168,6 +1174,7 @@ const char* cmTarget::GetProperty(const std::string& prop) const
   MAKE_STATIC_PROP(COMPILE_OPTIONS);
   MAKE_STATIC_PROP(COMPILE_DEFINITIONS);
   MAKE_STATIC_PROP(IMPORTED);
+  MAKE_STATIC_PROP(MANUALLY_ADDED_DEPENDENCIES);
   MAKE_STATIC_PROP(NAME);
   MAKE_STATIC_PROP(BINARY_DIR);
   MAKE_STATIC_PROP(SOURCE_DIR);
@@ -1181,6 +1188,7 @@ const char* cmTarget::GetProperty(const std::string& prop) const
     specialProps.insert(propCOMPILE_OPTIONS);
     specialProps.insert(propCOMPILE_DEFINITIONS);
     specialProps.insert(propIMPORTED);
+    specialProps.insert(propMANUALLY_ADDED_DEPENDENCIES);
     specialProps.insert(propNAME);
     specialProps.insert(propBINARY_DIR);
     specialProps.insert(propSOURCE_DIR);
@@ -1236,6 +1244,15 @@ const char* cmTarget::GetProperty(const std::string& prop) const
       output = cmJoin(this->Internal->CompileDefinitionsEntries, ";");
       return output.c_str();
     }
+    if (prop == propMANUALLY_ADDED_DEPENDENCIES) {
+      if (this->Utilities.empty()) {
+        return CM_NULLPTR;
+      }
+
+      static std::string output;
+      output = cmJoin(this->Utilities, ";");
+      return output.c_str();
+    }
     if (prop == propIMPORTED) {
       return this->IsImported() ? "TRUE" : "FALSE";
     }
diff --git a/Tests/RunCMake/add_dependencies/ReadOnlyProperty-result.txt b/Tests/RunCMake/add_dependencies/ReadOnlyProperty-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/add_dependencies/ReadOnlyProperty-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/add_dependencies/ReadOnlyProperty-stderr.txt b/Tests/RunCMake/add_dependencies/ReadOnlyProperty-stderr.txt
new file mode 100644
index 0000000..da30b81
--- /dev/null
+++ b/Tests/RunCMake/add_dependencies/ReadOnlyProperty-stderr.txt
@@ -0,0 +1 @@
+MANUALLY_ADDED_DEPENDENCIES property is read-only
diff --git a/Tests/RunCMake/add_dependencies/ReadOnlyProperty.cmake b/Tests/RunCMake/add_dependencies/ReadOnlyProperty.cmake
new file mode 100644
index 0000000..f0e4069
--- /dev/null
+++ b/Tests/RunCMake/add_dependencies/ReadOnlyProperty.cmake
@@ -0,0 +1,6 @@
+cmake_minimum_required(VERSION 3.7)
+project(ReadOnlyProperty C)
+
+add_library(a a.c)
+
+set_property(TARGET a PROPERTY MANUALLY_ADDED_DEPENDENCIES DEPENDENCIES foo)
diff --git a/Tests/RunCMake/add_dependencies/RetrieveDependencies.cmake b/Tests/RunCMake/add_dependencies/RetrieveDependencies.cmake
new file mode 100644
index 0000000..45b3974
--- /dev/null
+++ b/Tests/RunCMake/add_dependencies/RetrieveDependencies.cmake
@@ -0,0 +1,16 @@
+cmake_minimum_required(VERSION 3.7)
+project(RetrieveDependencies C)
+
+add_library(a a.c)
+
+add_library(b c.c)
+target_link_libraries(a b)
+
+add_library(c c.c)
+add_dependencies(a c)
+
+get_property(DEPS_A TARGET a PROPERTY MANUALLY_ADDED_DEPENDENCIES)
+
+if(NOT DEPS_A STREQUAL "c")
+  message(FATAL_ERROR "Expected target c being a dependency of a but got: '${DEPS_A}'")
+endif()
diff --git a/Tests/RunCMake/add_dependencies/RunCMakeTest.cmake b/Tests/RunCMake/add_dependencies/RunCMakeTest.cmake
index 30b7e67..507d43f 100644
--- a/Tests/RunCMake/add_dependencies/RunCMakeTest.cmake
+++ b/Tests/RunCMake/add_dependencies/RunCMakeTest.cmake
@@ -1,3 +1,5 @@
 include(RunCMake)
 
 run_cmake(NoTarget)
+run_cmake(ReadOnlyProperty)
+run_cmake(RetrieveDependencies)
diff --git a/Tests/RunCMake/add_dependencies/a.c b/Tests/RunCMake/add_dependencies/a.c
new file mode 100644
index 0000000..707c1c3
--- /dev/null
+++ b/Tests/RunCMake/add_dependencies/a.c
@@ -0,0 +1,3 @@
+void a()
+{
+}
diff --git a/Tests/RunCMake/add_dependencies/b.c b/Tests/RunCMake/add_dependencies/b.c
new file mode 100644
index 0000000..57b2900
--- /dev/null
+++ b/Tests/RunCMake/add_dependencies/b.c
@@ -0,0 +1,3 @@
+void b()
+{
+}
diff --git a/Tests/RunCMake/add_dependencies/c.c b/Tests/RunCMake/add_dependencies/c.c
new file mode 100644
index 0000000..cbf94ca
--- /dev/null
+++ b/Tests/RunCMake/add_dependencies/c.c
@@ -0,0 +1,3 @@
+void c()
+{
+}

-----------------------------------------------------------------------

Summary of changes:
 Help/manual/cmake-properties.7.rst                    |    1 +
 Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst         |    8 ++++++++
 Help/release/dev/manually-added-dependencies.rst      |    6 ++++++
 Source/cmTarget.cxx                                   |   17 +++++++++++++++++
 .../ReadOnlyProperty-result.txt}                      |    0
 .../add_dependencies/ReadOnlyProperty-stderr.txt      |    1 +
 .../RunCMake/add_dependencies/ReadOnlyProperty.cmake  |    6 ++++++
 .../add_dependencies/RetrieveDependencies.cmake       |   16 ++++++++++++++++
 Tests/RunCMake/add_dependencies/RunCMakeTest.cmake    |    2 ++
 Tests/RunCMake/add_dependencies/a.c                   |    3 +++
 Tests/RunCMake/add_dependencies/b.c                   |    3 +++
 Tests/RunCMake/add_dependencies/c.c                   |    3 +++
 12 files changed, 66 insertions(+)
 create mode 100644 Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst
 create mode 100644 Help/release/dev/manually-added-dependencies.rst
 copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => add_dependencies/ReadOnlyProperty-result.txt} (100%)
 create mode 100644 Tests/RunCMake/add_dependencies/ReadOnlyProperty-stderr.txt
 create mode 100644 Tests/RunCMake/add_dependencies/ReadOnlyProperty.cmake
 create mode 100644 Tests/RunCMake/add_dependencies/RetrieveDependencies.cmake
 create mode 100644 Tests/RunCMake/add_dependencies/a.c
 create mode 100644 Tests/RunCMake/add_dependencies/b.c
 create mode 100644 Tests/RunCMake/add_dependencies/c.c


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list