|
|
@@ -277,8 +277,12 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
|
|
|
"$<TARGET_PROPERTY:...> expression requires one or two parameters");
|
|
|
return std::string();
|
|
|
}
|
|
|
- cmsys::RegularExpression nameValidator;
|
|
|
- nameValidator.compile("^[A-Za-z0-9_.-]+$");
|
|
|
+ cmsys::RegularExpression targetNameValidator;
|
|
|
+ // The ':' is supported to allow use with IMPORTED targets. At least
|
|
|
+ // Qt 4 and 5 IMPORTED targets use ':' as the namespace delimiter.
|
|
|
+ targetNameValidator.compile("^[A-Za-z0-9_.:-]+$");
|
|
|
+ cmsys::RegularExpression propertyNameValidator;
|
|
|
+ propertyNameValidator.compile("^[A-Za-z0-9_]+$");
|
|
|
|
|
|
cmGeneratorTarget* target = context->Target;
|
|
|
std::string propertyName = *parameters.begin();
|
|
|
@@ -301,9 +305,9 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
|
|
|
|
|
|
std::string targetName = parameters.front();
|
|
|
propertyName = parameters[1];
|
|
|
- if (!nameValidator.find(targetName.c_str()))
|
|
|
+ if (!targetNameValidator.find(targetName.c_str()))
|
|
|
{
|
|
|
- if (!nameValidator.find(propertyName.c_str()))
|
|
|
+ if (!propertyNameValidator.find(propertyName.c_str()))
|
|
|
{
|
|
|
::reportError(context, content->GetOriginalExpression(),
|
|
|
"Target name and property name not supported.");
|
|
|
@@ -335,7 +339,7 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
|
|
|
return std::string();
|
|
|
}
|
|
|
|
|
|
- if (!nameValidator.find(propertyName.c_str()))
|
|
|
+ if (!propertyNameValidator.find(propertyName.c_str()))
|
|
|
{
|
|
|
::reportError(context, content->GetOriginalExpression(),
|
|
|
"Property name not supported.");
|
|
|
@@ -480,7 +484,8 @@ struct TargetFilesystemArtifact : public cmGeneratorExpressionNode
|
|
|
std::string name = *parameters.begin();
|
|
|
|
|
|
cmsys::RegularExpression targetValidator;
|
|
|
- targetValidator.compile("^[A-Za-z0-9_.-]+$");
|
|
|
+ // The ':' is supported to allow use with IMPORTED targets.
|
|
|
+ targetValidator.compile("^[A-Za-z0-9_.:-]+$");
|
|
|
if (!targetValidator.find(name.c_str()))
|
|
|
{
|
|
|
::reportError(context, content->GetOriginalExpression(),
|