summaryrefslogtreecommitdiffstats
path: root/Source/cmTarget.h
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2014-02-13 16:25:00 (GMT)
committerStephen Kelly <steveire@gmail.com>2014-04-02 21:14:02 (GMT)
commite6971df6ab647031ba9689c9afbbde78cc62e35f (patch)
treec9c67c6e3a1627d65cda8ee93373b97403c92106 /Source/cmTarget.h
parentdf753df94bb1e995372baabb0240585560c72ded (diff)
downloadCMake-e6971df6ab647031ba9689c9afbbde78cc62e35f.zip
CMake-e6971df6ab647031ba9689c9afbbde78cc62e35f.tar.gz
CMake-e6971df6ab647031ba9689c9afbbde78cc62e35f.tar.bz2
cmTarget: Make the source files depend on the config.
Disallow the use of config-specific source files with the Visual Studio and Xcode generators. They don't have any way to represent the condition currently. Use the same common-config API in cmQtAutoGenerators. While it accepts config-specific files, it doesn't have to support multiple configurations yet. Loop over the configs in cmTargetTraceDependencies and cmGlobalGenerator::WriteSummary and consume all source files. Loop over the configs in cmComputeTargetDepends and compute the object library dependencies for each config.
Diffstat (limited to 'Source/cmTarget.h')
-rw-r--r--Source/cmTarget.h13
1 files changed, 9 insertions, 4 deletions
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index fcbff93..042b441 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -135,8 +135,11 @@ public:
/**
* Get the list of the source files used by this target
*/
- void GetSourceFiles(std::vector<std::string> &files) const;
- void GetSourceFiles(std::vector<cmSourceFile*> &files) const;
+ void GetSourceFiles(std::vector<std::string> &files,
+ const std::string& config) const;
+ void GetSourceFiles(std::vector<cmSourceFile*> &files,
+ const std::string& config) const;
+ bool GetConfigCommonSourceFiles(std::vector<cmSourceFile*>& files) const;
/**
* Add sources to the target.
@@ -465,7 +468,8 @@ public:
// when source file properties are changed and we do not have enough
// information to forward these property changes to the targets
// until we have per-target object file properties.
- void GetLanguages(std::set<std::string>& languages) const;
+ void GetLanguages(std::set<std::string>& languages,
+ const std::string& config) const;
/** Return whether this target is an executable with symbol exports
enabled. */
@@ -738,7 +742,8 @@ private:
void ComputeLinkImplementation(const std::string& config,
LinkImplementation& impl,
cmTarget const* head) const;
- void ComputeLinkImplementationLanguages(LinkImplementation& impl) const;
+ void ComputeLinkImplementationLanguages(const std::string& config,
+ LinkImplementation& impl) const;
void ComputeLinkClosure(const std::string& config, LinkClosure& lc,
cmTarget const* head) const;