diff options
author | Brad King <brad.king@kitware.com> | 2012-03-07 16:44:48 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2012-03-09 20:16:02 (GMT) |
commit | 11d9b211266865f0ce4a1005bbb18748c0806bce (patch) | |
tree | 601872149fd07d7272cb27e45021349853a1fddf /Source/cmGeneratorTarget.h | |
parent | 51b67366ed9d8e81567cfff1ede2b34d85410933 (diff) | |
download | CMake-11d9b211266865f0ce4a1005bbb18748c0806bce.zip CMake-11d9b211266865f0ce4a1005bbb18748c0806bce.tar.gz CMake-11d9b211266865f0ce4a1005bbb18748c0806bce.tar.bz2 |
Add cmGeneratorTarget to represent a target during generation
Some per-target information and logic is common to all generators.
Some of that information is currently stored in cmTarget but that
should be reserved for the configure step. Create a class to hold
per-target information for generators. On construction classify
sources from the target and store them in separate members. This
classification is already implemented separately in each generator.
Diffstat (limited to 'Source/cmGeneratorTarget.h')
-rw-r--r-- | Source/cmGeneratorTarget.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h new file mode 100644 index 0000000..d93b052 --- /dev/null +++ b/Source/cmGeneratorTarget.h @@ -0,0 +1,50 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2000-2012 Kitware, Inc., Insight Software Consortium + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ +#ifndef cmGeneratorTarget_h +#define cmGeneratorTarget_h + +#include "cmStandardIncludes.h" + +class cmCustomCommand; +class cmGlobalGenerator; +class cmLocalGenerator; +class cmMakefile; +class cmSourceFile; +class cmTarget; + +class cmGeneratorTarget +{ +public: + cmGeneratorTarget(cmTarget*); + + 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*> OSXContent; + std::string ModuleDefinitionFile; + +private: + void ClassifySources(); + + cmGeneratorTarget(cmGeneratorTarget const&); + void operator=(cmGeneratorTarget const&); +}; + +#endif |