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:
Stephen Kelly 2013-05-02 09:02:01 +02:00
parent 272431a84f
commit 05bf9721e4
3 changed files with 24 additions and 5 deletions

View File

@ -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())
{ {

View File

@ -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

View File

@ -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,,")