diff options
author | Brad King <brad.king@kitware.com> | 2007-12-21 17:22:12 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2007-12-21 17:22:12 (GMT) |
commit | d83b4cd255bcd13b5b7e4279a6e3e959fcb58688 (patch) | |
tree | 1987a83567e98da043994e7fa870fe48c7b08c8a /Source/cmMakefileTargetGenerator.h | |
parent | 6586149d64be27694652b40bfbcc4d19f6c2c5eb (diff) | |
download | CMake-d83b4cd255bcd13b5b7e4279a6e3e959fcb58688.zip CMake-d83b4cd255bcd13b5b7e4279a6e3e959fcb58688.tar.gz CMake-d83b4cd255bcd13b5b7e4279a6e3e959fcb58688.tar.bz2 |
ENH: Add a depends check step to custom targets. Add support for the IMPLICIT_DEPENDS feature of custom commands when building in custom targets. Convert multiple-output pair checks to be per-target instead of global.
Diffstat (limited to 'Source/cmMakefileTargetGenerator.h')
-rw-r--r-- | Source/cmMakefileTargetGenerator.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/Source/cmMakefileTargetGenerator.h b/Source/cmMakefileTargetGenerator.h index 9b46f69..4b8a281 100644 --- a/Source/cmMakefileTargetGenerator.h +++ b/Source/cmMakefileTargetGenerator.h @@ -119,6 +119,15 @@ protected: // append intertarget dependencies void AppendTargetDepends(std::vector<std::string>& depends); + /** In order to support parallel builds for custom commands with + multiple outputs the outputs are given a serial order, and only + the first output actually has the build rule. Other outputs + just depend on the first one. The check-build-system step must + remove a dependee if the depender is missing to make sure both + are regenerated properly. This method is used by the local + makefile generators to register such pairs. */ + void AddMultipleOutputPair(const char* depender, const char* dependee); + virtual void CloseFileStreams(); void RemoveForbiddenFlags(const char* flagVar, const char* linkLang, std::string& linkFlags); @@ -166,6 +175,8 @@ protected: // Set of object file names that will be built in this directory. std::set<cmStdString> ObjectFiles; + typedef std::map<cmStdString, cmStdString> MultipleOutputPairsType; + MultipleOutputPairsType MultipleOutputPairs; //================================================================== // Convenience routines that do nothing more than forward to |