[Cmake-commits] CMake branch, next, updated. v3.6.2-2221-g9027ac7

Brad King brad.king at kitware.com
Mon Sep 19 14:09:47 EDT 2016


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  9027ac7ab915f4c75892bc771130dbbaae93c5d2 (commit)
       via  d0be1e15c383f17502d0f47a36d16ba3571b0b79 (commit)
       via  cbca65826c2bf49ba8c99efe8fa315d2942c4836 (commit)
       via  7a4b8d0dc2f1e780f14e35e1c7ea32dde90576a4 (commit)
       via  089868a244e623f75c1ffbe9297d3228bef9a8f1 (commit)
      from  7f61763a42b466927d4711d4ad6830c88c1c248f (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=9027ac7ab915f4c75892bc771130dbbaae93c5d2
commit 9027ac7ab915f4c75892bc771130dbbaae93c5d2
Merge: 7f61763 d0be1e1
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Mon Sep 19 14:09:45 2016 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Mon Sep 19 14:09:45 2016 -0400

    Merge topic 'directory-list-targets-and-subdirs' into next
    
    d0be1e15 Add directory properties to get source and binary directories
    cbca6582 Add directory property to list buildsystem targets
    7a4b8d0d Add a directory property to list subdirectories
    089868a2 cmState: Record buildsystem target names in each directory


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d0be1e15c383f17502d0f47a36d16ba3571b0b79
commit d0be1e15c383f17502d0f47a36d16ba3571b0b79
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Mon Sep 19 13:47:51 2016 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Mon Sep 19 14:00:50 2016 -0400

    Add directory properties to get source and binary directories
    
    Add SOURCE_DIR and BINARY_DIR directory properties that return the
    absolute paths to the corresponding directories.  These correspond
    to the target properties of the same names that we already have.

diff --git a/Help/manual/cmake-properties.7.rst b/Help/manual/cmake-properties.7.rst
index b15ca9a..2cb6a1a 100644
--- a/Help/manual/cmake-properties.7.rst
+++ b/Help/manual/cmake-properties.7.rst
@@ -54,6 +54,7 @@ Properties on Directories
    :maxdepth: 1
 
    /prop_dir/ADDITIONAL_MAKE_CLEAN_FILES
+   /prop_dir/BINARY_DIR
    /prop_dir/BUILDSYSTEM_TARGETS
    /prop_dir/CACHE_VARIABLES
    /prop_dir/CLEAN_NO_CUSTOM
@@ -74,6 +75,7 @@ Properties on Directories
    /prop_dir/RULE_LAUNCH_COMPILE
    /prop_dir/RULE_LAUNCH_CUSTOM
    /prop_dir/RULE_LAUNCH_LINK
+   /prop_dir/SOURCE_DIR
    /prop_dir/SUBDIRECTORIES
    /prop_dir/TEST_INCLUDE_FILE
    /prop_dir/VARIABLES
diff --git a/Help/prop_dir/BINARY_DIR.rst b/Help/prop_dir/BINARY_DIR.rst
new file mode 100644
index 0000000..597c79a
--- /dev/null
+++ b/Help/prop_dir/BINARY_DIR.rst
@@ -0,0 +1,5 @@
+BINARY_DIR
+----------
+
+This read-only directory property reports absolute path to the binary
+directory corresponding to the source on which it is read.
diff --git a/Help/prop_dir/SOURCE_DIR.rst b/Help/prop_dir/SOURCE_DIR.rst
new file mode 100644
index 0000000..ac98c3b
--- /dev/null
+++ b/Help/prop_dir/SOURCE_DIR.rst
@@ -0,0 +1,5 @@
+SOURCE_DIR
+----------
+
+This read-only directory property reports absolute path to the source
+directory on which it is read.
diff --git a/Help/release/dev/directory-list-targets-and-subdirs.rst b/Help/release/dev/directory-list-targets-and-subdirs.rst
index 5bab665..85f2c82 100644
--- a/Help/release/dev/directory-list-targets-and-subdirs.rst
+++ b/Help/release/dev/directory-list-targets-and-subdirs.rst
@@ -1,6 +1,13 @@
 directory-list-targets-and-subdirs
 ----------------------------------
 
+* A :prop_dir:`SOURCE_DIR` directory property was added to get the
+  absolute path to the source directory associated with a directory.
+
+* A :prop_dir:`BINARY_DIR` directory property was added to get the
+  absolute path to the binary directory corresponding to the source
+  directory on which the property is read.
+
 * A :prop_dir:`BUILDSYSTEM_TARGETS` directory property was added to
   get the list of logical buildsystem target names added by the
   project in a directory.
diff --git a/Source/cmState.cxx b/Source/cmState.cxx
index 37e41ad..6b37b92 100644
--- a/Source/cmState.cxx
+++ b/Source/cmState.cxx
@@ -29,7 +29,9 @@
 #include <string.h>
 #include <utility>
 
+static std::string const kBINARY_DIR = "BINARY_DIR";
 static std::string const kBUILDSYSTEM_TARGETS = "BUILDSYSTEM_TARGETS";
+static std::string const kSOURCE_DIR = "SOURCE_DIR";
 static std::string const kSUBDIRECTORIES = "SUBDIRECTORIES";
 
 struct cmState::SnapshotDataType
@@ -1673,6 +1675,14 @@ const char* cmState::Directory::GetProperty(const std::string& prop,
     }
     return "";
   }
+  if (prop == kBINARY_DIR) {
+    output = this->GetCurrentBinary();
+    return output.c_str();
+  }
+  if (prop == kSOURCE_DIR) {
+    output = this->GetCurrentSource();
+    return output.c_str();
+  }
   if (prop == kSUBDIRECTORIES) {
     std::vector<std::string> child_dirs;
     std::vector<cmState::Snapshot> const& children =
diff --git a/Tests/RunCMake/get_property/directory_properties-stderr.txt b/Tests/RunCMake/get_property/directory_properties-stderr.txt
index 5fb79e1..6d5bcdb 100644
--- a/Tests/RunCMake/get_property/directory_properties-stderr.txt
+++ b/Tests/RunCMake/get_property/directory_properties-stderr.txt
@@ -11,4 +11,12 @@ get_property: -->[^<;]*Tests/RunCMake/get_property/directory_properties/sub1;[^<
 get_directory_property: -->CustomTop;InterfaceTop<--
 get_property: -->CustomTop;InterfaceTop<--
 get_directory_property: -->CustomSub;InterfaceSub<--
-get_property: -->CustomSub;InterfaceSub<--$
+get_property: -->CustomSub;InterfaceSub<--
+get_directory_property: -->[^<;]*/Tests/RunCMake/get_property/directory_properties-build<--
+get_property: -->[^<;]*/Tests/RunCMake/get_property/directory_properties-build<--
+get_directory_property: -->[^<;]*/RunCMake/get_property<--
+get_property: -->[^<;]*/Tests/RunCMake/get_property<--
+get_directory_property: -->[^<;]*/Tests/RunCMake/get_property/directory_properties-build/directory_properties<--
+get_property: -->[^<;]*/Tests/RunCMake/get_property/directory_properties-build/directory_properties<--
+get_directory_property: -->[^<;]*/Tests/RunCMake/get_property/directory_properties<--
+get_property: -->[^<;]*/Tests/RunCMake/get_property/directory_properties<--$
diff --git a/Tests/RunCMake/get_property/directory_properties.cmake b/Tests/RunCMake/get_property/directory_properties.cmake
index ae57282..4e68738 100644
--- a/Tests/RunCMake/get_property/directory_properties.cmake
+++ b/Tests/RunCMake/get_property/directory_properties.cmake
@@ -23,3 +23,8 @@ check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}" SUBDIRECTORIES)
 check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}/directory_properties" SUBDIRECTORIES)
 check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}" BUILDSYSTEM_TARGETS)
 check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}/directory_properties" BUILDSYSTEM_TARGETS)
+
+check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}" BINARY_DIR)
+check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}" SOURCE_DIR)
+check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}/directory_properties" BINARY_DIR)
+check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}/directory_properties" SOURCE_DIR)

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cbca65826c2bf49ba8c99efe8fa315d2942c4836
commit cbca65826c2bf49ba8c99efe8fa315d2942c4836
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Mon Sep 19 13:33:56 2016 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Mon Sep 19 14:00:32 2016 -0400

    Add directory property to list buildsystem targets
    
    Add a BUILDSYSTEM_TARGETS property to allow project code to traverse
    the list of its own targets in a given directory.

diff --git a/Help/manual/cmake-properties.7.rst b/Help/manual/cmake-properties.7.rst
index 855cee6..b15ca9a 100644
--- a/Help/manual/cmake-properties.7.rst
+++ b/Help/manual/cmake-properties.7.rst
@@ -54,6 +54,7 @@ Properties on Directories
    :maxdepth: 1
 
    /prop_dir/ADDITIONAL_MAKE_CLEAN_FILES
+   /prop_dir/BUILDSYSTEM_TARGETS
    /prop_dir/CACHE_VARIABLES
    /prop_dir/CLEAN_NO_CUSTOM
    /prop_dir/CMAKE_CONFIGURE_DEPENDS
diff --git a/Help/prop_dir/BUILDSYSTEM_TARGETS.rst b/Help/prop_dir/BUILDSYSTEM_TARGETS.rst
new file mode 100644
index 0000000..da907cb
--- /dev/null
+++ b/Help/prop_dir/BUILDSYSTEM_TARGETS.rst
@@ -0,0 +1,11 @@
+BUILDSYSTEM_TARGETS
+-------------------
+
+This read-only directory property contains a
+:ref:`;-list <CMake Language Lists>` of buildsystem targets added in the
+directory by calls to the :command:`add_library`, :command:`add_executable`,
+and :command:`add_custom_target` commands.  The list does not include any
+:ref:`Imported Targets` or :ref:`Alias Targets`, but does include
+:ref:`Interface Libraries`.  Each entry in the list is the logical name
+of a target, suitable to pass to the :command:`get_property` command
+``TARGET`` option.
diff --git a/Help/release/dev/directory-list-targets-and-subdirs.rst b/Help/release/dev/directory-list-targets-and-subdirs.rst
index 554d6d6..5bab665 100644
--- a/Help/release/dev/directory-list-targets-and-subdirs.rst
+++ b/Help/release/dev/directory-list-targets-and-subdirs.rst
@@ -1,5 +1,9 @@
 directory-list-targets-and-subdirs
 ----------------------------------
 
+* A :prop_dir:`BUILDSYSTEM_TARGETS` directory property was added to
+  get the list of logical buildsystem target names added by the
+  project in a directory.
+
 * A :prop_dir:`SUBDIRECTORIES` directory property was added to
   get the list of subdirectories added by a project in a directory.
diff --git a/Source/cmState.cxx b/Source/cmState.cxx
index 325ca76..37e41ad 100644
--- a/Source/cmState.cxx
+++ b/Source/cmState.cxx
@@ -29,6 +29,7 @@
 #include <string.h>
 #include <utility>
 
+static std::string const kBUILDSYSTEM_TARGETS = "BUILDSYSTEM_TARGETS";
 static std::string const kSUBDIRECTORIES = "SUBDIRECTORIES";
 
 struct cmState::SnapshotDataType
@@ -1683,6 +1684,10 @@ const char* cmState::Directory::GetProperty(const std::string& prop,
     output = cmJoin(child_dirs, ";");
     return output.c_str();
   }
+  if (prop == kBUILDSYSTEM_TARGETS) {
+    output = cmJoin(this->DirectoryState->NormalTargetNames, ";");
+    return output.c_str();
+  }
 
   if (prop == "LISTFILE_STACK") {
     std::vector<std::string> listFiles;
diff --git a/Tests/RunCMake/get_property/directory_properties-stderr.txt b/Tests/RunCMake/get_property/directory_properties-stderr.txt
index b24c709..5fb79e1 100644
--- a/Tests/RunCMake/get_property/directory_properties-stderr.txt
+++ b/Tests/RunCMake/get_property/directory_properties-stderr.txt
@@ -7,4 +7,8 @@ get_property: --><--
 get_directory_property: -->[^<;]*Tests/RunCMake/get_property/directory_properties<--
 get_property: -->[^<;]*Tests/RunCMake/get_property/directory_properties<--
 get_directory_property: -->[^<;]*Tests/RunCMake/get_property/directory_properties/sub1;[^<;]*Tests/RunCMake/get_property/directory_properties/sub2<--
-get_property: -->[^<;]*Tests/RunCMake/get_property/directory_properties/sub1;[^<;]*Tests/RunCMake/get_property/directory_properties/sub2<--$
+get_property: -->[^<;]*Tests/RunCMake/get_property/directory_properties/sub1;[^<;]*Tests/RunCMake/get_property/directory_properties/sub2<--
+get_directory_property: -->CustomTop;InterfaceTop<--
+get_property: -->CustomTop;InterfaceTop<--
+get_directory_property: -->CustomSub;InterfaceSub<--
+get_property: -->CustomSub;InterfaceSub<--$
diff --git a/Tests/RunCMake/get_property/directory_properties.cmake b/Tests/RunCMake/get_property/directory_properties.cmake
index c1347d3..ae57282 100644
--- a/Tests/RunCMake/get_property/directory_properties.cmake
+++ b/Tests/RunCMake/get_property/directory_properties.cmake
@@ -14,6 +14,12 @@ check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}" empty)
 check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}" custom)
 check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}" noexist)
 
+add_custom_target(CustomTop)
+add_library(InterfaceTop INTERFACE)
+add_library(my::InterfaceTop ALIAS InterfaceTop)
+
 add_subdirectory(directory_properties)
 check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}" SUBDIRECTORIES)
 check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}/directory_properties" SUBDIRECTORIES)
+check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}" BUILDSYSTEM_TARGETS)
+check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}/directory_properties" BUILDSYSTEM_TARGETS)
diff --git a/Tests/RunCMake/get_property/directory_properties/CMakeLists.txt b/Tests/RunCMake/get_property/directory_properties/CMakeLists.txt
index f9ebf78..7318b97 100644
--- a/Tests/RunCMake/get_property/directory_properties/CMakeLists.txt
+++ b/Tests/RunCMake/get_property/directory_properties/CMakeLists.txt
@@ -1,2 +1,6 @@
 add_subdirectory(sub1)
 subdirs(sub2)
+
+add_custom_target(CustomSub)
+add_library(InterfaceSub INTERFACE)
+add_library(my::InterfaceSub ALIAS InterfaceSub)

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7a4b8d0dc2f1e780f14e35e1c7ea32dde90576a4
commit 7a4b8d0dc2f1e780f14e35e1c7ea32dde90576a4
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Mon Sep 19 13:32:29 2016 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Mon Sep 19 13:59:43 2016 -0400

    Add a directory property to list subdirectories
    
    Add a SUBDIRECTORIES directory property to allow project code to
    traverse the directory structure of itself as CMake sees it.

diff --git a/Help/manual/cmake-properties.7.rst b/Help/manual/cmake-properties.7.rst
index 0f1bfad..855cee6 100644
--- a/Help/manual/cmake-properties.7.rst
+++ b/Help/manual/cmake-properties.7.rst
@@ -73,6 +73,7 @@ Properties on Directories
    /prop_dir/RULE_LAUNCH_COMPILE
    /prop_dir/RULE_LAUNCH_CUSTOM
    /prop_dir/RULE_LAUNCH_LINK
+   /prop_dir/SUBDIRECTORIES
    /prop_dir/TEST_INCLUDE_FILE
    /prop_dir/VARIABLES
    /prop_dir/VS_GLOBAL_SECTION_POST_section
diff --git a/Help/prop_dir/SUBDIRECTORIES.rst b/Help/prop_dir/SUBDIRECTORIES.rst
new file mode 100644
index 0000000..2c2ea77
--- /dev/null
+++ b/Help/prop_dir/SUBDIRECTORIES.rst
@@ -0,0 +1,15 @@
+SUBDIRECTORIES
+--------------
+
+This read-only directory property contains a
+:ref:`;-list <CMake Language Lists>` of subdirectories processed so far by
+the :command:`add_subdirectory` or :command:`subdirs` commands.  Each entry is
+the absolute path to the source directory (containing the ``CMakeLists.txt``
+file).  This is suitable to pass to the :command:`get_property` command
+``DIRECTORY`` option.
+
+.. note::
+
+  The :command:`subdirs` command does not process its arguments until
+  after the calling directory is fully processed.  Therefore looking
+  up this property in the current directory will not see them.
diff --git a/Help/release/dev/directory-list-targets-and-subdirs.rst b/Help/release/dev/directory-list-targets-and-subdirs.rst
new file mode 100644
index 0000000..554d6d6
--- /dev/null
+++ b/Help/release/dev/directory-list-targets-and-subdirs.rst
@@ -0,0 +1,5 @@
+directory-list-targets-and-subdirs
+----------------------------------
+
+* A :prop_dir:`SUBDIRECTORIES` directory property was added to
+  get the list of subdirectories added by a project in a directory.
diff --git a/Source/cmState.cxx b/Source/cmState.cxx
index 2ff4516..325ca76 100644
--- a/Source/cmState.cxx
+++ b/Source/cmState.cxx
@@ -29,6 +29,8 @@
 #include <string.h>
 #include <utility>
 
+static std::string const kSUBDIRECTORIES = "SUBDIRECTORIES";
+
 struct cmState::SnapshotDataType
 {
   cmState::PositionType ScopeParent;
@@ -1670,6 +1672,18 @@ const char* cmState::Directory::GetProperty(const std::string& prop,
     }
     return "";
   }
+  if (prop == kSUBDIRECTORIES) {
+    std::vector<std::string> child_dirs;
+    std::vector<cmState::Snapshot> const& children =
+      this->DirectoryState->Children;
+    for (std::vector<cmState::Snapshot>::const_iterator ci = children.begin();
+         ci != children.end(); ++ci) {
+      child_dirs.push_back(ci->GetDirectory().GetCurrentSource());
+    }
+    output = cmJoin(child_dirs, ";");
+    return output.c_str();
+  }
+
   if (prop == "LISTFILE_STACK") {
     std::vector<std::string> listFiles;
     cmState::Snapshot snp = this->Snapshot_;
diff --git a/Tests/RunCMake/get_property/directory_properties-stderr.txt b/Tests/RunCMake/get_property/directory_properties-stderr.txt
index 80c9877..b24c709 100644
--- a/Tests/RunCMake/get_property/directory_properties-stderr.txt
+++ b/Tests/RunCMake/get_property/directory_properties-stderr.txt
@@ -3,4 +3,8 @@ get_property: --><--
 get_directory_property: -->value<--
 get_property: -->value<--
 get_directory_property: --><--
-get_property: --><--$
+get_property: --><--
+get_directory_property: -->[^<;]*Tests/RunCMake/get_property/directory_properties<--
+get_property: -->[^<;]*Tests/RunCMake/get_property/directory_properties<--
+get_directory_property: -->[^<;]*Tests/RunCMake/get_property/directory_properties/sub1;[^<;]*Tests/RunCMake/get_property/directory_properties/sub2<--
+get_property: -->[^<;]*Tests/RunCMake/get_property/directory_properties/sub1;[^<;]*Tests/RunCMake/get_property/directory_properties/sub2<--$
diff --git a/Tests/RunCMake/get_property/directory_properties.cmake b/Tests/RunCMake/get_property/directory_properties.cmake
index b0a9b1b..c1347d3 100644
--- a/Tests/RunCMake/get_property/directory_properties.cmake
+++ b/Tests/RunCMake/get_property/directory_properties.cmake
@@ -13,3 +13,7 @@ set_directory_properties(PROPERTIES empty "" custom value)
 check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}" empty)
 check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}" custom)
 check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}" noexist)
+
+add_subdirectory(directory_properties)
+check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}" SUBDIRECTORIES)
+check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}/directory_properties" SUBDIRECTORIES)
diff --git a/Tests/RunCMake/get_property/directory_properties/CMakeLists.txt b/Tests/RunCMake/get_property/directory_properties/CMakeLists.txt
new file mode 100644
index 0000000..f9ebf78
--- /dev/null
+++ b/Tests/RunCMake/get_property/directory_properties/CMakeLists.txt
@@ -0,0 +1,2 @@
+add_subdirectory(sub1)
+subdirs(sub2)
diff --git a/Tests/RunCMake/get_property/directory_properties/sub1/CMakeLists.txt b/Tests/RunCMake/get_property/directory_properties/sub1/CMakeLists.txt
new file mode 100644
index 0000000..e69de29
diff --git a/Tests/RunCMake/get_property/directory_properties/sub2/CMakeLists.txt b/Tests/RunCMake/get_property/directory_properties/sub2/CMakeLists.txt
new file mode 100644
index 0000000..e69de29

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=089868a244e623f75c1ffbe9297d3228bef9a8f1
commit 089868a244e623f75c1ffbe9297d3228bef9a8f1
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Sep 16 16:23:40 2016 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Mon Sep 19 10:55:18 2016 -0400

    cmState: Record buildsystem target names in each directory
    
    Maintain in the directory state the list of target names added to be
    built.  These are normal, non-imported targets (but do include INTERFACE
    libraries).

diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 508c670..50e7b33 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -1930,6 +1930,7 @@ cmTarget* cmMakefile::AddNewTarget(cmState::TargetType type,
         name, cmTarget(name, type, cmTarget::VisibilityNormal, this)))
       .first;
   this->GetGlobalGenerator()->IndexTarget(&it->second);
+  this->GetStateSnapshot().GetDirectory().AddNormalTargetName(name);
   return &it->second;
 }
 
diff --git a/Source/cmState.cxx b/Source/cmState.cxx
index ffb104b..2ff4516 100644
--- a/Source/cmState.cxx
+++ b/Source/cmState.cxx
@@ -94,6 +94,8 @@ struct cmState::BuildsystemDirectoryStateType
   std::vector<std::string> CompileOptions;
   std::vector<cmListFileBacktrace> CompileOptionsBacktraces;
 
+  std::vector<std::string> NormalTargetNames;
+
   std::string ProjectName;
 
   cmPropertyMap Properties;
@@ -324,6 +326,7 @@ cmState::Snapshot cmState::Reset()
     it->CompileOptions.clear();
     it->CompileOptionsBacktraces.clear();
     it->DirectoryEnd = pos;
+    it->NormalTargetNames.clear();
     it->Properties.clear();
     it->Children.clear();
   }
@@ -1733,6 +1736,11 @@ std::vector<std::string> cmState::Directory::GetPropertyKeys() const
   return keys;
 }
 
+void cmState::Directory::AddNormalTargetName(std::string const& name)
+{
+  this->DirectoryState->NormalTargetNames.push_back(name);
+}
+
 bool operator==(const cmState::Snapshot& lhs, const cmState::Snapshot& rhs)
 {
   return lhs.Position == rhs.Position;
diff --git a/Source/cmState.h b/Source/cmState.h
index 0fac42c..1324f5f 100644
--- a/Source/cmState.h
+++ b/Source/cmState.h
@@ -175,6 +175,8 @@ public:
     bool GetPropertyAsBool(const std::string& prop) const;
     std::vector<std::string> GetPropertyKeys() const;
 
+    void AddNormalTargetName(std::string const& name);
+
   private:
     void ComputeRelativePathTopSource();
     void ComputeRelativePathTopBinary();

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

Summary of changes:
 Help/manual/cmake-properties.7.rst                 |    4 +++
 Help/prop_dir/BINARY_DIR.rst                       |    5 +++
 Help/prop_dir/BUILDSYSTEM_TARGETS.rst              |   11 ++++++
 Help/prop_dir/SOURCE_DIR.rst                       |    5 +++
 Help/prop_dir/SUBDIRECTORIES.rst                   |   15 ++++++++
 .../dev/directory-list-targets-and-subdirs.rst     |   16 +++++++++
 Source/cmMakefile.cxx                              |    1 +
 Source/cmState.cxx                                 |   37 ++++++++++++++++++++
 Source/cmState.h                                   |    2 ++
 .../get_property/directory_properties-stderr.txt   |   18 +++++++++-
 .../get_property/directory_properties.cmake        |   15 ++++++++
 .../directory_properties/CMakeLists.txt            |    6 ++++
 .../directory_properties/sub1/CMakeLists.txt       |    0
 .../directory_properties/sub2/CMakeLists.txt       |    0
 14 files changed, 134 insertions(+), 1 deletion(-)
 create mode 100644 Help/prop_dir/BINARY_DIR.rst
 create mode 100644 Help/prop_dir/BUILDSYSTEM_TARGETS.rst
 create mode 100644 Help/prop_dir/SOURCE_DIR.rst
 create mode 100644 Help/prop_dir/SUBDIRECTORIES.rst
 create mode 100644 Help/release/dev/directory-list-targets-and-subdirs.rst
 create mode 100644 Tests/RunCMake/get_property/directory_properties/CMakeLists.txt
 copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/get_property/directory_properties/sub1/CMakeLists.txt (100%)
 copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/get_property/directory_properties/sub2/CMakeLists.txt (100%)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list