Commit 05bf9721 authored by Stephen Kelly's avatar Stephen Kelly
Browse files

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.
parent 272431a8
......@@ -1051,11 +1051,6 @@ std::string GeneratorExpressionContent::Evaluate(
pend = this->ParamChildren.end();
for ( ; pit != pend; ++pit)
{
if (!result.empty())
{
result += ",";
}
std::vector<cmGeneratorExpressionEvaluator*>::const_iterator it
= pit->begin();
const std::vector<cmGeneratorExpressionEvaluator*>::const_iterator end
......@@ -1077,6 +1072,10 @@ std::string GeneratorExpressionContent::Evaluate(
return std::string();
}
}
if ((pit + 1) != pend)
{
result += ",";
}
}
if (node->RequiresLiteralInput())
{
......
......@@ -120,6 +120,16 @@ add_custom_target(check-part2 ALL
-Dtest_target_includes6=$<TARGET_PROPERTY:empty3,INCLUDE_DIRECTORIES>
-Dtest_target_includes7=$<TARGET_PROPERTY:empty1,INTERFACE_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
COMMAND ${CMAKE_COMMAND} -E echo "check done (part 2 of 2)"
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_includes7 "/empty1/public;/empty2/public;/empty3/public;/empty4/public")
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,,")
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment