diff options
author | Brad King <brad.king@kitware.com> | 2013-05-21 19:19:26 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2013-05-21 19:19:26 (GMT) |
commit | d2cd362c31aafb157970c04bf507bafcf475f89a (patch) | |
tree | 71dfcfda035da5945a68ece548569bb1e9c5d260 | |
parent | e41ef3d3394b942408b5e6203aca1392d7a421a0 (diff) | |
parent | 05bf9721e48f8fbf3b3b5338ec779ee5e344a6d0 (diff) | |
download | CMake-d2cd362c31aafb157970c04bf507bafcf475f89a.zip CMake-d2cd362c31aafb157970c04bf507bafcf475f89a.tar.gz CMake-d2cd362c31aafb157970c04bf507bafcf475f89a.tar.bz2 |
Merge topic 'fix-genex-comma-parse'
05bf972 Fix handling of commas in arbitrary content in genexes.
-rw-r--r-- | Source/cmGeneratorExpressionEvaluator.cxx | 9 | ||||
-rw-r--r-- | Tests/GeneratorExpression/CMakeLists.txt | 10 | ||||
-rw-r--r-- | Tests/GeneratorExpression/check-part2.cmake | 10 |
3 files changed, 24 insertions, 5 deletions
diff --git a/Source/cmGeneratorExpressionEvaluator.cxx b/Source/cmGeneratorExpressionEvaluator.cxx index b969ca4..58fd251 100644 --- a/Source/cmGeneratorExpressionEvaluator.cxx +++ b/Source/cmGeneratorExpressionEvaluator.cxx @@ -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()) { diff --git a/Tests/GeneratorExpression/CMakeLists.txt b/Tests/GeneratorExpression/CMakeLists.txt index 0008c16..9cd8a7f 100644 --- a/Tests/GeneratorExpression/CMakeLists.txt +++ b/Tests/GeneratorExpression/CMakeLists.txt @@ -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 diff --git a/Tests/GeneratorExpression/check-part2.cmake b/Tests/GeneratorExpression/check-part2.cmake index 3f7187c..a1db5f6 100644 --- a/Tests/GeneratorExpression/check-part2.cmake +++ b/Tests/GeneratorExpression/check-part2.cmake @@ -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,,") |