diff options
author | Brad King <brad.king@kitware.com> | 2009-02-27 16:23:14 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2009-02-27 16:23:14 (GMT) |
commit | 1d3308156e1fc1646873b22317265c61288e9e42 (patch) | |
tree | ff65855bca8ae897c19ce112d54d654bab2a049c /Source/cmGlobalGenerator.h | |
parent | 99b37665c91e91d70576298fef7bab71f794c985 (diff) | |
download | CMake-1d3308156e1fc1646873b22317265c61288e9e42.zip CMake-1d3308156e1fc1646873b22317265c61288e9e42.tar.gz CMake-1d3308156e1fc1646873b22317265c61288e9e42.tar.bz2 |
ENH: Enforce unique binary directories
The second argument of add_subdirectory must name a unique binary
directory or the build files will clobber each other. This enforces
uniqueness with an error message.
Diffstat (limited to 'Source/cmGlobalGenerator.h')
-rw-r--r-- | Source/cmGlobalGenerator.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h index 02e2396..2d8ffb6 100644 --- a/Source/cmGlobalGenerator.h +++ b/Source/cmGlobalGenerator.h @@ -253,6 +253,12 @@ public: void AddRuleHash(const std::vector<std::string>& outputs, std::string const& content); + /** Return whether the given binary directory is unused. */ + bool BinaryDirectoryIsNew(const char* dir) + { + return this->BinaryDirectories.insert(dir).second; + } + protected: // for a project collect all its targets by following depend // information, and also collect all the targets @@ -350,6 +356,9 @@ private: derived(dc), LoadedFromDisk(dc.LoadedFromDisk) {} }; std::map<cmStdString, DirectoryContent> DirectoryContentMap; + + // Set of binary directories on disk. + std::set<cmStdString> BinaryDirectories; }; #endif |