This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake".
The branch, master has been updated via 4b68baa776bf8ccc2911057fc79b558515438900 (commit) via d4108f5585ae4e0ab79c9b192f9d6a0614f868cd (commit) via 99b9b01c020a0b20c0eefa73a39138471c01a053 (commit) via e591e22d4c7d2b4d4806cf47923e54269644b2a2 (commit) via 7561fcda0918abf71b7fb0cfe67dd70fafe577ae (commit) via f263650f95bdf87e2c50ada4a28d4fb729ac6f1c (commit) via fada8cbfd6ae13d15b015f667a85096b15dc07b1 (commit) via 162555d7ecd510a84fb26a2ebc90f0a3e9eabc1a (commit) via 808b8180632aef06e7a3644fb4d3957722abc3f3 (commit) via 9fd602bfd33479b1acecd40e5c1b76ce37d59798 (commit) via ec66af2026e085e7b648b222794f0f213183ea1e (commit) via 2d4787fc4ddc077e1d8fcb807768d1ecc7902a73 (commit) via 3475e2728bad16899b50131785a61f43083e8ba9 (commit) via 619416f8a30c99f87869559cf3829ce6d3431dca (commit) from 99496f57769a45fb664f6865bd6935d37fe45467 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4b68baa776bf8ccc2911057fc79b558515438900 commit 4b68baa776bf8ccc2911057fc79b558515438900 Merge: d4108f5 162555d Author: Brad King <brad.k...@kitware.com> AuthorDate: Tue Jun 4 12:32:11 2019 +0000 Commit: Kitware Robot <kwro...@kitware.com> CommitDate: Tue Jun 4 08:32:19 2019 -0400 Merge topic 'compiler_id_gen_exp_supports_multiple_ids' 162555d7ec Help: Add release notes for updated generator expressions 808b818063 Genex: CompileLang and CompileLangAndId now match against a list of ids 9fd602bfd3 Genex: PlatformId now can match against a list of ids. ec66af2026 Genex: CompilerId now can match against a list of ids. 2d4787fc4d Genex: Add more extensive support for an unbounded number of parameters Acked-by: Kitware Robot <kwro...@kitware.com> Merge-request: !3405 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d4108f5585ae4e0ab79c9b192f9d6a0614f868cd commit d4108f5585ae4e0ab79c9b192f9d6a0614f868cd Merge: 99b9b01 fada8cb Author: Brad King <brad.k...@kitware.com> AuthorDate: Tue Jun 4 12:30:18 2019 +0000 Commit: Kitware Robot <kwro...@kitware.com> CommitDate: Tue Jun 4 08:30:26 2019 -0400 Merge topic 'check_language_respects_cuda_host_compiler' fada8cbfd6 CheckLanguage: Report CMAKE_CUDA_HOST_COMPILER if needed for compilation Acked-by: Kitware Robot <kwro...@kitware.com> Merge-request: !3407 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=99b9b01c020a0b20c0eefa73a39138471c01a053 commit 99b9b01c020a0b20c0eefa73a39138471c01a053 Merge: e591e22 3475e27 Author: Brad King <brad.k...@kitware.com> AuthorDate: Tue Jun 4 12:27:58 2019 +0000 Commit: Kitware Robot <kwro...@kitware.com> CommitDate: Tue Jun 4 08:28:09 2019 -0400 Merge topic 'print-correct-line-number' 3475e2728b cmListFileCache: When missing ending ) print starting line instead of last one Acked-by: Kitware Robot <kwro...@kitware.com> Merge-request: !3398 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e591e22d4c7d2b4d4806cf47923e54269644b2a2 commit e591e22d4c7d2b4d4806cf47923e54269644b2a2 Merge: 7561fcd 619416f Author: Brad King <brad.k...@kitware.com> AuthorDate: Tue Jun 4 12:25:38 2019 +0000 Commit: Kitware Robot <kwro...@kitware.com> CommitDate: Tue Jun 4 08:25:47 2019 -0400 Merge topic 'better_error_message_for_visibility_preset_property' 619416f8a3 The error message for VISIBILITY_PRESET now documents valid options. Acked-by: Kitware Robot <kwro...@kitware.com> Merge-request: !3409 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7561fcda0918abf71b7fb0cfe67dd70fafe577ae commit 7561fcda0918abf71b7fb0cfe67dd70fafe577ae Merge: 99496f5 f263650 Author: Brad King <brad.k...@kitware.com> AuthorDate: Tue Jun 4 12:24:18 2019 +0000 Commit: Kitware Robot <kwro...@kitware.com> CommitDate: Tue Jun 4 08:24:29 2019 -0400 Merge topic 'test-explicit-dirs' f263650f95 Tests: Fix RunCMake.CommandLine test to use generator in no-S-B case Acked-by: Kitware Robot <kwro...@kitware.com> Merge-request: !3414 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f263650f95bdf87e2c50ada4a28d4fb729ac6f1c commit f263650f95bdf87e2c50ada4a28d4fb729ac6f1c Author: Brad King <brad.k...@kitware.com> AuthorDate: Mon Jun 3 14:57:19 2019 -0400 Commit: Brad King <brad.k...@kitware.com> CommitDate: Mon Jun 3 14:57:19 2019 -0400 Tests: Fix RunCMake.CommandLine test to use generator in no-S-B case Apply the fix from commit baed22c4b0 (Tests: Fix RunCMake.CommandLine test to use generator with -S and -B, 2019-04-10) to the `no-S-B` case too. It also generates a build system and should use the generator being tested. diff --git a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake index cee996c..7798b62 100644 --- a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake +++ b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake @@ -68,6 +68,9 @@ run_cmake_command(cache-empty-entry ${CMAKE_COMMAND} --build ${RunCMake_SOURCE_DIR}/cache-empty-entry/) function(run_ExplicitDirs) + set(RunCMake_TEST_NO_CLEAN 1) + set(RunCMake_TEST_NO_SOURCE_DIR 1) + set(source_dir ${RunCMake_BINARY_DIR}/ExplicitDirsMissing) file(REMOVE_RECURSE "${source_dir}") @@ -76,16 +79,15 @@ function(run_ExplicitDirs) cmake_minimum_required(VERSION 3.13) project(ExplicitDirsMissing LANGUAGES NONE) ]=]) - run_cmake_command(no-S-B ${CMAKE_COMMAND} -E chdir ${source_dir} - ${CMAKE_COMMAND} -DFOO=BAR) + set(RunCMake_TEST_SOURCE_DIR "${source_dir}") + set(RunCMake_TEST_BINARY_DIR "${source_dir}") + run_cmake_with_options(no-S-B -DFOO=BAR) set(source_dir ${RunCMake_SOURCE_DIR}/ExplicitDirs) set(binary_dir ${RunCMake_BINARY_DIR}/ExplicitDirs-build) set(RunCMake_TEST_SOURCE_DIR "${source_dir}") set(RunCMake_TEST_BINARY_DIR "${binary_dir}") - set(RunCMake_TEST_NO_CLEAN 1) - set(RunCMake_TEST_NO_SOURCE_DIR 1) file(REMOVE_RECURSE "${binary_dir}") run_cmake_with_options(S-arg -S ${source_dir} ${binary_dir}) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fada8cbfd6ae13d15b015f667a85096b15dc07b1 commit fada8cbfd6ae13d15b015f667a85096b15dc07b1 Author: Robert Maynard <robert.mayn...@kitware.com> AuthorDate: Fri May 31 08:39:16 2019 -0400 Commit: Brad King <brad.k...@kitware.com> CommitDate: Mon Jun 3 10:36:06 2019 -0400 CheckLanguage: Report CMAKE_CUDA_HOST_COMPILER if needed for compilation Fixes: #19013 diff --git a/Modules/CheckLanguage.cmake b/Modules/CheckLanguage.cmake index d096849..a1a3a7a 100644 --- a/Modules/CheckLanguage.cmake +++ b/Modules/CheckLanguage.cmake @@ -18,7 +18,9 @@ such as ``Fortran``. If :variable:`CMAKE_<LANG>_COMPILER` is already defined the check does nothing. Otherwise it tries enabling the language in a test project. The result is cached in :variable:`CMAKE_<LANG>_COMPILER` as the compiler that was found, or ``NOTFOUND`` if the language cannot be -enabled. +enabled. For CUDA which can have an explicit host compiler, the cache +:variable:`CMAKE_CUDA_HOST_COMPILER` variable will be set if it was required +for compilation. Example: @@ -39,13 +41,23 @@ macro(check_language lang) set(_desc "Looking for a ${lang} compiler") message(STATUS ${_desc}) file(REMOVE_RECURSE ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Check${lang}) - file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Check${lang}/CMakeLists.txt" + + set(extra_compiler_variables) + if(lang STREQUAL CUDA) + set(extra_compiler_variables "set(CMAKE_CUDA_HOST_COMPILER \\\"\${CMAKE_CUDA_HOST_COMPILER}\\\")") + endif() + + set(content "cmake_minimum_required(VERSION ${CMAKE_VERSION}) project(Check${lang} ${lang}) file(WRITE \"\${CMAKE_CURRENT_BINARY_DIR}/result.cmake\" \"set(CMAKE_${lang}_COMPILER \\\"\${CMAKE_${lang}_COMPILER}\\\")\\n\" - ) -") + \"${extra_compiler_variables}\\n\" + )" + ) + + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Check${lang}/CMakeLists.txt" + "${content}") if(CMAKE_GENERATOR_INSTANCE) set(_D_CMAKE_GENERATOR_INSTANCE "-DCMAKE_GENERATOR_INSTANCE:INTERNAL=${CMAKE_GENERATOR_INSTANCE}") else() @@ -75,5 +87,12 @@ file(WRITE \"\${CMAKE_CURRENT_BINARY_DIR}/result.cmake\" message(STATUS "${_desc} - ${CMAKE_${lang}_COMPILER}") set(CMAKE_${lang}_COMPILER "${CMAKE_${lang}_COMPILER}" CACHE FILEPATH "${lang} compiler") mark_as_advanced(CMAKE_${lang}_COMPILER) + + if(CMAKE_${lang}_HOST_COMPILER) + message(STATUS "Looking for a ${lang} host compiler - ${CMAKE_${lang}_HOST_COMPILER}") + set(CMAKE_${lang}_HOST_COMPILER "${CMAKE_${lang}_HOST_COMPILER}" CACHE FILEPATH "${lang} host compiler") + mark_as_advanced(CMAKE_${lang}_HOST_COMPILER) + endif() + endif() endmacro() diff --git a/Tests/CMakeOnly/CheckLanguage/CMakeLists.txt b/Tests/CMakeOnly/CheckLanguage/CMakeLists.txt index f5336dc..ca4becb 100644 --- a/Tests/CMakeOnly/CheckLanguage/CMakeLists.txt +++ b/Tests/CMakeOnly/CheckLanguage/CMakeLists.txt @@ -7,7 +7,8 @@ set(expect_C 1) set(expect_CXX 1) unset(expect_Fortran) set(expect_NoSuchLanguage 0) -foreach(lang C CXX Fortran NoSuchLanguage) + +foreach(lang C CXX Fortran CUDA NoSuchLanguage) check_language(${lang}) if(NOT DEFINED CMAKE_${lang}_COMPILER) message(FATAL_ERROR "check_language(${lang}) did not set result") https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=162555d7ecd510a84fb26a2ebc90f0a3e9eabc1a commit 162555d7ecd510a84fb26a2ebc90f0a3e9eabc1a Author: Robert Maynard <robert.mayn...@kitware.com> AuthorDate: Thu May 30 16:46:22 2019 -0400 Commit: Brad King <brad.k...@kitware.com> CommitDate: Mon Jun 3 10:23:49 2019 -0400 Help: Add release notes for updated generator expressions diff --git a/Help/release/dev/genex-comma-separated.rst b/Help/release/dev/genex-comma-separated.rst new file mode 100644 index 0000000..f27f781 --- /dev/null +++ b/Help/release/dev/genex-comma-separated.rst @@ -0,0 +1,8 @@ +genex-comma-separated +--------------------- + +* The :manual:`generator expressions <cmake-generator-expressions(7)>` + ``C_COMPILER_ID``, ``CXX_COMPILER_ID``, ``CUDA_COMPILER_ID``, + ``Fortran_COMPILER_ID``, ``COMPILE_LANGUAGE``, ``COMPILE_LANG_AND_ID``, and + ``PLATFORM_ID`` learned to support matching one value from a comma-separated + list. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=808b8180632aef06e7a3644fb4d3957722abc3f3 commit 808b8180632aef06e7a3644fb4d3957722abc3f3 Author: Robert Maynard <robert.mayn...@kitware.com> AuthorDate: Thu May 30 10:00:19 2019 -0400 Commit: Brad King <brad.k...@kitware.com> CommitDate: Mon Jun 3 10:20:23 2019 -0400 Genex: CompileLang and CompileLangAndId now match against a list of ids This allows for expressions such as: $<COMPILE_LANG_AND_ID, CXX, GNU, Clang> diff --git a/Help/manual/cmake-generator-expressions.7.rst b/Help/manual/cmake-generator-expressions.7.rst index 1136151..c0449fb 100644 --- a/Help/manual/cmake-generator-expressions.7.rst +++ b/Help/manual/cmake-generator-expressions.7.rst @@ -164,20 +164,20 @@ Variable Queries .. _`Boolean COMPILE_LANGUAGE Generator Expression`: -``$<COMPILE_LANG_AND_ID:language,compiler_id>`` +``$<COMPILE_LANG_AND_ID:language,compiler_ids>`` ``1`` when the language used for compilation unit matches ``language`` and - the CMake's compiler id of the language compiler matches ``compiler_id``, - otherwise ``0``. This expression is a short form for the combination of - ``$<COMPILE_LANGUAGE:language>`` and ``$<LANG_COMPILER_ID:compiler_id>``. - This expression may be used to specify compile options, - compile definitions, and include directories for source files of a + the CMake's compiler id of the language compiler matches any one of the + entries in ``compiler_ids``, otherwise ``0``. This expression is a short form + for the combination of ``$<COMPILE_LANGUAGE:language>`` and + ``$<LANG_COMPILER_ID:compiler_ids>``. This expression may be used to specify + compile options, compile definitions, and include directories for source files of a particular language and compiler combination in a target. For example: .. code-block:: cmake add_executable(myapp main.cpp foo.c bar.cpp zot.cu) target_compile_definitions(myapp - PRIVATE $<$<COMPILE_LANG_AND_ID:CXX,Clang>:COMPILING_CXX_WITH_CLANG> + PRIVATE $<$<COMPILE_LANG_AND_ID:CXX,AppleClang,Clang>:COMPILING_CXX_WITH_CLANG> $<$<COMPILE_LANG_AND_ID:CXX,Intel>:COMPILING_CXX_WITH_INTEL> $<$<COMPILE_LANG_AND_ID:C,Clang>:COMPILING_C_WITH_CLANG> ) @@ -200,10 +200,10 @@ Variable Queries $<$<AND:$<COMPILE_LANGUAGE:C>,$<C_COMPILER_ID:Clang>>:COMPILING_C_WITH_CLANG> ) -``$<COMPILE_LANGUAGE:language>`` - ``1`` when the language used for compilation unit matches ``language``, - otherwise ``0``. This expression may be used to specify compile options, - compile definitions, and include directories for source files of a +``$<COMPILE_LANGUAGE:languages>`` + ``1`` when the language used for compilation unit matches any of the entries + in ``languages``, otherwise ``0``. This expression may be used to specify + compile options, compile definitions, and include directories for source files of a particular language in a target. For example: .. code-block:: cmake @@ -217,7 +217,7 @@ Variable Queries $<$<COMPILE_LANGUAGE:CUDA>:COMPILING_CUDA> ) target_include_directories(myapp - PRIVATE $<$<COMPILE_LANGUAGE:CXX>:/opt/foo/cxx_headers> + PRIVATE $<$<COMPILE_LANGUAGE:CXX,CUDA>:/opt/foo/headers> ) This specifies the use of the ``-fno-exceptions`` compile option, diff --git a/Source/cmGeneratorExpressionNode.cxx b/Source/cmGeneratorExpressionNode.cxx index 4744309..a60c75c 100644 --- a/Source/cmGeneratorExpressionNode.cxx +++ b/Source/cmGeneratorExpressionNode.cxx @@ -951,7 +951,7 @@ static const struct CompileLanguageNode : public cmGeneratorExpressionNode { CompileLanguageNode() {} // NOLINT(modernize-use-equals-default) - int NumExpectedParameters() const override { return OneOrZeroParameters; } + int NumExpectedParameters() const override { return ZeroOrMoreParameters; } std::string Evaluate( const std::vector<std::string>& parameters, @@ -982,7 +982,13 @@ static const struct CompileLanguageNode : public cmGeneratorExpressionNode if (parameters.empty()) { return context->Language; } - return context->Language == parameters.front() ? "1" : "0"; + + for (auto& param : parameters) { + if (context->Language == param) { + return "1"; + } + } + return "0"; } } languageNode; @@ -990,7 +996,7 @@ static const struct CompileLanguageAndIdNode : public cmGeneratorExpressionNode { CompileLanguageAndIdNode() {} // NOLINT(modernize-use-equals-default) - int NumExpectedParameters() const override { return 2; } + int NumExpectedParameters() const override { return TwoOrMoreParameters; } std::string Evaluate( const std::vector<std::string>& parameters, @@ -1023,7 +1029,8 @@ static const struct CompileLanguageAndIdNode : public cmGeneratorExpressionNode const std::string& lang = context->Language; if (lang == parameters.front()) { - std::vector<std::string> idParameter = { parameters[1] }; + std::vector<std::string> idParameter((parameters.cbegin() + 1), + parameters.cend()); return CompilerIdNode{ lang.c_str() }.EvaluateWithLanguage( idParameter, context, content, dagChecker, lang); } diff --git a/Tests/CMakeCommands/target_compile_definitions/CMakeLists.txt b/Tests/CMakeCommands/target_compile_definitions/CMakeLists.txt index 7dc7995..a5bc1e1 100644 --- a/Tests/CMakeCommands/target_compile_definitions/CMakeLists.txt +++ b/Tests/CMakeCommands/target_compile_definitions/CMakeLists.txt @@ -34,6 +34,7 @@ target_compile_definitions(consumer CONSUMER_LANG_$<COMPILE_LANGUAGE> LANG_IS_CXX=$<COMPILE_LANGUAGE:CXX> LANG_IS_C=$<COMPILE_LANGUAGE:C> + LANG_IS_C_OR_CXX=$<COMPILE_LANGUAGE:C,CXX> ) if(CMAKE_GENERATOR MATCHES "Visual Studio|Xcode") target_compile_definitions(consumer diff --git a/Tests/CMakeCommands/target_compile_definitions/consumer.c b/Tests/CMakeCommands/target_compile_definitions/consumer.c index bacd4c4..bb65e01 100644 --- a/Tests/CMakeCommands/target_compile_definitions/consumer.c +++ b/Tests/CMakeCommands/target_compile_definitions/consumer.c @@ -35,6 +35,10 @@ # endif #endif +#if !LANG_IS_C_OR_CXX +# error Expected LANG_IS_C_OR_CXX +#endif + void consumer_c() { } diff --git a/Tests/CMakeCommands/target_compile_options/CMakeLists.txt b/Tests/CMakeCommands/target_compile_options/CMakeLists.txt index ee187f5..a7055b1 100644 --- a/Tests/CMakeCommands/target_compile_options/CMakeLists.txt +++ b/Tests/CMakeCommands/target_compile_options/CMakeLists.txt @@ -9,6 +9,7 @@ add_executable(target_compile_options target_compile_options(target_compile_options PRIVATE $<$<CXX_COMPILER_ID:AppleClang,Clang,GNU>:-DMY_PRIVATE_DEFINE> PUBLIC $<$<COMPILE_LANG_AND_ID:CXX,GNU>:-DMY_PUBLIC_DEFINE> + PUBLIC $<$<COMPILE_LANG_AND_ID:CXX,GNU,Clang,AppleClang>:-DMY_MUTLI_COMP_PUBLIC_DEFINE> INTERFACE $<$<CXX_COMPILER_ID:GNU>:-DMY_INTERFACE_DEFINE> INTERFACE $<$<CXX_COMPILER_ID:GNU,Clang,AppleClang>:-DMY_MULTI_COMP_INTERFACE_DEFINE> ) diff --git a/Tests/CMakeCommands/target_compile_options/consumer.cpp b/Tests/CMakeCommands/target_compile_options/consumer.cpp index 5cbe049..78928b4 100644 --- a/Tests/CMakeCommands/target_compile_options/consumer.cpp +++ b/Tests/CMakeCommands/target_compile_options/consumer.cpp @@ -17,6 +17,10 @@ # error Expected MY_MULTI_COMP_INTERFACE_DEFINE # endif +# ifndef MY_MUTLI_COMP_PUBLIC_DEFINE +# error Expected MY_MUTLI_COMP_PUBLIC_DEFINE +# endif + #endif #ifdef DO_CLANG_TESTS @@ -29,6 +33,10 @@ # error Expected MY_MULTI_COMP_INTERFACE_DEFINE # endif +# ifndef MY_MUTLI_COMP_PUBLIC_DEFINE +# error Expected MY_MUTLI_COMP_PUBLIC_DEFINE +# endif + #endif #ifndef CONSUMER_LANG_CXX diff --git a/Tests/CMakeCommands/target_compile_options/main.cpp b/Tests/CMakeCommands/target_compile_options/main.cpp index edefdf2..7608400 100644 --- a/Tests/CMakeCommands/target_compile_options/main.cpp +++ b/Tests/CMakeCommands/target_compile_options/main.cpp @@ -9,6 +9,10 @@ # error Expected MY_PUBLIC_DEFINE # endif +# ifndef MY_MUTLI_COMP_PUBLIC_DEFINE +# error Expected MY_MUTLI_COMP_PUBLIC_DEFINE +# endif + # ifdef MY_INTERFACE_DEFINE # error Unexpected MY_INTERFACE_DEFINE # endif @@ -25,6 +29,10 @@ # error Unexpected MY_PUBLIC_DEFINE # endif +# ifndef MY_MUTLI_COMP_PUBLIC_DEFINE +# error Expected MY_MUTLI_COMP_PUBLIC_DEFINE +# endif + #endif int main() diff --git a/Tests/RunCMake/GeneratorExpression/COMPILE_LANG_AND_ID-add_custom_command-stderr.txt b/Tests/RunCMake/GeneratorExpression/COMPILE_LANG_AND_ID-add_custom_command-stderr.txt index fc3c3de..2ee96ed 100644 --- a/Tests/RunCMake/GeneratorExpression/COMPILE_LANG_AND_ID-add_custom_command-stderr.txt +++ b/Tests/RunCMake/GeneratorExpression/COMPILE_LANG_AND_ID-add_custom_command-stderr.txt @@ -3,7 +3,6 @@ CMake Error at COMPILE_LANG_AND_ID-add_custom_command.cmake:2 \(add_custom_comma \$<COMPILE_LANG_AND_ID> - \$<COMPILE_LANG_AND_ID> expression requires 2 comma separated parameters, - but got 0 instead. + \$<COMPILE_LANG_AND_ID> expression requires at least two parameters. Call Stack \(most recent call first\): CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/GeneratorExpression/COMPILE_LANG_AND_ID-target_sources-stderr.txt b/Tests/RunCMake/GeneratorExpression/COMPILE_LANG_AND_ID-target_sources-stderr.txt index 44d8684..3ecbdc3 100644 --- a/Tests/RunCMake/GeneratorExpression/COMPILE_LANG_AND_ID-target_sources-stderr.txt +++ b/Tests/RunCMake/GeneratorExpression/COMPILE_LANG_AND_ID-target_sources-stderr.txt @@ -3,7 +3,6 @@ CMake Error at COMPILE_LANG_AND_ID-target_sources.cmake:2 \(target_sources\): \$<COMPILE_LANG_AND_ID> - \$<COMPILE_LANG_AND_ID> expression requires 2 comma separated parameters, - but got 0 instead. + \$<COMPILE_LANG_AND_ID> expression requires at least two parameters. Call Stack \(most recent call first\): CMakeLists.txt:3 \(include\) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9fd602bfd33479b1acecd40e5c1b76ce37d59798 commit 9fd602bfd33479b1acecd40e5c1b76ce37d59798 Author: Robert Maynard <robert.mayn...@kitware.com> AuthorDate: Wed May 29 14:55:45 2019 -0400 Commit: Brad King <brad.k...@kitware.com> CommitDate: Mon Jun 3 10:20:23 2019 -0400 Genex: PlatformId now can match against a list of ids. diff --git a/Help/manual/cmake-generator-expressions.7.rst b/Help/manual/cmake-generator-expressions.7.rst index c03e701..1136151 100644 --- a/Help/manual/cmake-generator-expressions.7.rst +++ b/Help/manual/cmake-generator-expressions.7.rst @@ -110,9 +110,10 @@ Variable Queries The mapping in :prop_tgt:`MAP_IMPORTED_CONFIG_<CONFIG>` is also considered by this expression when it is evaluated on a property on an :prop_tgt:`IMPORTED` target. -``$<PLATFORM_ID:platform_id>`` - ``1`` if the CMake's platform id matches ``platform_id`` - otherwise ``0``. +``$<PLATFORM_ID:platform_ids>`` + where ``platform_ids`` is a comma-separated list. + ``1`` if the CMake's platform id matches any one of the entries in + ``platform_ids``, otherwise ``0``. See also the :variable:`CMAKE_SYSTEM_NAME` variable. ``$<C_COMPILER_ID:compiler_ids>`` where ``compiler_ids`` is a comma-separated list. diff --git a/Source/cmGeneratorExpressionNode.cxx b/Source/cmGeneratorExpressionNode.cxx index 7fcd3f3..4744309 100644 --- a/Source/cmGeneratorExpressionNode.cxx +++ b/Source/cmGeneratorExpressionNode.cxx @@ -776,7 +776,7 @@ struct PlatformIdNode : public cmGeneratorExpressionNode { PlatformIdNode() {} // NOLINT(modernize-use-equals-default) - int NumExpectedParameters() const override { return OneOrZeroParameters; } + int NumExpectedParameters() const override { return ZeroOrMoreParameters; } std::string Evaluate( const std::vector<std::string>& parameters, @@ -794,8 +794,10 @@ struct PlatformIdNode : public cmGeneratorExpressionNode return parameters.front().empty() ? "1" : "0"; } - if (parameters.front() == platformId) { - return "1"; + for (auto& param : parameters) { + if (param == platformId) { + return "1"; + } } return "0"; } diff --git a/Tests/GeneratorExpression/CMakeLists.txt b/Tests/GeneratorExpression/CMakeLists.txt index 5ba0dc0..3ff2b85 100644 --- a/Tests/GeneratorExpression/CMakeLists.txt +++ b/Tests/GeneratorExpression/CMakeLists.txt @@ -220,6 +220,7 @@ add_custom_target(check-part3 ALL -Dtest_early_termination_2=$<$<1:>:, -Dsystem_name=${CMAKE_HOST_SYSTEM_NAME} -Dtest_platform_id=$<PLATFORM_ID> + -Dtest_platform_id_supported=$<PLATFORM_ID:Linux,Windows,Darwin> -Dtest_platform_id_Linux=$<PLATFORM_ID:Linux> -Dtest_platform_id_Windows=$<PLATFORM_ID:Windows> -Dtest_platform_id_Darwin=$<PLATFORM_ID:Darwin> diff --git a/Tests/GeneratorExpression/check-part3.cmake b/Tests/GeneratorExpression/check-part3.cmake index 9014406..4fb7308 100644 --- a/Tests/GeneratorExpression/check-part3.cmake +++ b/Tests/GeneratorExpression/check-part3.cmake @@ -28,11 +28,16 @@ check(test_early_termination_2 "$<:,") check(test_platform_id "${system_name}") foreach(system Linux Windows Darwin) if(system_name STREQUAL system) + check(test_platform_id_supported 1) check(test_platform_id_${system} 1) + set(platform_supported 1) else() check(test_platform_id_${system} 0) endif() endforeach() +if(NOT platform_supported) + check(test_platform_id_supported 0) +endif() check(lower_case "mi,xed") check(upper_case "MIX,ED") check(make_c_identifier "_4f_oo__bar__") https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ec66af2026e085e7b648b222794f0f213183ea1e commit ec66af2026e085e7b648b222794f0f213183ea1e Author: Robert Maynard <robert.mayn...@kitware.com> AuthorDate: Wed May 29 14:55:18 2019 -0400 Commit: Brad King <brad.k...@kitware.com> CommitDate: Mon Jun 3 10:20:23 2019 -0400 Genex: CompilerId now can match against a list of ids. This allows for expressions like: $<$<CXX_COMPILER_ID:Clang,GNU>:-DMY_PRIVATE_DEFINE> diff --git a/Help/manual/cmake-generator-expressions.7.rst b/Help/manual/cmake-generator-expressions.7.rst index f2e6597..c03e701 100644 --- a/Help/manual/cmake-generator-expressions.7.rst +++ b/Help/manual/cmake-generator-expressions.7.rst @@ -114,20 +114,25 @@ Variable Queries ``1`` if the CMake's platform id matches ``platform_id`` otherwise ``0``. See also the :variable:`CMAKE_SYSTEM_NAME` variable. -``$<C_COMPILER_ID:compiler_id>`` - ``1`` if the CMake's compiler id of the C compiler matches ``compiler_id``, - otherwise ``0``. +``$<C_COMPILER_ID:compiler_ids>`` + where ``compiler_ids`` is a comma-separated list. + ``1`` if the CMake's compiler id of the C compiler matches any one + of the entries in ``compiler_ids``, otherwise ``0``. See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable. -``$<CXX_COMPILER_ID:compiler_id>`` - ``1`` if the CMake's compiler id of the CXX compiler matches ``compiler_id``, - otherwise ``0``. -``$<CUDA_COMPILER_ID:compiler_id>`` - ``1`` if the CMake's compiler id of the CUDA compiler matches ``compiler_id``, - otherwise ``0``. +``$<CXX_COMPILER_ID:compiler_ids>`` + where ``compiler_ids`` is a comma-separated list. + ``1`` if the CMake's compiler id of the CXX compiler matches any one + of the entries in ``compiler_ids``, otherwise ``0``. See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable. -``$<Fortran_COMPILER_ID:compiler_id>`` - ``1`` if the CMake's compiler id of the Fortran compiler matches ``compiler_id``, - otherwise ``0``. +``$<CUDA_COMPILER_ID:compiler_ids>`` + where ``compiler_ids`` is a comma-separated list. + ``1`` if the CMake's compiler id of the CUDA compiler matches any one + of the entries in ``compiler_ids``, otherwise ``0``. + See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable. +``$<Fortran_COMPILER_ID:compiler_ids>`` + where ``compiler_ids`` is a comma-separated list. + ``1`` if the CMake's compiler id of the Fortran compiler matches any one + of the entries in ``compiler_ids``, otherwise ``0``. See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable. ``$<C_COMPILER_VERSION:version>`` ``1`` if the version of the C compiler matches ``version``, otherwise ``0``. diff --git a/Source/cmGeneratorExpressionNode.cxx b/Source/cmGeneratorExpressionNode.cxx index 68ef170..7fcd3f3 100644 --- a/Source/cmGeneratorExpressionNode.cxx +++ b/Source/cmGeneratorExpressionNode.cxx @@ -632,7 +632,7 @@ struct CompilerIdNode : public cmGeneratorExpressionNode { } - int NumExpectedParameters() const override { return OneOrZeroParameters; } + int NumExpectedParameters() const override { return ZeroOrMoreParameters; } std::string Evaluate( const std::vector<std::string>& parameters, @@ -664,36 +664,39 @@ struct CompilerIdNode : public cmGeneratorExpressionNode if (parameters.empty()) { return compilerId; } - static cmsys::RegularExpression compilerIdValidator("^[A-Za-z0-9_]*$"); - if (!compilerIdValidator.find(parameters.front())) { - reportError(context, content->GetOriginalExpression(), - "Expression syntax not recognized."); - return std::string(); - } if (compilerId.empty()) { return parameters.front().empty() ? "1" : "0"; } + static cmsys::RegularExpression compilerIdValidator("^[A-Za-z0-9_]*$"); - if (strcmp(parameters.front().c_str(), compilerId.c_str()) == 0) { - return "1"; - } + for (auto& param : parameters) { - if (cmsysString_strcasecmp(parameters.front().c_str(), - compilerId.c_str()) == 0) { - switch (context->LG->GetPolicyStatus(cmPolicies::CMP0044)) { - case cmPolicies::WARN: { - std::ostringstream e; - e << cmPolicies::GetPolicyWarning(cmPolicies::CMP0044); - context->LG->GetCMakeInstance()->IssueMessage( - MessageType::AUTHOR_WARNING, e.str(), context->Backtrace); - CM_FALLTHROUGH; + if (!compilerIdValidator.find(param)) { + reportError(context, content->GetOriginalExpression(), + "Expression syntax not recognized."); + return std::string(); + } + + if (strcmp(param.c_str(), compilerId.c_str()) == 0) { + return "1"; + } + + if (cmsysString_strcasecmp(param.c_str(), compilerId.c_str()) == 0) { + switch (context->LG->GetPolicyStatus(cmPolicies::CMP0044)) { + case cmPolicies::WARN: { + std::ostringstream e; + e << cmPolicies::GetPolicyWarning(cmPolicies::CMP0044); + context->LG->GetCMakeInstance()->IssueMessage( + MessageType::AUTHOR_WARNING, e.str(), context->Backtrace); + CM_FALLTHROUGH; + } + case cmPolicies::OLD: + return "1"; + case cmPolicies::NEW: + case cmPolicies::REQUIRED_ALWAYS: + case cmPolicies::REQUIRED_IF_USED: + break; } - case cmPolicies::OLD: - return "1"; - case cmPolicies::NEW: - case cmPolicies::REQUIRED_ALWAYS: - case cmPolicies::REQUIRED_IF_USED: - break; } } return "0"; diff --git a/Tests/CMakeCommands/target_compile_options/CMakeLists.txt b/Tests/CMakeCommands/target_compile_options/CMakeLists.txt index a24cd53..ee187f5 100644 --- a/Tests/CMakeCommands/target_compile_options/CMakeLists.txt +++ b/Tests/CMakeCommands/target_compile_options/CMakeLists.txt @@ -7,9 +7,10 @@ add_executable(target_compile_options "${CMAKE_CURRENT_SOURCE_DIR}/main.cpp" ) target_compile_options(target_compile_options - PRIVATE $<$<CXX_COMPILER_ID:GNU>:-DMY_PRIVATE_DEFINE> + PRIVATE $<$<CXX_COMPILER_ID:AppleClang,Clang,GNU>:-DMY_PRIVATE_DEFINE> PUBLIC $<$<COMPILE_LANG_AND_ID:CXX,GNU>:-DMY_PUBLIC_DEFINE> INTERFACE $<$<CXX_COMPILER_ID:GNU>:-DMY_INTERFACE_DEFINE> + INTERFACE $<$<CXX_COMPILER_ID:GNU,Clang,AppleClang>:-DMY_MULTI_COMP_INTERFACE_DEFINE> ) if(CMAKE_CXX_COMPILER_ID MATCHES "GNU") @@ -17,6 +18,11 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "GNU") PRIVATE "DO_GNU_TESTS" ) +elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang") + target_compile_definitions(target_compile_options + PRIVATE + "DO_CLANG_TESTS" + ) endif() add_executable(consumer @@ -40,7 +46,7 @@ if(CMAKE_GENERATOR MATCHES "Visual Studio") endif() target_compile_options(consumer - PRIVATE $<$<CXX_COMPILER_ID:GNU>:$<TARGET_PROPERTY:target_compile_options,INTERFACE_COMPILE_OPTIONS>> + PRIVATE $<$<CXX_COMPILER_ID:GNU,Clang,AppleClang>:$<TARGET_PROPERTY:target_compile_options,INTERFACE_COMPILE_OPTIONS>> ) if(CMAKE_CXX_COMPILER_ID MATCHES "GNU") @@ -48,6 +54,11 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "GNU") PRIVATE "DO_GNU_TESTS" ) +elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang") + target_compile_definitions(consumer + PRIVATE + "DO_CLANG_TESTS" + ) endif() # Test no items diff --git a/Tests/CMakeCommands/target_compile_options/consumer.cpp b/Tests/CMakeCommands/target_compile_options/consumer.cpp index fe79eb5..5cbe049 100644 --- a/Tests/CMakeCommands/target_compile_options/consumer.cpp +++ b/Tests/CMakeCommands/target_compile_options/consumer.cpp @@ -13,6 +13,22 @@ # error Expected MY_INTERFACE_DEFINE # endif +# ifndef MY_MULTI_COMP_INTERFACE_DEFINE +# error Expected MY_MULTI_COMP_INTERFACE_DEFINE +# endif + +#endif + +#ifdef DO_CLANG_TESTS + +# ifdef MY_PRIVATE_DEFINE +# error Unexpected MY_PRIVATE_DEFINE +# endif + +# ifndef MY_MULTI_COMP_INTERFACE_DEFINE +# error Expected MY_MULTI_COMP_INTERFACE_DEFINE +# endif + #endif #ifndef CONSUMER_LANG_CXX diff --git a/Tests/CMakeCommands/target_compile_options/main.cpp b/Tests/CMakeCommands/target_compile_options/main.cpp index 829a25e..edefdf2 100644 --- a/Tests/CMakeCommands/target_compile_options/main.cpp +++ b/Tests/CMakeCommands/target_compile_options/main.cpp @@ -15,6 +15,18 @@ #endif +#ifdef DO_CLANG_TESTS + +# ifndef MY_PRIVATE_DEFINE +# error Expected MY_PRIVATE_DEFINE +# endif + +# ifdef MY_PUBLIC_DEFINE +# error Unexpected MY_PUBLIC_DEFINE +# endif + +#endif + int main() { return 0; diff --git a/Tests/RunCMake/PolicyScope/dir1/CMakeLists.txt b/Tests/RunCMake/PolicyScope/dir1/CMakeLists.txt index 16bcb36..66ff016 100644 --- a/Tests/RunCMake/PolicyScope/dir1/CMakeLists.txt +++ b/Tests/RunCMake/PolicyScope/dir1/CMakeLists.txt @@ -2,4 +2,4 @@ add_library(foo STATIC foo.cpp) string(TOLOWER ${CMAKE_CXX_COMPILER_ID} compiler_id) -target_compile_definitions(foo PRIVATE Foo=$<CXX_COMPILER_ID:${compiler_id}>) +target_compile_definitions(foo PRIVATE Foo=$<CXX_COMPILER_ID:invalid,${compiler_id}>) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2d4787fc4ddc077e1d8fcb807768d1ecc7902a73 commit 2d4787fc4ddc077e1d8fcb807768d1ecc7902a73 Author: Robert Maynard <robert.mayn...@kitware.com> AuthorDate: Wed May 29 14:49:36 2019 -0400 Commit: Brad King <brad.k...@kitware.com> CommitDate: Mon Jun 3 10:20:22 2019 -0400 Genex: Add more extensive support for an unbounded number of parameters Previously genex support for unbounded number of parameters required at least 1 parameter. We now support zero or more parameters, and two or more parameters. diff --git a/Source/cmGeneratorExpressionEvaluator.cxx b/Source/cmGeneratorExpressionEvaluator.cxx index 268de6f..7442018 100644 --- a/Source/cmGeneratorExpressionEvaluator.cxx +++ b/Source/cmGeneratorExpressionEvaluator.cxx @@ -166,9 +166,13 @@ std::string GeneratorExpressionContent::EvaluateParameters( reportError(context, this->GetOriginalExpression(), "$<" + identifier + "> expression requires at least one parameter."); - } - if (numExpected == cmGeneratorExpressionNode::OneOrZeroParameters && - parameters.size() > 1) { + } else if (numExpected == cmGeneratorExpressionNode::TwoOrMoreParameters && + parameters.size() < 2) { + reportError(context, this->GetOriginalExpression(), + "$<" + identifier + + "> expression requires at least two parameters."); + } else if (numExpected == cmGeneratorExpressionNode::OneOrZeroParameters && + parameters.size() > 1) { reportError(context, this->GetOriginalExpression(), "$<" + identifier + "> expression requires one or zero parameters."); diff --git a/Source/cmGeneratorExpressionNode.h b/Source/cmGeneratorExpressionNode.h index 3dbfc6e..7a36924 100644 --- a/Source/cmGeneratorExpressionNode.h +++ b/Source/cmGeneratorExpressionNode.h @@ -20,7 +20,9 @@ struct cmGeneratorExpressionNode { DynamicParameters = 0, OneOrMoreParameters = -1, - OneOrZeroParameters = -2 + TwoOrMoreParameters = -2, + ZeroOrMoreParameters = -3, + OneOrZeroParameters = -4 }; virtual ~cmGeneratorExpressionNode() = default; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3475e2728bad16899b50131785a61f43083e8ba9 commit 3475e2728bad16899b50131785a61f43083e8ba9 Author: Bartosz Kosiorek <bartosz.kosio...@tomtom.com> AuthorDate: Thu May 30 09:18:16 2019 +0200 Commit: Brad King <brad.k...@kitware.com> CommitDate: Mon Jun 3 10:03:53 2019 -0400 cmListFileCache: When missing ending ) print starting line instead of last one Fixes: #19301 diff --git a/Source/cmListFileCache.cxx b/Source/cmListFileCache.cxx index f99caed..df0d00c 100644 --- a/Source/cmListFileCache.cxx +++ b/Source/cmListFileCache.cxx @@ -192,12 +192,9 @@ bool cmListFileParser::ParseFunction(const char* name, long line) } // Arguments. - unsigned long lastLine; unsigned long parenDepth = 0; this->Separation = SeparationOkay; - while ( - (static_cast<void>(lastLine = cmListFileLexer_GetCurrentLine(this->Lexer)), - token = cmListFileLexer_Scan(this->Lexer))) { + while ((token = cmListFileLexer_Scan(this->Lexer))) { if (token->type == cmListFileLexer_Token_Space || token->type == cmListFileLexer_Token_Newline) { this->Separation = SeparationOkay; @@ -252,7 +249,7 @@ bool cmListFileParser::ParseFunction(const char* name, long line) std::ostringstream error; cmListFileContext lfc; lfc.FilePath = this->FileName; - lfc.Line = lastLine; + lfc.Line = line; cmListFileBacktrace lfbt = this->Backtrace; lfbt = lfbt.Push(lfc); error << "Parse error. Function missing ending \")\". " diff --git a/Tests/RunCMake/Syntax/UnterminatedCall1-stderr.txt b/Tests/RunCMake/Syntax/UnterminatedCall1-stderr.txt index 3f52244..f3ee895 100644 --- a/Tests/RunCMake/Syntax/UnterminatedCall1-stderr.txt +++ b/Tests/RunCMake/Syntax/UnterminatedCall1-stderr.txt @@ -1,4 +1,4 @@ -CMake Error at UnterminatedCall1.cmake:2: +CMake Error at UnterminatedCall1.cmake:1: Parse error. Function missing ending "\)". End of file reached. Call Stack \(most recent call first\): CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/Syntax/UnterminatedCall1.cmake b/Tests/RunCMake/Syntax/UnterminatedCall1.cmake index 1166109..e1d2118 100644 --- a/Tests/RunCMake/Syntax/UnterminatedCall1.cmake +++ b/Tests/RunCMake/Syntax/UnterminatedCall1.cmake @@ -1 +1,4 @@ message( + + +message("Additional message") diff --git a/Tests/RunCMake/Syntax/UnterminatedCall2-stderr.txt b/Tests/RunCMake/Syntax/UnterminatedCall2-stderr.txt index 18656f7..04216c3 100644 --- a/Tests/RunCMake/Syntax/UnterminatedCall2-stderr.txt +++ b/Tests/RunCMake/Syntax/UnterminatedCall2-stderr.txt @@ -1,4 +1,4 @@ -CMake Error at UnterminatedCall2.cmake:4: +CMake Error at UnterminatedCall2.cmake:3: Parse error. Function missing ending "\)". End of file reached. Call Stack \(most recent call first\): CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/Syntax/UnterminatedCall2.cmake b/Tests/RunCMake/Syntax/UnterminatedCall2.cmake index 26e9e62..8d4088d 100644 --- a/Tests/RunCMake/Syntax/UnterminatedCall2.cmake +++ b/Tests/RunCMake/Syntax/UnterminatedCall2.cmake @@ -1,3 +1,6 @@ set(var "\ ") message( + + +message("Additional message") https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=619416f8a30c99f87869559cf3829ce6d3431dca commit 619416f8a30c99f87869559cf3829ce6d3431dca Author: Robert Maynard <robert.mayn...@kitware.com> AuthorDate: Fri May 31 13:18:11 2019 -0400 Commit: Brad King <brad.k...@kitware.com> CommitDate: Mon Jun 3 09:56:03 2019 -0400 The error message for VISIBILITY_PRESET now documents valid options. Rather than just state the value for VISIBILITY_PRESET was invalid, we additionally list the accepted values. diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index 87d2232..e20747f 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -1914,7 +1914,9 @@ static void AddVisibilityCompileOption(std::string& flags, strcmp(prop, "protected") != 0 && strcmp(prop, "internal") != 0) { std::ostringstream e; e << "Target " << target->GetName() << " uses unsupported value \"" << prop - << "\" for " << flagDefine << "."; + << "\" for " << flagDefine << "." + << " The supported values are: default, hidden, protected, and " + "internal."; cmSystemTools::Error(e.str()); return; } diff --git a/Tests/RunCMake/VisibilityPreset/PropertyTypo-stderr.txt b/Tests/RunCMake/VisibilityPreset/PropertyTypo-stderr.txt index ca8c33f..a63591f 100644 --- a/Tests/RunCMake/VisibilityPreset/PropertyTypo-stderr.txt +++ b/Tests/RunCMake/VisibilityPreset/PropertyTypo-stderr.txt @@ -1 +1 @@ -CMake Error: Target visibility_preset uses unsupported value \"hiden\" for CXX_VISIBILITY_PRESET +CMake Error: Target visibility_preset uses unsupported value \"hiden\" for CXX_VISIBILITY_PRESET. The supported values are: default, hidden, protected, and internal. ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-generator-expressions.7.rst | 60 +++++++++-------- Help/release/dev/genex-comma-separated.rst | 8 +++ Modules/CheckLanguage.cmake | 27 ++++++-- Source/cmGeneratorExpressionEvaluator.cxx | 10 ++- Source/cmGeneratorExpressionNode.cxx | 76 +++++++++++++--------- Source/cmGeneratorExpressionNode.h | 4 +- Source/cmListFileCache.cxx | 7 +- Source/cmLocalGenerator.cxx | 4 +- .../target_compile_definitions/CMakeLists.txt | 1 + .../target_compile_definitions/consumer.c | 4 ++ .../target_compile_options/CMakeLists.txt | 16 ++++- .../target_compile_options/consumer.cpp | 24 +++++++ .../CMakeCommands/target_compile_options/main.cpp | 20 ++++++ Tests/CMakeOnly/CheckLanguage/CMakeLists.txt | 3 +- Tests/GeneratorExpression/CMakeLists.txt | 1 + Tests/GeneratorExpression/check-part3.cmake | 5 ++ Tests/RunCMake/CommandLine/RunCMakeTest.cmake | 10 +-- ...MPILE_LANG_AND_ID-add_custom_command-stderr.txt | 3 +- .../COMPILE_LANG_AND_ID-target_sources-stderr.txt | 3 +- Tests/RunCMake/PolicyScope/dir1/CMakeLists.txt | 2 +- Tests/RunCMake/Syntax/UnterminatedCall1-stderr.txt | 2 +- Tests/RunCMake/Syntax/UnterminatedCall1.cmake | 3 + Tests/RunCMake/Syntax/UnterminatedCall2-stderr.txt | 2 +- Tests/RunCMake/Syntax/UnterminatedCall2.cmake | 3 + .../VisibilityPreset/PropertyTypo-stderr.txt | 2 +- 25 files changed, 212 insertions(+), 88 deletions(-) create mode 100644 Help/release/dev/genex-comma-separated.rst hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org https://cmake.org/mailman/listinfo/cmake-commits