summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2016-10-12 22:18:24 (GMT)
committerStephen Kelly <steveire@gmail.com>2016-10-15 09:14:21 (GMT)
commit05251e6d80b03ae14d6a89765f14c2eb10979bd4 (patch)
tree02813e4d853ef97582de7d4c6c0dd6f97e61cbb1
parentfbf1721c94b40ea86eeb183a1916f2066eb64bdc (diff)
downloadCMake-05251e6d80b03ae14d6a89765f14c2eb10979bd4.zip
CMake-05251e6d80b03ae14d6a89765f14c2eb10979bd4.tar.gz
CMake-05251e6d80b03ae14d6a89765f14c2eb10979bd4.tar.bz2
cmTargetPropertyComputer: Move whitelist check from cmTarget
-rw-r--r--Source/cmTarget.cxx34
-rw-r--r--Source/cmTargetPropertyComputer.cxx31
-rw-r--r--Source/cmTargetPropertyComputer.h7
3 files changed, 37 insertions, 35 deletions
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 63a6fe9..3d16c50 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -707,38 +707,10 @@ cmBacktraceRange cmTarget::GetLinkImplementationBacktraces() const
return cmMakeRange(this->Internal->LinkImplementationPropertyBacktraces);
}
-static bool whiteListedInterfaceProperty(const std::string& prop)
-{
- if (cmHasLiteralPrefix(prop, "INTERFACE_")) {
- return true;
- }
- static UNORDERED_SET<std::string> builtIns;
- if (builtIns.empty()) {
- builtIns.insert("COMPATIBLE_INTERFACE_BOOL");
- builtIns.insert("COMPATIBLE_INTERFACE_NUMBER_MAX");
- builtIns.insert("COMPATIBLE_INTERFACE_NUMBER_MIN");
- builtIns.insert("COMPATIBLE_INTERFACE_STRING");
- builtIns.insert("EXPORT_NAME");
- builtIns.insert("IMPORTED");
- builtIns.insert("NAME");
- builtIns.insert("TYPE");
- }
-
- if (builtIns.count(prop)) {
- return true;
- }
-
- if (cmHasLiteralPrefix(prop, "MAP_IMPORTED_CONFIG_")) {
- return true;
- }
-
- return false;
-}
-
void cmTarget::SetProperty(const std::string& prop, const char* value)
{
if (this->GetType() == cmState::INTERFACE_LIBRARY &&
- !whiteListedInterfaceProperty(prop)) {
+ !cmTargetPropertyComputer::WhiteListedInterfaceProperty(prop)) {
std::ostringstream e;
e << "INTERFACE_LIBRARY targets may only have whitelisted properties. "
"The property \""
@@ -822,7 +794,7 @@ void cmTarget::AppendProperty(const std::string& prop, const char* value,
bool asString)
{
if (this->GetType() == cmState::INTERFACE_LIBRARY &&
- !whiteListedInterfaceProperty(prop)) {
+ !cmTargetPropertyComputer::WhiteListedInterfaceProperty(prop)) {
std::ostringstream e;
e << "INTERFACE_LIBRARY targets may only have whitelisted properties. "
"The property \""
@@ -1041,7 +1013,7 @@ const char* cmTarget::GetProperty(const std::string& prop,
cmMakefile* context) const
{
if (this->GetType() == cmState::INTERFACE_LIBRARY &&
- !whiteListedInterfaceProperty(prop)) {
+ !cmTargetPropertyComputer::WhiteListedInterfaceProperty(prop)) {
std::ostringstream e;
e << "INTERFACE_LIBRARY targets may only have whitelisted properties. "
"The property \""
diff --git a/Source/cmTargetPropertyComputer.cxx b/Source/cmTargetPropertyComputer.cxx
index f15cb43..18135fa 100644
--- a/Source/cmTargetPropertyComputer.cxx
+++ b/Source/cmTargetPropertyComputer.cxx
@@ -154,7 +154,7 @@ const char* cmTargetPropertyComputer::GetLocation(
}
const char* cmTargetPropertyComputer::GetSources(
- cmTarget const* tgt,cmMessenger* messenger,
+ cmTarget const* tgt, cmMessenger* messenger,
cmListFileBacktrace const& context)
{
cmStringRange entries = tgt->GetSourceEntries();
@@ -241,3 +241,32 @@ const char* cmTargetPropertyComputer::GetSources(
srcs = ss.str();
return srcs.c_str();
}
+
+bool cmTargetPropertyComputer::WhiteListedInterfaceProperty(
+ const std::string& prop)
+{
+ if (cmHasLiteralPrefix(prop, "INTERFACE_")) {
+ return true;
+ }
+ static UNORDERED_SET<std::string> builtIns;
+ if (builtIns.empty()) {
+ builtIns.insert("COMPATIBLE_INTERFACE_BOOL");
+ builtIns.insert("COMPATIBLE_INTERFACE_NUMBER_MAX");
+ builtIns.insert("COMPATIBLE_INTERFACE_NUMBER_MIN");
+ builtIns.insert("COMPATIBLE_INTERFACE_STRING");
+ builtIns.insert("EXPORT_NAME");
+ builtIns.insert("IMPORTED");
+ builtIns.insert("NAME");
+ builtIns.insert("TYPE");
+ }
+
+ if (builtIns.count(prop)) {
+ return true;
+ }
+
+ if (cmHasLiteralPrefix(prop, "MAP_IMPORTED_CONFIG_")) {
+ return true;
+ }
+
+ return false;
+}
diff --git a/Source/cmTargetPropertyComputer.h b/Source/cmTargetPropertyComputer.h
index b7c1df4..1d2e4ed 100644
--- a/Source/cmTargetPropertyComputer.h
+++ b/Source/cmTargetPropertyComputer.h
@@ -23,6 +23,8 @@ public:
static std::map<std::string, std::string> ComputeFileLocations(
cmTarget const* tgt);
+ static bool WhiteListedInterfaceProperty(const std::string& prop);
+
private:
static bool HandleLocationPropertyPolicy(std::string const& tgtName,
cmMessenger* messenger,
@@ -35,9 +37,8 @@ private:
cmMessenger* messenger,
cmListFileBacktrace const& context);
- static const char* GetSources(cmTarget const* tgt,
- cmMessenger* messenger,
- cmListFileBacktrace const& context);
+ static const char* GetSources(cmTarget const* tgt, cmMessenger* messenger,
+ cmListFileBacktrace const& context);
};
#endif