Move global properties to cmState.
This commit is contained in:
parent
0076b5d834
commit
9b5f80a83c
|
@ -191,6 +191,8 @@ void cmState::RemoveCacheEntryProperty(std::string const& key,
|
||||||
|
|
||||||
void cmState::Initialize()
|
void cmState::Initialize()
|
||||||
{
|
{
|
||||||
|
this->GlobalProperties.clear();
|
||||||
|
|
||||||
this->PropertyDefinitions.clear();
|
this->PropertyDefinitions.clear();
|
||||||
this->DefineProperty
|
this->DefineProperty
|
||||||
("RULE_LAUNCH_COMPILE", cmProperty::DIRECTORY,
|
("RULE_LAUNCH_COMPILE", cmProperty::DIRECTORY,
|
||||||
|
@ -384,3 +386,60 @@ void cmState::RemoveUserDefinedCommands()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cmState::SetGlobalProperty(const std::string& prop, const char* value)
|
||||||
|
{
|
||||||
|
this->GlobalProperties.SetProperty(prop, value, cmProperty::GLOBAL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cmState::AppendGlobalProperty(const std::string& prop,
|
||||||
|
const char* value, bool asString)
|
||||||
|
{
|
||||||
|
this->GlobalProperties.AppendProperty(prop, value,
|
||||||
|
cmProperty::GLOBAL, asString);
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *cmState::GetGlobalProperty(const std::string& prop)
|
||||||
|
{
|
||||||
|
// watch for special properties
|
||||||
|
std::string output = "";
|
||||||
|
if ( prop == "CACHE_VARIABLES" )
|
||||||
|
{
|
||||||
|
std::vector<std::string> cacheKeys = this->GetCacheEntryKeys();
|
||||||
|
this->SetGlobalProperty("CACHE_VARIABLES", cmJoin(cacheKeys, ";").c_str());
|
||||||
|
}
|
||||||
|
else if ( prop == "COMMANDS" )
|
||||||
|
{
|
||||||
|
std::vector<std::string> commands = this->GetCommandNames();
|
||||||
|
this->SetGlobalProperty("COMMANDS", cmJoin(commands, ";").c_str());
|
||||||
|
}
|
||||||
|
else if ( prop == "IN_TRY_COMPILE" )
|
||||||
|
{
|
||||||
|
this->SetGlobalProperty("IN_TRY_COMPILE",
|
||||||
|
this->IsInTryCompile ? "1" : "0");
|
||||||
|
}
|
||||||
|
else if ( prop == "ENABLED_LANGUAGES" )
|
||||||
|
{
|
||||||
|
std::string langs;
|
||||||
|
langs = cmJoin(this->EnabledLanguages, ";");
|
||||||
|
this->SetGlobalProperty("ENABLED_LANGUAGES", langs.c_str());
|
||||||
|
}
|
||||||
|
#define STRING_LIST_ELEMENT(F) ";" #F
|
||||||
|
if (prop == "CMAKE_C_KNOWN_FEATURES")
|
||||||
|
{
|
||||||
|
return FOR_EACH_C_FEATURE(STRING_LIST_ELEMENT) + 1;
|
||||||
|
}
|
||||||
|
if (prop == "CMAKE_CXX_KNOWN_FEATURES")
|
||||||
|
{
|
||||||
|
return FOR_EACH_CXX_FEATURE(STRING_LIST_ELEMENT) + 1;
|
||||||
|
}
|
||||||
|
#undef STRING_LIST_ELEMENT
|
||||||
|
bool dummy = false;
|
||||||
|
return this->GlobalProperties.GetPropertyValue(prop, cmProperty::GLOBAL,
|
||||||
|
dummy);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool cmState::GetGlobalPropertyAsBool(const std::string& prop)
|
||||||
|
{
|
||||||
|
return cmSystemTools::IsOn(this->GetGlobalProperty(prop));
|
||||||
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
|
|
||||||
#include "cmStandardIncludes.h"
|
#include "cmStandardIncludes.h"
|
||||||
#include "cmPropertyDefinitionMap.h"
|
#include "cmPropertyDefinitionMap.h"
|
||||||
|
#include "cmPropertyMap.h"
|
||||||
|
|
||||||
class cmake;
|
class cmake;
|
||||||
class cmCommand;
|
class cmCommand;
|
||||||
|
@ -88,10 +89,17 @@ public:
|
||||||
void RemoveUserDefinedCommands();
|
void RemoveUserDefinedCommands();
|
||||||
std::vector<std::string> GetCommandNames() const;
|
std::vector<std::string> GetCommandNames() const;
|
||||||
|
|
||||||
|
void SetGlobalProperty(const std::string& prop, const char *value);
|
||||||
|
void AppendGlobalProperty(const std::string& prop,
|
||||||
|
const char *value,bool asString=false);
|
||||||
|
const char *GetGlobalProperty(const std::string& prop);
|
||||||
|
bool GetGlobalPropertyAsBool(const std::string& prop);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::map<cmProperty::ScopeType, cmPropertyDefinitionMap> PropertyDefinitions;
|
std::map<cmProperty::ScopeType, cmPropertyDefinitionMap> PropertyDefinitions;
|
||||||
std::vector<std::string> EnabledLanguages;
|
std::vector<std::string> EnabledLanguages;
|
||||||
std::map<std::string, cmCommand*> Commands;
|
std::map<std::string, cmCommand*> Commands;
|
||||||
|
cmPropertyMap GlobalProperties;
|
||||||
cmake* CMakeInstance;
|
cmake* CMakeInstance;
|
||||||
bool IsInTryCompile;
|
bool IsInTryCompile;
|
||||||
};
|
};
|
||||||
|
|
|
@ -188,8 +188,6 @@ cmake::~cmake()
|
||||||
|
|
||||||
void cmake::InitializeProperties()
|
void cmake::InitializeProperties()
|
||||||
{
|
{
|
||||||
this->Properties.clear();
|
|
||||||
|
|
||||||
this->State->Initialize();
|
this->State->Initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2187,52 +2185,18 @@ void cmake::GenerateGraphViz(const char* fileName) const
|
||||||
|
|
||||||
void cmake::SetProperty(const std::string& prop, const char* value)
|
void cmake::SetProperty(const std::string& prop, const char* value)
|
||||||
{
|
{
|
||||||
this->Properties.SetProperty(prop, value, cmProperty::GLOBAL);
|
this->State->SetGlobalProperty(prop, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cmake::AppendProperty(const std::string& prop,
|
void cmake::AppendProperty(const std::string& prop,
|
||||||
const char* value, bool asString)
|
const char* value, bool asString)
|
||||||
{
|
{
|
||||||
this->Properties.AppendProperty(prop, value, cmProperty::GLOBAL, asString);
|
this->State->AppendGlobalProperty(prop, value, asString);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *cmake::GetProperty(const std::string& prop)
|
const char *cmake::GetProperty(const std::string& prop)
|
||||||
{
|
{
|
||||||
// watch for special properties
|
return this->State->GetGlobalProperty(prop);
|
||||||
std::string output = "";
|
|
||||||
if ( prop == "CACHE_VARIABLES" )
|
|
||||||
{
|
|
||||||
std::vector<std::string> cacheKeys = this->State->GetCacheEntryKeys();
|
|
||||||
this->SetProperty("CACHE_VARIABLES", cmJoin(cacheKeys, ";").c_str());
|
|
||||||
}
|
|
||||||
else if ( prop == "COMMANDS" )
|
|
||||||
{
|
|
||||||
std::vector<std::string> commands = this->State->GetCommandNames();
|
|
||||||
this->SetProperty("COMMANDS", cmJoin(commands, ";").c_str());
|
|
||||||
}
|
|
||||||
else if ( prop == "IN_TRY_COMPILE" )
|
|
||||||
{
|
|
||||||
this->SetProperty("IN_TRY_COMPILE",
|
|
||||||
this->State->GetIsInTryCompile() ? "1" : "0");
|
|
||||||
}
|
|
||||||
else if ( prop == "ENABLED_LANGUAGES" )
|
|
||||||
{
|
|
||||||
std::string langs;
|
|
||||||
langs = cmJoin(this->State->GetEnabledLanguages(), ";");
|
|
||||||
this->SetProperty("ENABLED_LANGUAGES", langs.c_str());
|
|
||||||
}
|
|
||||||
#define STRING_LIST_ELEMENT(F) ";" #F
|
|
||||||
if (prop == "CMAKE_C_KNOWN_FEATURES")
|
|
||||||
{
|
|
||||||
return FOR_EACH_C_FEATURE(STRING_LIST_ELEMENT) + 1;
|
|
||||||
}
|
|
||||||
if (prop == "CMAKE_CXX_KNOWN_FEATURES")
|
|
||||||
{
|
|
||||||
return FOR_EACH_CXX_FEATURE(STRING_LIST_ELEMENT) + 1;
|
|
||||||
}
|
|
||||||
#undef STRING_LIST_ELEMENT
|
|
||||||
bool dummy = false;
|
|
||||||
return this->Properties.GetPropertyValue(prop, cmProperty::GLOBAL, dummy);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cmake::GetPropertyAsBool(const std::string& prop)
|
bool cmake::GetPropertyAsBool(const std::string& prop)
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
|
|
||||||
#include "cmListFileCache.h"
|
#include "cmListFileCache.h"
|
||||||
#include "cmSystemTools.h"
|
#include "cmSystemTools.h"
|
||||||
#include "cmPropertyMap.h"
|
|
||||||
#include "cmInstalledFile.h"
|
#include "cmInstalledFile.h"
|
||||||
#include "cmCacheManager.h"
|
#include "cmCacheManager.h"
|
||||||
#include "cmState.h"
|
#include "cmState.h"
|
||||||
|
@ -336,7 +335,6 @@ protected:
|
||||||
void RunCheckForUnusedVariables();
|
void RunCheckForUnusedVariables();
|
||||||
void InitializeProperties();
|
void InitializeProperties();
|
||||||
int HandleDeleteCacheVariables(const std::string& var);
|
int HandleDeleteCacheVariables(const std::string& var);
|
||||||
cmPropertyMap Properties;
|
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
cmExternalMakefileProjectGenerator* (*CreateExtraGeneratorFunctionType)();
|
cmExternalMakefileProjectGenerator* (*CreateExtraGeneratorFunctionType)();
|
||||||
|
|
Loading…
Reference in New Issue