summaryrefslogtreecommitdiffstats
path: root/Source/cmGeneratorTarget.h
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2013-11-10 10:22:44 (GMT)
committerStephen Kelly <steveire@gmail.com>2014-01-09 18:38:07 (GMT)
commit38de54cf6f3daae70792fae1bf26b97bccc78de4 (patch)
treeb8499bdf53aef7b2d98a9be50949e79566224b65 /Source/cmGeneratorTarget.h
parentf579fe0d7a102df0c69c957d48e3e728333dffe1 (diff)
downloadCMake-38de54cf6f3daae70792fae1bf26b97bccc78de4.zip
CMake-38de54cf6f3daae70792fae1bf26b97bccc78de4.tar.gz
CMake-38de54cf6f3daae70792fae1bf26b97bccc78de4.tar.bz2
cmGeneratorTarget: Add methods to access source file groups.
These methods and others will be able to get a config parameter later to implement the INTERFACE_SOURCES feature.
Diffstat (limited to 'Source/cmGeneratorTarget.h')
-rw-r--r--Source/cmGeneratorTarget.h45
1 files changed, 28 insertions, 17 deletions
diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h
index 8b760f1..4c023bf 100644
--- a/Source/cmGeneratorTarget.h
+++ b/Source/cmGeneratorTarget.h
@@ -32,34 +32,33 @@ public:
bool GetPropertyAsBool(const char *prop) const;
std::vector<cmSourceFile*> const& GetSourceFiles() const;
+ void GetObjectSources(std::vector<cmSourceFile*> &) const;
+ const std::string& GetObjectName(cmSourceFile const* file);
+
+ void AddObject(cmSourceFile *sf, std::string const&name);
+ bool HasExplicitObjectName(cmSourceFile const* file) const;
+ void AddExplicitObjectName(cmSourceFile* sf);
+
+ void GetResxSources(std::vector<cmSourceFile*>&) const;
+ void GetIDLSources(std::vector<cmSourceFile*>&) const;
+ void GetExternalObjects(std::vector<cmSourceFile*>&) const;
+ void GetHeaderSources(std::vector<cmSourceFile*>&) const;
+ void GetExtraSources(std::vector<cmSourceFile*>&) const;
+ void GetCustomCommands(std::vector<cmSourceFile*>&) const;
+ void GetExpectedResxHeaders(std::set<std::string>&) const;
+
cmTarget* Target;
cmMakefile* Makefile;
cmLocalGenerator* LocalGenerator;
cmGlobalGenerator* GlobalGenerator;
- /** Sources classified by purpose. */
- std::vector<cmSourceFile*> CustomCommands;
- std::vector<cmSourceFile*> ExtraSources;
- std::vector<cmSourceFile*> HeaderSources;
- std::vector<cmSourceFile*> ObjectSources;
- std::vector<cmSourceFile*> ExternalObjects;
- std::vector<cmSourceFile*> IDLSources;
- std::vector<cmSourceFile*> ResxSources;
-
std::string ModuleDefinitionFile;
- std::map<cmSourceFile const*, std::string> Objects;
- std::set<cmSourceFile const*> ExplicitObjectName;
-
- std::set<std::string> ExpectedResxHeaders;
-
/** Full path with trailing slash to the top-level directory
holding object files for this target. Includes the build
time config name placeholder if needed for the generator. */
std::string ObjectDirectory;
- std::vector<cmTarget*> ObjectLibraries;
-
void UseObjectLibraries(std::vector<std::string>& objs) const;
void GetAppleArchs(const char* config,
@@ -89,11 +88,23 @@ public:
/** Get sources that must be built before the given source. */
std::vector<cmSourceFile*> const* GetSourceDepends(cmSourceFile* sf) const;
+private:
+ friend class cmTargetTraceDependencies;
struct SourceEntry { std::vector<cmSourceFile*> Depends; };
typedef std::map<cmSourceFile*, SourceEntry> SourceEntriesType;
SourceEntriesType SourceEntries;
-private:
+ std::vector<cmSourceFile*> CustomCommands;
+ std::vector<cmSourceFile*> ExtraSources;
+ std::vector<cmSourceFile*> HeaderSources;
+ std::vector<cmSourceFile*> ExternalObjects;
+ std::vector<cmSourceFile*> IDLSources;
+ std::vector<cmSourceFile*> ResxSources;
+ std::map<cmSourceFile const*, std::string> Objects;
+ std::set<cmSourceFile const*> ExplicitObjectName;
+ std::set<std::string> ExpectedResxHeaders;
+ std::vector<cmSourceFile*> ObjectSources;
+ std::vector<cmTarget*> ObjectLibraries;
mutable std::map<std::string, std::vector<std::string> > SystemIncludesCache;
cmGeneratorTarget(cmGeneratorTarget const&);