summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefile.h
diff options
context:
space:
mode:
authorKen Martin <ken.martin@kitware.com>2005-03-18 15:41:41 (GMT)
committerKen Martin <ken.martin@kitware.com>2005-03-18 15:41:41 (GMT)
commit345cf0401235a1fd64bb9b1c353e0e3fc848d666 (patch)
tree6c1862e3516cd436f3068221ae9fcc11144724b8 /Source/cmMakefile.h
parent1f9df24ba7e76cbd7ecc1816a9f8d46b61816e95 (diff)
downloadCMake-345cf0401235a1fd64bb9b1c353e0e3fc848d666.zip
CMake-345cf0401235a1fd64bb9b1c353e0e3fc848d666.tar.gz
CMake-345cf0401235a1fd64bb9b1c353e0e3fc848d666.tar.bz2
ENH: big change that includes immediate subdir support, removing the notion of inherited commands, makefiles no longer read in the parent makefiles but instead inherit thier parent makefiles current settings
Diffstat (limited to 'Source/cmMakefile.h')
-rw-r--r--Source/cmMakefile.h40
1 files changed, 18 insertions, 22 deletions
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 2fed10d..3bb7a29 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -24,8 +24,6 @@
#include "cmListFileCache.h"
#include "cmCacheManager.h"
-#include "cmSubDirectory.h"
-
#include <cmsys/RegularExpression.hxx>
class cmFunctionBlocker;
@@ -215,9 +213,15 @@ public:
*/
void AddSubDirectory(const char*, bool includeTopLevel=true, bool preorder = false);
void AddSubDirectory(const char* fullSrcDir,const char *fullBinDir,
- bool includeTopLevel=true, bool preorder = false);
+ bool includeTopLevel, bool preorder,
+ bool immediate);
/**
+ * Configure a subdirectory
+ */
+ void ConfigureSubDirectory(cmLocalGenerator *);
+
+ /**
* Add an include directory to the build.
*/
void AddIncludeDirectory(const char*, bool before = false);
@@ -417,13 +421,6 @@ public:
const cmTargets &GetTargets() const { return m_Targets; }
cmTarget* FindTarget(const char* name);
- /**
- * Get a list of the build subdirectories.
- */
- const std::vector<cmSubDirectory>& GetSubDirectories()
- {
- return m_SubDirectories;
- }
/**
* Get a list of include directories in the build.
@@ -662,6 +659,14 @@ public:
const char *GetProperty(const char *prop) const;
bool GetPropertyAsBool(const char *prop) const;
+ typedef std::map<cmStdString, cmStdString> DefinitionMap;
+ ///! Initialize a makefile from its parent
+ void InitializeFromParent();
+
+ ///! Set/Get the preorder flag
+ void SetPreOrder(bool p) { this->PreOrder = p; }
+ bool GetPreOrder() { return this->PreOrder; }
+
protected:
// add link libraries and directories to the target
void AddGlobalLinkInformation(const char* name, cmTarget& target);
@@ -684,12 +689,6 @@ protected:
cmTargets m_Targets;
std::vector<cmSourceFile*> m_SourceFiles;
- // list of sub directories
- std::vector<cmSubDirectory> m_SubDirectories;
- struct StringSet : public std::set<cmStdString>
- {
- };
-
// The include and link-library paths. These may have order
// dependency, so they must be vectors (not set).
std::vector<std::string> m_IncludeDirectories;
@@ -706,17 +705,12 @@ protected:
std::vector<std::string> m_HeaderFileExtensions;
std::string m_DefineFlags;
std::vector<cmSourceGroup> m_SourceGroups;
- typedef std::map<cmStdString, cmStdString> DefinitionMap;
DefinitionMap m_Definitions;
std::vector<cmCommand*> m_UsedCommands;
cmLocalGenerator* m_LocalGenerator;
bool IsFunctionBlocked(const cmListFileFunction& lff);
private:
- /**
- * Get the name of the parent generator's CMakeLists file
- */
- std::string GetParentListFileName();
void ReadSources(std::ifstream& fin, bool t);
friend class cmMakeDepend; // make depend needs direct access
@@ -728,7 +722,6 @@ private:
typedef std::map<cmStdString, cmData*> DataMap;
DataMap m_DataMap;
- bool m_Inheriting;
typedef std::map<cmStdString, cmStdString> StringStringMap;
StringStringMap m_MacrosMap;
@@ -740,6 +733,9 @@ private:
cmsys::RegularExpression m_cmDefineRegex;
std::map<cmStdString,cmStdString> m_Properties;
+
+ // should this makefile be processed before or after processing the parent
+ bool PreOrder;
};