summaryrefslogtreecommitdiffstats
path: root/Source/cmGeneratorTarget.h
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2014-02-13 20:07:31 (GMT)
committerStephen Kelly <steveire@gmail.com>2014-02-24 15:44:51 (GMT)
commit64d398416ad678c1c57fbd3a7981623e28d69bca (patch)
tree946a012e2e5321e236210bdc4d8835588b777d4a /Source/cmGeneratorTarget.h
parentd3682d8647789db759270a2f9c96493167468e61 (diff)
downloadCMake-64d398416ad678c1c57fbd3a7981623e28d69bca.zip
CMake-64d398416ad678c1c57fbd3a7981623e28d69bca.tar.gz
CMake-64d398416ad678c1c57fbd3a7981623e28d69bca.tar.bz2
cmGeneratorTarget: Classify sources on demand, not up front.
Implement a Visitor to hold the sequence of source file tests for populating outputs. Use VS 6 and 7 workaround from Brad King for lack of partial template specialization and function template specialization capabilities. This will make it possible to use context dependent generator expressions to determine the sources of a target.
Diffstat (limited to 'Source/cmGeneratorTarget.h')
-rw-r--r--Source/cmGeneratorTarget.h17
1 files changed, 6 insertions, 11 deletions
diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h
index 51d51f3..1e6ce64 100644
--- a/Source/cmGeneratorTarget.h
+++ b/Source/cmGeneratorTarget.h
@@ -82,7 +82,6 @@ public:
*/
void TraceDependencies();
- void ClassifySources();
void LookupObjectLibraries();
/** Get sources that must be built before the given source. */
@@ -113,23 +112,19 @@ public:
struct SourceFileFlags
GetTargetSourceFileFlags(const cmSourceFile* sf) const;
+ struct ResxData {
+ mutable std::set<std::string> ExpectedResxHeaders;
+ mutable std::vector<cmSourceFile*> ResxSources;
+ };
private:
friend class cmTargetTraceDependencies;
struct SourceEntry { std::vector<cmSourceFile*> Depends; };
typedef std::map<cmSourceFile*, SourceEntry> SourceEntriesType;
SourceEntriesType SourceEntries;
- std::string ModuleDefinitionFile;
-
- 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;
+ mutable std::vector<cmSourceFile*> ObjectSources;
std::vector<cmTarget*> ObjectLibraries;
mutable std::map<std::string, std::vector<std::string> > SystemIncludesCache;