summaryrefslogtreecommitdiff
path: root/Source/cmTargetPropertyComputer.cxx
diff options
context:
space:
mode:
authorBen Boeckel <ben.boeckel@kitware.com>2017-11-21 11:35:41 -0500
committerBen Boeckel <ben.boeckel@kitware.com>2017-11-21 11:35:41 -0500
commitfb3c5bfdbe87786169dfe6d3ddaa86f4f6a5676f (patch)
treece6bddd731e8c0bd4b2e3d750807481d525bc41e /Source/cmTargetPropertyComputer.cxx
parentdaeadde88871f4e2473ce429f459ae8d6ed0ffb8 (diff)
downloadcmake-fb3c5bfdbe87786169dfe6d3ddaa86f4f6a5676f.tar.gz
cmTargetPropertyComputer: whitelist custom properties
CMake's properties will never begin with an underscore or a lowercase letter, so allow them to be set by projects.
Diffstat (limited to 'Source/cmTargetPropertyComputer.cxx')
-rw-r--r--Source/cmTargetPropertyComputer.cxx7
1 files changed, 7 insertions, 0 deletions
diff --git a/Source/cmTargetPropertyComputer.cxx b/Source/cmTargetPropertyComputer.cxx
index ed9026e0c4..06ce0b1e67 100644
--- a/Source/cmTargetPropertyComputer.cxx
+++ b/Source/cmTargetPropertyComputer.cxx
@@ -3,6 +3,7 @@
#include "cmTargetPropertyComputer.h"
+#include <cctype>
#include <sstream>
#include <unordered_set>
@@ -49,6 +50,12 @@ bool cmTargetPropertyComputer::WhiteListedInterfaceProperty(
if (cmHasLiteralPrefix(prop, "INTERFACE_")) {
return true;
}
+ if (cmHasLiteralPrefix(prop, "_")) {
+ return true;
+ }
+ if (std::islower(prop[0])) {
+ return true;
+ }
static std::unordered_set<std::string> builtIns;
if (builtIns.empty()) {
builtIns.insert("COMPATIBLE_INTERFACE_BOOL");