Fix handling of commas in arbitrary content in genexes.
As the comma is the parameter separator, it needs to be re-added when evaluating to reconstruct arbitrary content.
This commit is contained in:
parent
272431a84f
commit
05bf9721e4
|
@ -1051,11 +1051,6 @@ std::string GeneratorExpressionContent::Evaluate(
|
||||||
pend = this->ParamChildren.end();
|
pend = this->ParamChildren.end();
|
||||||
for ( ; pit != pend; ++pit)
|
for ( ; pit != pend; ++pit)
|
||||||
{
|
{
|
||||||
if (!result.empty())
|
|
||||||
{
|
|
||||||
result += ",";
|
|
||||||
}
|
|
||||||
|
|
||||||
std::vector<cmGeneratorExpressionEvaluator*>::const_iterator it
|
std::vector<cmGeneratorExpressionEvaluator*>::const_iterator it
|
||||||
= pit->begin();
|
= pit->begin();
|
||||||
const std::vector<cmGeneratorExpressionEvaluator*>::const_iterator end
|
const std::vector<cmGeneratorExpressionEvaluator*>::const_iterator end
|
||||||
|
@ -1077,6 +1072,10 @@ std::string GeneratorExpressionContent::Evaluate(
|
||||||
return std::string();
|
return std::string();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ((pit + 1) != pend)
|
||||||
|
{
|
||||||
|
result += ",";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (node->RequiresLiteralInput())
|
if (node->RequiresLiteralInput())
|
||||||
{
|
{
|
||||||
|
|
|
@ -120,6 +120,16 @@ add_custom_target(check-part2 ALL
|
||||||
-Dtest_target_includes6=$<TARGET_PROPERTY:empty3,INCLUDE_DIRECTORIES>
|
-Dtest_target_includes6=$<TARGET_PROPERTY:empty3,INCLUDE_DIRECTORIES>
|
||||||
-Dtest_target_includes7=$<TARGET_PROPERTY:empty1,INTERFACE_INCLUDE_DIRECTORIES>
|
-Dtest_target_includes7=$<TARGET_PROPERTY:empty1,INTERFACE_INCLUDE_DIRECTORIES>
|
||||||
-Dtest_target_includes8=$<TARGET_PROPERTY:empty5,INCLUDE_DIRECTORIES>
|
-Dtest_target_includes8=$<TARGET_PROPERTY:empty5,INCLUDE_DIRECTORIES>
|
||||||
|
-Dtest_arbitrary_content_comma_1=$<1:a,>
|
||||||
|
-Dtest_arbitrary_content_comma_2=$<1:,a>
|
||||||
|
-Dtest_arbitrary_content_comma_3=$<1:a,,>
|
||||||
|
-Dtest_arbitrary_content_comma_4=$<1:,>
|
||||||
|
-Dtest_arbitrary_content_comma_5=$<1:,,>
|
||||||
|
-Dtest_arbitrary_content_comma_6=$<1:,,,>
|
||||||
|
-Dtest_arbitrary_content_comma_7=$<1:,,a>
|
||||||
|
-Dtest_arbitrary_content_comma_8=$<1:a,,b>
|
||||||
|
-Dtest_arbitrary_content_comma_9=$<1:a,,b,,>
|
||||||
|
-Dtest_arbitrary_content_comma_10=$<1:,,a,,b,,>
|
||||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/check-part2.cmake
|
-P ${CMAKE_CURRENT_SOURCE_DIR}/check-part2.cmake
|
||||||
COMMAND ${CMAKE_COMMAND} -E echo "check done (part 2 of 2)"
|
COMMAND ${CMAKE_COMMAND} -E echo "check done (part 2 of 2)"
|
||||||
VERBATIM
|
VERBATIM
|
||||||
|
|
|
@ -34,3 +34,13 @@ check(test_target_includes5 "/empty2/public;/empty3/public;/empty2/public;/empty
|
||||||
check(test_target_includes6 "/empty3/public;/empty3/private;/empty2/public;/empty3/public;/empty4/public")
|
check(test_target_includes6 "/empty3/public;/empty3/private;/empty2/public;/empty3/public;/empty4/public")
|
||||||
check(test_target_includes7 "/empty1/public;/empty2/public;/empty3/public;/empty4/public")
|
check(test_target_includes7 "/empty1/public;/empty2/public;/empty3/public;/empty4/public")
|
||||||
check(test_target_includes8 "/empty5/private1;/empty5/private2")
|
check(test_target_includes8 "/empty5/private1;/empty5/private2")
|
||||||
|
check(test_arbitrary_content_comma_1 "a,")
|
||||||
|
check(test_arbitrary_content_comma_2 ",a")
|
||||||
|
check(test_arbitrary_content_comma_3 "a,,")
|
||||||
|
check(test_arbitrary_content_comma_4 ",")
|
||||||
|
check(test_arbitrary_content_comma_5 ",,")
|
||||||
|
check(test_arbitrary_content_comma_6 ",,,")
|
||||||
|
check(test_arbitrary_content_comma_7 ",,a")
|
||||||
|
check(test_arbitrary_content_comma_8 "a,,b")
|
||||||
|
check(test_arbitrary_content_comma_9 "a,,b,,")
|
||||||
|
check(test_arbitrary_content_comma_10 ",,a,,b,,")
|
||||||
|
|
Loading…
Reference in New Issue