Merge topic 'find-package-required' 857a039d66 find_*: Add variable to default calls to REQUIRED Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !10364
diff --git a/.gitattributes b/.gitattributes index 8151ec8..0e7ab06 100644 --- a/.gitattributes +++ b/.gitattributes
@@ -4,6 +4,7 @@ .clang-tidy export-ignore .codespellrc export-ignore .editorconfig export-ignore +.pre-commit-config.yaml export-ignore .typos.toml export-ignore # Custom attribute to mark sources as using our C code style.
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c8c5bfd..ebe939d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml
@@ -830,10 +830,10 @@ needs: - b:linux-aarch64-package -b:sunos-i386-package: +b:sunos-x86_64-package: extends: - .sunos_package - - .sunos_release_i386 + - .sunos_release_x86_64 - .cmake_build_sunos_release - .cmake_release_artifacts - .linux_x86_64_tags @@ -841,19 +841,19 @@ needs: - p:doc-package variables: - CMAKE_CI_ARTIFACTS_NAME: "artifacts-sunos-i386" + CMAKE_CI_ARTIFACTS_NAME: "artifacts-sunos-x86_64" -u:sunos-i386-package: +u:sunos-x86_64-package: extends: - .rsync_upload_package - .run_only_for_package needs: - - b:sunos-i386-package + - b:sunos-x86_64-package -b:sunos-sparc-package: +b:sunos-sparc64-package: extends: - .sunos_package - - .sunos_release_sparc + - .sunos_release_sparc64 - .cmake_build_sunos_release - .cmake_release_artifacts - .linux_x86_64_tags @@ -861,14 +861,14 @@ needs: - p:doc-package variables: - CMAKE_CI_ARTIFACTS_NAME: "artifacts-sunos-sparc" + CMAKE_CI_ARTIFACTS_NAME: "artifacts-sunos-sparc64" -u:sunos-sparc-package: +u:sunos-sparc64-package: extends: - .rsync_upload_package - .run_only_for_package needs: - - b:sunos-sparc-package + - b:sunos-sparc64-package ## Sanitizer builds
diff --git a/.gitlab/artifacts.yml b/.gitlab/artifacts.yml index 0750634..97b8f38 100644 --- a/.gitlab/artifacts.yml +++ b/.gitlab/artifacts.yml
@@ -78,8 +78,8 @@ - ${CMAKE_CI_BUILD_DIR}/cmake-*-linux-x86_64.* - ${CMAKE_CI_BUILD_DIR}/cmake-*-linux-aarch64.* - ${CMAKE_CI_BUILD_DIR}/cmake-*-macos*-universal.* - - ${CMAKE_CI_BUILD_DIR}/cmake-*-sunos-i386.* - - ${CMAKE_CI_BUILD_DIR}/cmake-*-sunos-sparc.* + - ${CMAKE_CI_BUILD_DIR}/cmake-*-sunos-x86_64.* + - ${CMAKE_CI_BUILD_DIR}/cmake-*-sunos-sparc64.* - ${CMAKE_CI_BUILD_DIR}/cmake-*-windows-x86_64.* - ${CMAKE_CI_BUILD_DIR}/cmake-*-windows-i386.* - ${CMAKE_CI_BUILD_DIR}/cmake-*-windows-arm64.*
diff --git a/.gitlab/ci/configure_debian12_aarch64_ninja.cmake b/.gitlab/ci/configure_debian12_aarch64_ninja.cmake index d2a401e..00843d5 100644 --- a/.gitlab/ci/configure_debian12_aarch64_ninja.cmake +++ b/.gitlab/ci/configure_debian12_aarch64_ninja.cmake
@@ -1,13 +1,22 @@ set(CMake_TEST_C_STANDARDS "90;99;11;17;23" CACHE STRING "") set(CMake_TEST_CXX_STANDARDS "98;11;14;17;20;23" CACHE STRING "") +set(blas_lapack_cases + All + static=1 Generic + model=lp64 + static=0 thread=SEQ NVPL thread=OMP NVPL thread= NVPL + model=ilp64 + static=0 thread=SEQ NVPL thread=OMP NVPL thread= NVPL + ) + set(CMake_TEST_CTestUpdate_BZR "ON" CACHE BOOL "") set(CMake_TEST_CTestUpdate_CVS "ON" CACHE BOOL "") set(CMake_TEST_CTestUpdate_GIT "ON" CACHE BOOL "") set(CMake_TEST_CTestUpdate_HG "ON" CACHE BOOL "") set(CMake_TEST_CTestUpdate_SVN "ON" CACHE BOOL "") set(CMake_TEST_FindALSA "ON" CACHE BOOL "") -set(CMake_TEST_FindBLAS "All;static=1;Generic" CACHE STRING "") +set(CMake_TEST_FindBLAS "${blas_lapack_cases}" CACHE STRING "") set(CMake_TEST_FindBoost "ON" CACHE BOOL "") set(CMake_TEST_FindBoost_Python "ON" CACHE BOOL "") set(CMake_TEST_FindBZip2 "ON" CACHE BOOL "") @@ -51,7 +60,7 @@ set(CMake_TEST_FindJNI "ON" CACHE BOOL "") set(CMake_TEST_FindJPEG "ON" CACHE BOOL "") set(CMake_TEST_FindJsonCpp "ON" CACHE BOOL "") -set(CMake_TEST_FindLAPACK "All;static=1;Generic" CACHE STRING "") +set(CMake_TEST_FindLAPACK "${blas_lapack_cases}" CACHE STRING "") set(CMake_TEST_FindLibArchive "ON" CACHE BOOL "") set(CMake_TEST_FindLibinput "ON" CACHE BOOL "") set(CMake_TEST_FindLibLZMA "ON" CACHE BOOL "")
diff --git a/.gitlab/ci/configure_fedora41_asan.cmake b/.gitlab/ci/configure_fedora41_asan.cmake index df9f46d..4441792 100644 --- a/.gitlab/ci/configure_fedora41_asan.cmake +++ b/.gitlab/ci/configure_fedora41_asan.cmake
@@ -1,4 +1,5 @@ set(CMAKE_C_FLAGS "-fsanitize=address" CACHE STRING "") set(CMAKE_CXX_FLAGS "-fsanitize=address" CACHE STRING "") +set(CMake_QT_MAJOR_VERSION "5" CACHE STRING "") include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora41_common.cmake")
diff --git a/.gitlab/ci/configure_fedora41_clang_analyzer.cmake b/.gitlab/ci/configure_fedora41_clang_analyzer.cmake index cdeaab4..4a518d0 100644 --- a/.gitlab/ci/configure_fedora41_clang_analyzer.cmake +++ b/.gitlab/ci/configure_fedora41_clang_analyzer.cmake
@@ -1,3 +1,4 @@ set(configure_no_sccache 1) +set(CMake_QT_MAJOR_VERSION "5" CACHE STRING "") include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora41_common.cmake")
diff --git a/.gitlab/ci/configure_fedora41_common.cmake b/.gitlab/ci/configure_fedora41_common.cmake index 4484e26..dee78ab 100644 --- a/.gitlab/ci/configure_fedora41_common.cmake +++ b/.gitlab/ci/configure_fedora41_common.cmake
@@ -1,6 +1,5 @@ set(BUILD_CursesDialog ON CACHE BOOL "") set(BUILD_QtDialog ON CACHE BOOL "") -set(CMake_QT_MAJOR_VERSION "5" CACHE STRING "") set(CMake_TEST_JQ "/usr/bin/jq" CACHE PATH "") set(CMake_TEST_JSON_SCHEMA ON CACHE BOOL "")
diff --git a/.gitlab/ci/configure_fedora41_makefiles_symlinked.cmake b/.gitlab/ci/configure_fedora41_makefiles_symlinked.cmake index e4434c1..317de3a 100644 --- a/.gitlab/ci/configure_fedora41_makefiles_symlinked.cmake +++ b/.gitlab/ci/configure_fedora41_makefiles_symlinked.cmake
@@ -1,2 +1,5 @@ +set(CMake_QT_MAJOR_VERSION "6" CACHE STRING "") +set(CMake_TEST_GUI "ON" CACHE BOOL "") + include("${CMAKE_CURRENT_LIST_DIR}/configure_symlinked_common.cmake") include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora41_common.cmake")
diff --git a/.gitlab/ci/configure_fedora41_ninja.cmake b/.gitlab/ci/configure_fedora41_ninja.cmake index 217d24a..9bef7e8 100644 --- a/.gitlab/ci/configure_fedora41_ninja.cmake +++ b/.gitlab/ci/configure_fedora41_ninja.cmake
@@ -14,5 +14,7 @@ # Cover compilation with C++11 only and not higher standards. set(CMAKE_CXX_STANDARD "11" CACHE STRING "") +# Qt 6 requires C++17, so use Qt 5. +set(CMake_QT_MAJOR_VERSION "5" CACHE STRING "") include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora41_common.cmake")
diff --git a/.gitlab/ci/configure_fedora41_tidy.cmake b/.gitlab/ci/configure_fedora41_tidy.cmake index 40bde10..664b4f1 100644 --- a/.gitlab/ci/configure_fedora41_tidy.cmake +++ b/.gitlab/ci/configure_fedora41_tidy.cmake
@@ -2,5 +2,6 @@ set(CMake_USE_CLANG_TIDY_MODULE ON CACHE BOOL "") set(CMake_CLANG_TIDY_MODULE "$ENV{CI_PROJECT_DIR}/Utilities/ClangTidyModule/build/libcmake-clang-tidy-module.so" CACHE FILEPATH "") set(CMake_CLANG_TIDY_EXPORT_FIXES_DIR "$ENV{CI_PROJECT_DIR}/.gitlab/clang-tidy-fixes" CACHE PATH "") +set(CMake_QT_MAJOR_VERSION "5" CACHE STRING "") include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora41_common.cmake")
diff --git a/.gitlab/ci/docker/debian12-aarch64/Dockerfile b/.gitlab/ci/docker/debian12-aarch64/Dockerfile index 58b5e0e..2344ce5 100644 --- a/.gitlab/ci/docker/debian12-aarch64/Dockerfile +++ b/.gitlab/ci/docker/debian12-aarch64/Dockerfile
@@ -2,7 +2,15 @@ ARG BASE_IMAGE=arm64v8/debian:12 -FROM ${BASE_IMAGE} AS apt-cache +FROM ${BASE_IMAGE} AS cuda-keyring +ADD https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/sbsa/cuda-keyring_1.1-1_all.deb /root/ +RUN --mount=type=tmpfs,target=/var/log \ + apt-get update \ + && apt-get -y install ca-certificates \ + && dpkg -i /root/cuda-keyring_1.1-1_all.deb \ + && rm /root/cuda-keyring_1.1-1_all.deb + +FROM cuda-keyring AS apt-cache # Populate APT cache w/ the fresh metadata and prefetch packages. # Use an empty `docker-clean` file to "hide" the image-provided # file to disallow removing packages after `apt-get` operations. @@ -12,7 +20,7 @@ apt-get update \ && apt-get --download-only -y install $(grep -h '^[^#]\+$' /root/*.lst) -FROM ${BASE_IMAGE} +FROM cuda-keyring LABEL maintainer="Brad King <brad.king@kitware.com>" RUN --mount=type=bind,source=install_deps.sh,target=/root/install_deps.sh \
diff --git a/.gitlab/ci/docker/debian12-aarch64/deps_packages.lst b/.gitlab/ci/docker/debian12-aarch64/deps_packages.lst index c92c715..f953a74 100644 --- a/.gitlab/ci/docker/debian12-aarch64/deps_packages.lst +++ b/.gitlab/ci/docker/debian12-aarch64/deps_packages.lst
@@ -69,6 +69,9 @@ liblapack-dev liblzma-dev libmagick++-dev +libnvpl-blas-dev +libnvpl-common-dev +libnvpl-lapack-dev libopenal-dev libopenmpi-dev openmpi-bin libosp-dev
diff --git a/.gitlab/os-linux.yml b/.gitlab/os-linux.yml index 93223bb..d9164e2 100644 --- a/.gitlab/os-linux.yml +++ b/.gitlab/os-linux.yml
@@ -30,19 +30,19 @@ variables: BOOTSTRAP_ARGS: '-- "-DCMake_DOC_ARTIFACT_PREFIX=$CI_PROJECT_DIR/build/install-doc"' -.sunos_release_i386: - image: "kitware/cmake:build-sunos-i386-deps-2025-02-14" +.sunos_release_x86_64: + image: "kitware/cmake:build-sunos-x86_64-deps-2025-02-27" variables: GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" - CMAKE_ARCH: i386 + CMAKE_ARCH: x86_64 -.sunos_release_sparc: - image: "kitware/cmake:build-sunos-sparc-deps-2025-02-14" +.sunos_release_sparc64: + image: "kitware/cmake:build-sunos-sparc64-deps-2025-02-27" variables: GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" - CMAKE_ARCH: sparc + CMAKE_ARCH: sparc64 .sunos_package: variables: @@ -74,7 +74,7 @@ CMAKE_CI_NO_INSTALL: 1 .debian12_aarch64: - image: "kitware/cmake:ci-debian12-aarch64-2023-07-27" + image: "kitware/cmake:ci-debian12-aarch64-2025-02-24" variables: GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
diff --git a/CMakeCPack.cmake b/CMakeCPack.cmake index a0c0e54..69ef0a8 100644 --- a/CMakeCPack.cmake +++ b/CMakeCPack.cmake
@@ -28,7 +28,7 @@ # - Root install directory (displayed to end user at installer-run time) # - "NSIS package/display name" (text used in the installer GUI) # - Registry key used to store info about the installation -if(CMAKE_CL_64) +if(CMAKE_SIZEOF_VOID_P EQUAL 8) set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64") set(CPACK_NSIS_PACKAGE_NAME "${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION} (Win64)") else() @@ -40,18 +40,10 @@ if(NOT DEFINED CPACK_SYSTEM_NAME) # make sure package is not Cygwin-unknown, for Cygwin just # cygwin is good for the system name - if("x${CMAKE_SYSTEM_NAME}" STREQUAL "xCYGWIN") - set(CPACK_SYSTEM_NAME Cygwin) + if(CMAKE_SYSTEM_NAME STREQUAL "CYGWIN") + set(CPACK_SYSTEM_NAME cygwin) else() - set(CPACK_SYSTEM_NAME ${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}) - endif() -endif() -if(${CPACK_SYSTEM_NAME} MATCHES Windows) - if(CMAKE_CL_64) - set(CPACK_SYSTEM_NAME win64-x64) - set(CPACK_IFW_TARGET_DIRECTORY "@RootDir@/Program Files/${CMAKE_PROJECT_NAME}") - else() - set(CPACK_SYSTEM_NAME win32-x86) + string(TOLOWER "${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}" CPACK_SYSTEM_NAME) endif() endif() @@ -166,7 +158,7 @@ _cmifwarg("Package <Licenses> tag (pairs of <display_name> <file_path>)" STRING LICENSES "${${_cpifwrc}LICENSES_DEFAULT}") -if(${CMAKE_SYSTEM_NAME} MATCHES Windows) +if(CMAKE_SYSTEM_NAME STREQUAL "Windows") set(_CPACK_IFW_PACKAGE_ICON "set(CPACK_IFW_PACKAGE_ICON \"${CMake_SOURCE_DIR}/Source/QtDialog/CMakeSetup.ico\")") if(BUILD_QtDialog) @@ -185,9 +177,11 @@ ) endif() -if(${CMAKE_SYSTEM_NAME} MATCHES Linux) +if(CMAKE_SYSTEM_NAME STREQUAL "Linux") set(CPACK_IFW_TARGET_DIRECTORY "@HomeDir@/${CMAKE_PROJECT_NAME}") set(CPACK_IFW_ADMIN_TARGET_DIRECTORY "@ApplicationsDir@/${CMAKE_PROJECT_NAME}") +elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") + set(CPACK_IFW_TARGET_DIRECTORY "@RootDir@/Program Files/${CMAKE_PROJECT_NAME}") endif() # Components scripts configuration
diff --git a/CMakeLists.txt b/CMakeLists.txt index ca0d5ab..2e1dfe1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt
@@ -325,8 +325,8 @@ unset(clang_tidy_module_sha1) endif() + configure_file(.clang-tidy .clang-tidy COPYONLY) endif() -configure_file(.clang-tidy .clang-tidy COPYONLY) option(CMake_RUN_IWYU "Run include-what-you-use with the compiler." OFF)
diff --git a/Copyright.txt b/Copyright.txt index f32a818..fe51320 100644 --- a/Copyright.txt +++ b/Copyright.txt
@@ -68,7 +68,7 @@ * Jordan Williams <jordan@jwillikers.com> * Julien Schueller * Kelly Thompson <kgt@lanl.gov> -* Konstantin Podsvirov <konstantin@podsvirov.pro> +* Konstantin Podsvirov <konstantin@podsvirov.su> * Laurent Montel <montel@kde.org> * Mario Bensi <mbensi@ipsquad.net> * Martin Gräßlin <mgraesslin@kde.org>
diff --git a/Help/command/add_dependencies.rst b/Help/command/add_dependencies.rst index 3a51a30..b0dd494 100644 --- a/Help/command/add_dependencies.rst +++ b/Help/command/add_dependencies.rst
@@ -5,7 +5,7 @@ .. code-block:: cmake - add_dependencies(<target> [<target-dependency>]...) + add_dependencies(<target> <target-dependency>...) Makes a top-level ``<target>`` depend on other top-level targets to ensure that they build before ``<target>`` does. A top-level target @@ -31,6 +31,10 @@ finished before sources in ``<target>`` start compiling; this ensures generated sources are available. +.. versionchanged:: 4.1 + The command may be called with no dependencies. + Previously, at least one dependency was required. + See Also ^^^^^^^^
diff --git a/Help/command/export.rst b/Help/command/export.rst index 349522e..1427d89 100644 --- a/Help/command/export.rst +++ b/Help/command/export.rst
@@ -89,10 +89,10 @@ .. versionadded:: 3.7 -This signature exports cmake built targets to the android ndk build system +This signature exports CMake built targets to the android ndk build system by creating an ``Android.mk`` file that references the prebuilt targets. The Android NDK supports the use of prebuilt libraries, both static and shared. -This allows cmake to build the libraries of a project and make them available +This allows CMake to build the libraries of a project and make them available to an ndk build system complete with transitive dependencies, include flags and defines required to use the libraries. The signature takes a list of targets and puts them in the ``Android.mk`` file specified by the @@ -127,6 +127,36 @@ Specify that :command:`find_dependency` calls should be exported. See :command:`install(EXPORT)` for details on how this works. +Exporting Targets to the |CPS| +"""""""""""""""""""""""""""""" + +.. code-block:: cmake + + export(EXPORT <export-name> PACKAGE_INFO <package-name> + [APPENDIX <appendix-name>] + [LOWER_CASE_FILE] + [VERSION <version> + [COMPAT_VERSION <version>] + [VERSION_SCHEMA <string>]] + [DEFAULT_TARGETS <target>...] + [DEFAULT_CONFIGURATIONS <config>...]) + +.. versionadded:: 4.1 +.. note:: + + Experimental. Gated by ``CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_INFO``. + +Creates a file in the |CPS|_ that may be included by outside projects to import +targets named by ``<target>...`` from the current project's build tree. See +the :command:`install(PACKAGE_INFO)` command to export targets from an install +tree. The imported targets are implicitly in the namespace ``<package-name>``. + +The default file name is ``<package-name>[-<appendix-name>].cps``. If the +``LOWER_CASE_FILE`` option is given, the file name will use the package name +converted to lower case. + +See :command:`install(PACKAGE_INFO)` for a description of the other options. + Exporting Packages ^^^^^^^^^^^^^^^^^^ @@ -221,3 +251,6 @@ this target. If specified, the generated code will check to see if the ``.xcframework`` exists, and if it does, it will use the ``.xcframework`` as its imported location instead of the installed library. + +.. _CPS: https://cps-org.github.io/cps/ +.. |CPS| replace:: Common Package Specification
diff --git a/Help/envvar/CMAKE_POLICY_VERSION_MINIMUM.rst b/Help/envvar/CMAKE_POLICY_VERSION_MINIMUM.rst new file mode 100644 index 0000000..0521f5c --- /dev/null +++ b/Help/envvar/CMAKE_POLICY_VERSION_MINIMUM.rst
@@ -0,0 +1,11 @@ +CMAKE_POLICY_VERSION_MINIMUM +---------------------------- + +.. versionadded:: 4.0 + +.. include:: ENV_VAR.txt + +The default value for :variable:`CMAKE_POLICY_VERSION_MINIMUM` when there +is no explicit configuration given on the first run while creating a new +build tree. On later runs in an existing build tree the value persists in +the cache as :variable:`CMAKE_POLICY_VERSION_MINIMUM`.
diff --git a/Help/manual/cmake-env-variables.7.rst b/Help/manual/cmake-env-variables.7.rst index 140fc83..198e71f 100644 --- a/Help/manual/cmake-env-variables.7.rst +++ b/Help/manual/cmake-env-variables.7.rst
@@ -27,6 +27,7 @@ /envvar/CMAKE_INCLUDE_PATH /envvar/CMAKE_LIBRARY_PATH /envvar/CMAKE_MAXIMUM_RECURSION_DEPTH + /envvar/CMAKE_POLICY_VERSION_MINIMUM /envvar/CMAKE_PREFIX_PATH /envvar/CMAKE_PROGRAM_PATH /envvar/CMAKE_TLS_VERIFY
diff --git a/Help/manual/cmake-generator-expressions.7.rst b/Help/manual/cmake-generator-expressions.7.rst index f434e55..2e576c1 100644 --- a/Help/manual/cmake-generator-expressions.7.rst +++ b/Help/manual/cmake-generator-expressions.7.rst
@@ -1919,7 +1919,10 @@ :prop_tgt:`INTERFACE_LINK_LIBRARIES` *including* entries guarded by the :genex:`LINK_ONLY` generator expression. See policy :policy:`CMP0166`. - Evaluation of :prop_tgt:`LINK_LIBRARIES` itself is not transitive. + .. versionchanged:: 4.1 + + Evaluation of :prop_tgt:`LINK_LIBRARIES` itself is now transitive. + See policy :policy:`CMP0189`. :ref:`Target Usage Requirement Properties <Target Usage Requirements>` These evaluate as a :ref:`semicolon-separated list <CMake Language Lists>` @@ -1936,7 +1939,10 @@ *including* entries guarded by the :genex:`LINK_ONLY` generator expression. See policy :policy:`CMP0166`. - Evaluation of :prop_tgt:`INTERFACE_LINK_LIBRARIES` itself is not transitive. + .. versionchanged:: 4.1 + + Evaluation of :prop_tgt:`INTERFACE_LINK_LIBRARIES` itself is now + transitive. See policy :policy:`CMP0189`. :ref:`Custom Transitive Properties` .. versionadded:: 3.30
diff --git a/Help/manual/cmake-instrumentation.7.rst b/Help/manual/cmake-instrumentation.7.rst index d36bf62..2a16a55 100644 --- a/Help/manual/cmake-instrumentation.7.rst +++ b/Help/manual/cmake-instrumentation.7.rst
@@ -369,7 +369,7 @@ { "version": 1, - "command" : "/usr/bin/c++ -MD -MT CMakeFiles/main.dir/main.cxx.o -MF CMakeFiles/main.dir/main.cxx.o.d -o CMakeFiles/main.dir/main.cxx.o -c <src>/main.cxx", + "command" : "\"/usr/bin/c++\" \"-MD\" \"-MT\" \"CMakeFiles/main.dir/main.cxx.o\" \"-MF\" \"CMakeFiles/main.dir/main.cxx.o.d\" \"-o\" \"CMakeFiles/main.dir/main.cxx.o\" \"-c\" \"<src>/main.cxx\"", "role" : "compile", "return" : 1, "target": "main",
diff --git a/Help/manual/cmake-policies.7.rst b/Help/manual/cmake-policies.7.rst index 7c46a2a..e546ee1 100644 --- a/Help/manual/cmake-policies.7.rst +++ b/Help/manual/cmake-policies.7.rst
@@ -98,6 +98,7 @@ .. toctree:: :maxdepth: 1 + CMP0189: TARGET_PROPERTY evaluates LINK_LIBRARIES properties transitively. </policy/CMP0189> CMP0188: The FindGCCXML module is removed. </policy/CMP0188> CMP0187: Include source file without an extension after the same name with an extension. </policy/CMP0187> CMP0186: Regular expressions match ^ at most once in repeated searches. </policy/CMP0186>
diff --git a/Help/policy/CMP0189.rst b/Help/policy/CMP0189.rst new file mode 100644 index 0000000..c15217c --- /dev/null +++ b/Help/policy/CMP0189.rst
@@ -0,0 +1,30 @@ +CMP0189 +------- + +.. versionadded:: 4.1 + +:genex:`TARGET_PROPERTY` evaluates ``LINK_LIBRARIES`` properties transitively. + +The :prop_tgt:`LINK_LIBRARIES` and :prop_tgt:`INTERFACE_LINK_LIBRARIES` +target properties record link dependencies through which the +:genex:`TARGET_PROPERTY` generator expression evaluates transitive properties. +However, in CMake 4.0 and below, the properties themselves were not evaluated +transitively. CMake 4.1 and above prefer to evaluate the +:prop_tgt:`LINK_LIBRARIES` and :prop_tgt:`INTERFACE_LINK_LIBRARIES` +target properties transitively because they are among the +:ref:`build specification <Target Build Specification>` and +:ref:`usage requirement <Target Usage Requirements>` properties, respectively. +This policy provides compatibility for projects that have not been updated to +expect the new behavior. + +The ``OLD`` behavior of this policy is for :genex:`TARGET_PROPERTY` to not +evaluate :prop_tgt:`LINK_LIBRARIES` and :prop_tgt:`INTERFACE_LINK_LIBRARIES` +transitively. The ``NEW`` behavior is for :genex:`TARGET_PROPERTY` to +evaluate :prop_tgt:`LINK_LIBRARIES` and :prop_tgt:`INTERFACE_LINK_LIBRARIES` +transitively. + +.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 4.1 +.. |WARNS_OR_DOES_NOT_WARN| replace:: does *not* warn +.. include:: STANDARD_ADVICE.txt + +.. include:: DEPRECATED.txt
diff --git a/Help/release/3.30.rst b/Help/release/3.30.rst index ad21c46..bcd4ac1 100644 --- a/Help/release/3.30.rst +++ b/Help/release/3.30.rst
@@ -302,8 +302,8 @@ directories that call :command:`project` with the same project name, and it addresses the bug in the implementation introduced in 3.30.4. -3.30.6, 3.30.7 --------------- +3.30.6, 3.30.7, 3.30.8 +---------------------- * These versions made no changes to documented features or interfaces. Some implementation updates were made to support ecosystem changes
diff --git a/Help/release/3.31.rst b/Help/release/3.31.rst index 32040da..4790415 100644 --- a/Help/release/3.31.rst +++ b/Help/release/3.31.rst
@@ -263,8 +263,8 @@ Changes made since CMake 3.31.0 include the following. -3.31.1, 3.31.2, 3.31.3, 3.31.4, 3.31.5 --------------------------------------- +3.31.1, 3.31.2, 3.31.3, 3.31.4, 3.31.5, 3.31.6 +---------------------------------------------- * These versions made no changes to documented features or interfaces. Some implementation updates were made to support ecosystem changes
diff --git a/Help/release/4.0.rst b/Help/release/4.0.rst index a7a7860..95b1c0b 100644 --- a/Help/release/4.0.rst +++ b/Help/release/4.0.rst
@@ -75,6 +75,8 @@ * The :variable:`CMAKE_POLICY_VERSION_MINIMUM` variable was added to help packagers and end users try to configure existing projects that have not been updated to work with supported CMake versions. + The :envvar:`CMAKE_POLICY_VERSION_MINIMUM` environment variable was + added to initialize it. * The :variable:`CMAKE_XCODE_SCHEME_LLDB_INIT_FILE` variable and corresponding :prop_tgt:`XCODE_SCHEME_LLDB_INIT_FILE` target property were added to tell @@ -237,7 +239,7 @@ or ``TRACE`` via the :option:`cmake --log-level` option or the :variable:`CMAKE_MESSAGE_LOG_LEVEL` cache variable. -* Precompiled SunOS ``sparc`` and ``i386`` binaries are now provided +* Precompiled SunOS ``sparc64`` and ``x86_64`` binaries are now provided on `cmake.org`_. .. _`cmake.org`: https://cmake.org/download/
diff --git a/Help/release/dev/add-dependency-one-arg.rst b/Help/release/dev/add-dependency-one-arg.rst new file mode 100644 index 0000000..e077258 --- /dev/null +++ b/Help/release/dev/add-dependency-one-arg.rst
@@ -0,0 +1,4 @@ +add-dependency-one-arg +---------------------- + +* The :command:`add_dependencies` command may be called with no dependencies.
diff --git a/Help/release/dev/genex-transitive-link-libraries.rst b/Help/release/dev/genex-transitive-link-libraries.rst new file mode 100644 index 0000000..d5cbb90 --- /dev/null +++ b/Help/release/dev/genex-transitive-link-libraries.rst
@@ -0,0 +1,6 @@ +genex-transitive-link-libraries +------------------------------- + +* The :genex:`TARGET_PROPERTY` generator expression now evaluates the + :prop_tgt:`LINK_LIBRARIES` and :prop_tgt:`INTERFACE_LINK_LIBRARIES` + target properties transitively. See policy :policy:`CMP0189`.
diff --git a/Help/release/dev/nvpl-support.rst b/Help/release/dev/nvpl-support.rst new file mode 100644 index 0000000..e8e5791 --- /dev/null +++ b/Help/release/dev/nvpl-support.rst
@@ -0,0 +1,5 @@ +NVPL Support +------------ + +* The :module:`FindBLAS` and :module:`FindLAPACK` modules now support the + NVIDIA Performance Libraries (NVPL).
diff --git a/Help/variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION.rst b/Help/variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION.rst index 98c2a8f..92758fd 100644 --- a/Help/variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION.rst +++ b/Help/variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION.rst
@@ -6,13 +6,13 @@ The sorting direction used by :variable:`CMAKE_FIND_PACKAGE_SORT_ORDER`. It can assume one of the following values: -``DEC`` - Default. Ordering is done in descending mode. - The highest folder found will be tested first. - ``ASC`` - Ordering is done in ascending mode. + Default. Ordering is done in ascending mode. The lowest folder found will be tested first. +``DEC`` + Ordering is done in descending mode. + The highest folder found will be tested first. + If :variable:`CMAKE_FIND_PACKAGE_SORT_ORDER` is not set or is set to ``NONE`` this variable has no effect.
diff --git a/Help/variable/CMAKE_POLICY_VERSION_MINIMUM.rst b/Help/variable/CMAKE_POLICY_VERSION_MINIMUM.rst index cf48ecf..d1fa143 100644 --- a/Help/variable/CMAKE_POLICY_VERSION_MINIMUM.rst +++ b/Help/variable/CMAKE_POLICY_VERSION_MINIMUM.rst
@@ -16,6 +16,10 @@ ``-DCMAKE_POLICY_VERSION_MINIMUM=3.5``, to try configuring a project that has not been updated to set at least that policy version itself. + Alternatively, users may set the :envvar:`CMAKE_POLICY_VERSION_MINIMUM` + environment variable to initialize the cache entry in new build trees + automatically. + * Projects may set this variable before a call to :command:`add_subdirectory` that adds a third-party project in order to set its policy version without modifying third-party code.
diff --git a/Modules/FindBLAS.cmake b/Modules/FindBLAS.cmake index 6d60c9d..b655abe 100644 --- a/Modules/FindBLAS.cmake +++ b/Modules/FindBLAS.cmake
@@ -54,6 +54,21 @@ Search for any BLAS/LAPACK. Most likely, a BLAS/LAPACK with 32-bit integer interfaces will be found. +``BLA_THREAD`` + .. versionadded:: 4.1 + + Specify the BLAS/LAPACK threading model: + + ``SEQ`` + Sequential model + ``OMP`` + OpenMP model + ``ANY`` + Search for any BLAS/LAPACK, if both are available most likely ``OMP`` will + be found. + + This is currently only supported by NVIDIA NVPL. + Imported Targets ^^^^^^^^^^^^^^^^ @@ -169,6 +184,11 @@ A BLAS/LAPACK demuxing library using PLT trampolines +``NVPL`` + .. versionadded:: 4.1 + + NVIDIA Performance Libraries + ``NVHPC`` .. versionadded:: 3.21 @@ -417,6 +437,16 @@ message(FATAL_ERROR "BLA_SIZEOF_INTEGER can have only <no value>, ANY, 4, or 8 values") endif() +if(NOT BLA_THREAD) + set(_blas_thread "ANY") +elseif((BLA_THREAD STREQUAL "ANY") OR + (BLA_THREAD STREQUAL "SEQ") OR + (BLA_THREAD STREQUAL "OMP")) + set(_blas_thread ${BLA_THREAD}) +else() + message(FATAL_ERROR "BLA_THREAD can have only <no value>, ANY, SEQ, or OMP values") +endif() + # Implicitly linked BLAS libraries? if(BLA_VENDOR STREQUAL "All") if(NOT BLAS_LIBRARIES) @@ -1315,6 +1345,52 @@ unset(_blas_fjlapack_lib) endif() +# nVidia NVPL? (https://developer.nvidia.com/nvpl) +if(BLA_VENDOR STREQUAL "NVPL" OR BLA_VENDOR STREQUAL "All") + # Prefer lp64 unless ilp64 is requested. + if((_blas_sizeof_integer EQUAL 4) OR (_blas_sizeof_integer STREQUAL "ANY")) + list(APPEND _blas_nvpl_ints "_lp64") + endif() + if((_blas_sizeof_integer EQUAL 8) OR (_blas_sizeof_integer STREQUAL "ANY")) + list(APPEND _blas_nvpl_ints "_ilp64") + endif() + + # Prefer OMP if available + if((_blas_thread STREQUAL "OMP") OR (_blas_thread STREQUAL "ANY")) + list(APPEND _blas_nvpl_threads "_omp") + endif() + if((_blas_thread STREQUAL "SEQ") OR (_blas_thread STREQUAL "ANY")) + list(APPEND _blas_nvpl_threads "_seq") + endif() + + if(NOT BLAS_LIBRARIES) + find_package(nvpl) + if(nvpl_FOUND) + foreach(_nvpl_thread IN LISTS _blas_nvpl_threads) + foreach(_nvpl_int IN LISTS _blas_nvpl_ints) + + set(_blas_lib "nvpl::blas${_nvpl_int}${_nvpl_thread}") + + if(TARGET ${_blas_lib}) + set(BLAS_LIBRARIES ${_blas_lib}) + break() + endif() + + endforeach() + + if(BLAS_LIBRARIES) + break() + endif() + + endforeach() + endif() + endif() + + unset(_blas_lib) + unset(_blas_nvpl_ints) + unset(_blas_nvpl_threads) +endif() + # BLAS in nVidia HPC SDK? (https://developer.nvidia.com/hpc-sdk) if(BLA_VENDOR STREQUAL "NVHPC" OR BLA_VENDOR STREQUAL "All") set(_blas_nvhpc_lib "blas")
diff --git a/Modules/FindLAPACK.cmake b/Modules/FindLAPACK.cmake index 8c9d0b4..92c6295 100644 --- a/Modules/FindLAPACK.cmake +++ b/Modules/FindLAPACK.cmake
@@ -55,6 +55,21 @@ Search for any BLAS/LAPACK. Most likely, a BLAS/LAPACK with 32-bit integer interfaces will be found. +``BLA_THREAD`` + .. versionadded:: 4.1 + + Specify the BLAS/LAPACK threading model: + + ``SEQ`` + Sequential model + ``OMP`` + OpenMP model + ``ANY`` + Search for any BLAS/LAPACK, if both are available most likely ``OMP`` will + be found. + + This is currently only supported by NVIDIA NVPL. + Imported Targets ^^^^^^^^^^^^^^^^ @@ -278,6 +293,16 @@ message(FATAL_ERROR "BLA_SIZEOF_INTEGER can have only <no value>, ANY, 4, or 8 values") endif() +if(NOT BLA_THREAD) + set(_lapack_thread "ANY") +elseif((BLA_THREAD STREQUAL "ANY") OR + (BLA_THREAD STREQUAL "SEQ") OR + (BLA_THREAD STREQUAL "OMP")) + set(_lapack_thread ${BLA_THREAD}) +else() + message(FATAL_ERROR "BLA_THREAD can have only <no value>, ANY, SEQ, or OMP values") +endif() + # Load BLAS if(NOT LAPACK_NOT_FOUND_MESSAGE) _lapack_find_dependency(BLAS) @@ -693,6 +718,51 @@ endif() endif() + # nVidia NVPL? (https://developer.nvidia.com/nvpl) + if(NOT LAPACK_LIBRARIES + AND (BLA_VENDOR MATCHES "NVPL" OR BLA_VENDOR STREQUAL "All")) + # Prefer lp64 unless ilp64 is requested. + if((_lapack_sizeof_integer EQUAL 4) OR (_lapack_sizeof_integer STREQUAL "ANY")) + list(APPEND _lapack_nvpl_ints "_lp64") + endif() + if((_lapack_sizeof_integer EQUAL 8) OR (_lapack_sizeof_integer STREQUAL "ANY")) + list(APPEND _lapack_nvpl_ints "_ilp64") + endif() + + # Prefer OMP if available + if((_lapack_thread STREQUAL "OMP") OR (_lapack_thread STREQUAL "ANY")) + list(APPEND _lapack_nvpl_threads "_omp") + endif() + if((_lapack_thread STREQUAL "SEQ") OR (_lapack_thread STREQUAL "ANY")) + list(APPEND _lapack_nvpl_threads "_seq") + endif() + + find_package(nvpl) + if(nvpl_FOUND) + foreach(_nvpl_thread IN LISTS _lapack_nvpl_threads) + foreach(_nvpl_int IN LISTS _lapack_nvpl_ints) + + set(_lapack_lib "nvpl::lapack${_nvpl_int}${_nvpl_thread}") + + if(TARGET ${_lapack_lib}) + set(LAPACK_LIBRARIES ${_lapack_lib}) + break() + endif() + + endforeach() + + if(LAPACK_LIBRARIES) + break() + endif() + + endforeach() + endif() + + unset(_lapack_lib) + unset(_lapack_nvpl_ints) + unset(_lapack_nvpl_threads) + endif() + # NVHPC Library? if(NOT LAPACK_LIBRARIES
diff --git a/Modules/FindwxWidgets.cmake b/Modules/FindwxWidgets.cmake index 84ef567..903c508 100644 --- a/Modules/FindwxWidgets.cmake +++ b/Modules/FindwxWidgets.cmake
@@ -963,6 +963,10 @@ foreach(_wx_lib_ ${wxWidgets_LIBRARIES}) if("${_wx_lib_}" MATCHES "^-l(.*)") set(_wx_lib_name "${CMAKE_MATCH_1}") + if(_wx_lib_name STREQUAL "atomic") + continue() + endif() + unset(_wx_lib_found CACHE) find_library(_wx_lib_found NAMES ${_wx_lib_name} HINTS ${wxWidgets_LIBRARY_DIRS}) if(_wx_lib_found STREQUAL _wx_lib_found-NOTFOUND)
diff --git a/Modules/Internal/CPack/NSIS.template.in b/Modules/Internal/CPack/NSIS.template.in index 6349f9d..c0b61e3 100644 --- a/Modules/Internal/CPack/NSIS.template.in +++ b/Modules/Internal/CPack/NSIS.template.in
@@ -923,8 +923,9 @@ ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "UninstallString" StrCmp $0 "" inst + ReadRegStr $1 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "DisplayName" MessageBox MB_YESNOCANCEL|MB_ICONEXCLAMATION \ - "@CPACK_NSIS_PACKAGE_NAME@ is already installed. $\n$\nDo you want to uninstall the old version before installing the new one?" \ + "$1 is already installed. $\n$\nDo you want to uninstall the old version before installing the new one?" \ /SD IDYES IDYES uninst IDNO inst Abort
diff --git a/Modules/UseEcos.cmake b/Modules/UseEcos.cmake index 0b07723..e2cdd7c 100644 --- a/Modules/UseEcos.cmake +++ b/Modules/UseEcos.cmake
@@ -7,39 +7,120 @@ This module defines variables and macros required to build eCos application. -This file contains the following macros: +Macros +^^^^^^ -``ECOS_ADD_INCLUDE_DIRECTORIES()`` - add the eCos include dirs -``ECOS_ADD_EXECUTABLE(name source1 ... sourceN )`` - create an eCos executable -``ECOS_ADJUST_DIRECTORY(VAR source1 ... sourceN )`` - adjusts the path of the source files and puts the result into ``VAR`` +This module defines the following macros: + +.. command:: ecos_add_include_directories + + .. code-block:: cmake + + ecos_add_include_directories() + + Adds the eCos include directories for the current `CMakeLists.txt` file. + +.. command:: ecos_adjust_directory + + .. code-block:: cmake + + ecos_adjust_directory(<var> <sources>...) + + Adjusts the paths of given source files ``<sources>...`` and stores them into + a result variable named ``<var>``. + + ``<var>`` + Result variable name holding a new list of source files with adjusted paths. + ``<sources>...`` + A list of relative or absolute source files to adjust their paths. + + Use this macro when the actual sources are located one level upwards. A + ``../`` has to be prepended in front of every source file that is given as a + relative path. + +.. command:: ecos_add_executable + + .. code-block:: cmake + + ecos_add_executable(<name> <sources>...) + + Creates an eCos application executable. + + ``<name>`` + The name of the executable. + ``<sources>...`` + A list of all source files, where the path has been adjusted beforehand by + calling the ``ecos_adjust_directory()``. + + This macro also sets the ``ECOS_DEFINITIONS`` local variable, holding some + common compile definitions. Macros for selecting the toolchain: -``ECOS_USE_ARM_ELF_TOOLS()`` - enable the ARM ELF toolchain for the directory where it is called -``ECOS_USE_I386_ELF_TOOLS()`` - enable the i386 ELF toolchain for the directory where it is called -``ECOS_USE_PPC_EABI_TOOLS()`` - enable the PowerPC toolchain for the directory where it is called +.. command:: ecos_use_arm_elf_tools -It contains the following variables: + .. code-block:: cmake -``ECOS_DEFINITIONS`` + ecos_use_arm_elf_tools() + + Enables the ARM ELF toolchain for the directory where it is called. Use this + macro, when compiling for the xscale processor. + +.. command:: ecos_use_i386_elf_tools + + .. code-block:: cmake + + ecos_use_i386_elf_tools() + + Enables the i386 ELF toolchain for the directory where it is called. + +.. command:: ecos_use_ppc_eabi_tools + + .. code-block:: cmake + + ecos_use_ppc_eabi_tools() + + Enables the PowerPC toolchain for the directory where it is called. + +Variables +^^^^^^^^^ + +Module also defines the following variables: ``ECOSCONFIG_EXECUTABLE`` + Cache variable that contains a path to the ``ecosconfig`` executable (the eCos + configuration program). ``ECOS_CONFIG_FILE`` - defaults to ecos.ecc, if your eCos configuration file has a different name, adjust this variable for internal use only: + A local variable that defaults to ``ecos.ecc``. If eCos configuration file + has a different name, adjust this variable before calling the + ``ecos_add_executable()``. -:: +Examples +^^^^^^^^ - ECOS_ADD_TARGET_LIB +.. code-block:: cmake + + # CMakeLists.txt + + include(UseEcos) + + # Add the eCos include directories. + ecos_add_include_directories() + + # Include the file with the eCos sources list. This file, for example, defines + # a list of eCos sources: + # set(sources file_1.cxx file_2.cxx file_3.cxx) + include(../ProjectSources.txt) + + # When using such directory structure, relative source paths must be adjusted: + ecos_adjust_directory(adjusted_sources ${sources}) + + # Create eCos executable. + ecos_add_executable(ecos_app ${adjusted_sources}) #]=======================================================================] -# first check that ecosconfig is available +# First check that ecosconfig is available. find_program(ECOSCONFIG_EXECUTABLE NAMES ecosconfig) if(NOT ECOSCONFIG_EXECUTABLE) message(SEND_ERROR "ecosconfig was not found. Either include it in the system path or set it manually using ccmake.") @@ -47,14 +128,15 @@ message(STATUS "Found ecosconfig: ${ECOSCONFIG_EXECUTABLE}") endif() -# check that ECOS_REPOSITORY is set correctly +# Check that ECOS_REPOSITORY is set correctly. if (NOT EXISTS $ENV{ECOS_REPOSITORY}/ecos.db) message(SEND_ERROR "The environment variable ECOS_REPOSITORY is not set correctly. Set it to the directory which contains the file ecos.db") else () message(STATUS "ECOS_REPOSITORY is set to $ENV{ECOS_REPOSITORY}") endif () -# check that tclsh (coming with TCL) is available, otherwise ecosconfig doesn't work +# Check that tclsh (coming with TCL) is available, otherwise ecosconfig doesn't +# work. find_package(Tclsh) if (NOT TCL_TCLSH) message(SEND_ERROR "The TCL tclsh was not found. Please install TCL, it is required for building eCos applications.") @@ -62,98 +144,83 @@ message(STATUS "tlcsh found: ${TCL_TCLSH}") endif () -#add the global include-directories -#usage: ECOS_ADD_INCLUDE_DIRECTORIES() macro(ECOS_ADD_INCLUDE_DIRECTORIES) -#check for ProjectSources.txt one level higher + # Check for ProjectSources.txt one level higher. if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../ProjectSources.txt) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../) else () include_directories(${CMAKE_CURRENT_SOURCE_DIR}/) endif () -#the ecos include directory + # The ecos include directory. include_directories(${CMAKE_CURRENT_BINARY_DIR}/ecos/install/include/) - endmacro() - -#we want to compile for the xscale processor, in this case the following macro has to be called -#usage: ECOS_USE_ARM_ELF_TOOLS() macro (ECOS_USE_ARM_ELF_TOOLS) set(CMAKE_CXX_COMPILER "arm-elf-c++") set(CMAKE_COMPILER_IS_GNUCXX 1) set(CMAKE_C_COMPILER "arm-elf-gcc") set(CMAKE_AR "arm-elf-ar") set(CMAKE_RANLIB "arm-elf-ranlib") -#for linking + # For linking. set(ECOS_LD_MCPU "-mcpu=xscale") -#for compiling + # For compiling. add_definitions(-mcpu=xscale -mapcs-frame) -#for the obj-tools + # For the obj-tools. set(ECOS_ARCH_PREFIX "arm-elf-") endmacro () -#usage: ECOS_USE_PPC_EABI_TOOLS() macro (ECOS_USE_PPC_EABI_TOOLS) set(CMAKE_CXX_COMPILER "powerpc-eabi-c++") set(CMAKE_COMPILER_IS_GNUCXX 1) set(CMAKE_C_COMPILER "powerpc-eabi-gcc") set(CMAKE_AR "powerpc-eabi-ar") set(CMAKE_RANLIB "powerpc-eabi-ranlib") -#for linking + # For linking. set(ECOS_LD_MCPU "") -#for compiling + # For compiling. add_definitions() -#for the obj-tools + # For the obj-tools. set(ECOS_ARCH_PREFIX "powerpc-eabi-") endmacro () -#usage: ECOS_USE_I386_ELF_TOOLS() macro (ECOS_USE_I386_ELF_TOOLS) set(CMAKE_CXX_COMPILER "i386-elf-c++") set(CMAKE_COMPILER_IS_GNUCXX 1) set(CMAKE_C_COMPILER "i386-elf-gcc") set(CMAKE_AR "i386-elf-ar") set(CMAKE_RANLIB "i386-elf-ranlib") -#for linking + # For linking. set(ECOS_LD_MCPU "") -#for compiling + # For compiling. add_definitions() -#for the obj-tools + # For the obj-tools. set(ECOS_ARCH_PREFIX "i386-elf-") endmacro () - -#since the actual sources are located one level upwards -#a "../" has to be prepended in front of every source file -#call the following macro to achieve this, the first parameter -#is the name of the new list of source files with adjusted paths, -#followed by all source files -#usage: ECOS_ADJUST_DIRECTORY(adjusted_SRCS ${my_srcs}) macro(ECOS_ADJUST_DIRECTORY _target_FILES ) foreach (_current_FILE ${ARGN}) get_filename_component(_abs_FILE ${_current_FILE} ABSOLUTE) - if (NOT ${_abs_FILE} STREQUAL ${_current_FILE}) - get_filename_component(_abs_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../${_current_FILE} ABSOLUTE) - endif () + if (NOT ${_abs_FILE} STREQUAL ${_current_FILE}) + get_filename_component(_abs_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../${_current_FILE} ABSOLUTE) + endif () list(APPEND ${_target_FILES} ${_abs_FILE}) endforeach () endmacro() -# the default ecos config file name -# maybe in future also out-of-source builds may be possible +# The default eCos config file name. Maybe in future also out-of-source builds +# may be possible. set(ECOS_CONFIG_FILE ecos.ecc) -#creates the dependency from all source files on the ecos target.ld, -#adds the command for compiling ecos +# Internal macro that creates the dependency from all source files on the eCos +# target.ld and adds the command for compiling eCos. macro(ECOS_ADD_TARGET_LIB) -# when building out-of-source, create the ecos/ subdir + # When building out-of-source, create the ecos/ subdir. if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/ecos) file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ecos) endif() -#sources depend on target.ld + # Sources depend on target.ld. set_source_files_properties( ${ARGN} PROPERTIES @@ -174,40 +241,37 @@ add_custom_target( ecos make -C ${CMAKE_CURRENT_BINARY_DIR}/ecos/ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ecos/makefile ) endmacro() -# get the directory of the current file, used later on in the file +# Get the directory of the current file, used later on in the file. get_filename_component( ECOS_CMAKE_MODULE_DIR ${CMAKE_CURRENT_LIST_FILE} PATH) -#macro for creating an executable ecos application -#the first parameter is the name of the executable, -#the second is the list of all source files (where the path -#has been adjusted beforehand by calling ECOS_ADJUST_DIRECTORY() -#usage: ECOS_ADD_EXECUTABLE(my_app ${adjusted_SRCS}) macro(ECOS_ADD_EXECUTABLE _exe_NAME ) - #definitions, valid for all ecos projects - #the optimization and "-g" for debugging has to be enabled - #in the project-specific CMakeLists.txt + # Definitions, valid for all eCos projects. + # The optimization and "-g" for debugging has to be enabled in the + # project-specific CMakeLists.txt. add_definitions(-D__ECOS__=1 -D__ECOS=1) set(ECOS_DEFINITIONS -Wall -Wno-long-long -pipe -fno-builtin) -#the executable depends on ecos target.ld - ECOS_ADD_TARGET_LIB(${ARGN}) + # The executable depends on eCos target.ld. + ecos_add_target_lib(${ARGN}) -# when using nmake makefiles, the custom buildtype suppresses the default cl.exe flags -# and the rules for creating objects are adjusted for gcc + # When using nmake makefiles, the custom buildtype suppresses the default + # cl.exe flags and the rules for creating objects are adjusted for gcc. set(CMAKE_BUILD_TYPE CUSTOM_ECOS_BUILD) set(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>") set(CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>") -# special link commands for ecos-executables + + # Special link commands for eCos executables. set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> <CMAKE_CXX_LINK_FLAGS> <OBJECTS> -o <TARGET> ${_ecos_EXTRA_LIBS} -nostdlib -nostartfiles -L${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib -Ttarget.ld ${ECOS_LD_MCPU}") set(CMAKE_C_LINK_EXECUTABLE "<CMAKE_C_COMPILER> <CMAKE_C_LINK_FLAGS> <OBJECTS> -o <TARGET> ${_ecos_EXTRA_LIBS} -nostdlib -nostartfiles -L${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib -Ttarget.ld ${ECOS_LD_MCPU}") -# some strict compiler flags + + # Some strict compiler flags. set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wstrict-prototypes") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Woverloaded-virtual -fno-rtti -Wctor-dtor-privacy -fno-strict-aliasing -fno-exceptions") add_executable(${_exe_NAME} ${ARGN}) set_target_properties(${_exe_NAME} PROPERTIES SUFFIX ".elf") -#create a binary file + # Create a binary file. add_custom_command( TARGET ${_exe_NAME} POST_BUILD @@ -215,7 +279,7 @@ ARGS -O binary ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.bin ) -#and an srec file + # And an srec file. add_custom_command( TARGET ${_exe_NAME} POST_BUILD @@ -223,7 +287,7 @@ ARGS -O srec ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.srec ) -#add the created files to the clean-files + # Add the created files to the clean-files. set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_CLEAN_FILES "${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.bin" "${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.srec" @@ -233,7 +297,6 @@ add_custom_target(normalclean ${CMAKE_MAKE_PROGRAM} clean WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) add_dependencies (ecosclean normalclean) - add_custom_target( listing COMMAND echo -e \"\\n--- Symbols sorted by address ---\\n\" > ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst COMMAND ${ECOS_ARCH_PREFIX}nm -S -C -n ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst @@ -241,5 +304,4 @@ COMMAND ${ECOS_ARCH_PREFIX}nm -S -C -r --size-sort ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst COMMAND echo -e \"\\n--- Full assembly listing ---\\n\" >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst COMMAND ${ECOS_ARCH_PREFIX}objdump -S -x -d -C ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst ) - endmacro()
diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 94fa62a..a2b9b8c 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt
@@ -203,6 +203,8 @@ cmExportBuildCMakeConfigGenerator.cxx cmExportBuildFileGenerator.h cmExportBuildFileGenerator.cxx + cmExportBuildPackageInfoGenerator.h + cmExportBuildPackageInfoGenerator.cxx cmExportCMakeConfigGenerator.h cmExportCMakeConfigGenerator.cxx cmExportFileGenerator.h @@ -1030,7 +1032,7 @@ list(APPEND _tools cmcldeps) endif() -if(CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND CMAKE_SYSTEM_VERSION STREQUAL "5.10" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "i386") +if(CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND CMAKE_SYSTEM_VERSION STREQUAL "5.10" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(i386|x86_64)$") set_property(SOURCE cmSystemTools.cxx APPEND PROPERTY COMPILE_DEFINITIONS CMAKE_NO_MKDTEMP) endif()
diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index c12e07a..dcafff6 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake
@@ -1,7 +1,7 @@ # CMake version number components. set(CMake_VERSION_MAJOR 4) set(CMake_VERSION_MINOR 0) -set(CMake_VERSION_PATCH 20250220) +set(CMake_VERSION_PATCH 20250228) #set(CMake_VERSION_RC 0) set(CMake_VERSION_IS_DIRTY 0)
diff --git a/Source/CTest/cmProcess.cxx b/Source/CTest/cmProcess.cxx index 3e1beb9..acaead7 100644 --- a/Source/CTest/cmProcess.cxx +++ b/Source/CTest/cmProcess.cxx
@@ -57,6 +57,7 @@ return false; } this->StartTime = std::chrono::steady_clock::now(); + this->SystemStartTime = std::chrono::system_clock::now(); this->ProcessArgs.clear(); // put the command as arg0 this->ProcessArgs.push_back(this->Command.c_str());
diff --git a/Source/QtDialog/CMakeLists.txt b/Source/QtDialog/CMakeLists.txt index 55f40bf..7f851bd 100644 --- a/Source/QtDialog/CMakeLists.txt +++ b/Source/QtDialog/CMakeLists.txt
@@ -13,25 +13,26 @@ STRING "Expected Qt major version. Valid values are A (auto-select), 5, 6.") set(SUPPORTED_QT_VERSIONS "A" 5 6) set_property(CACHE CMake_QT_MAJOR_VERSION PROPERTY STRINGS ${SUPPORTED_QT_VERSIONS}) +# Select a Qt version and store it in a normal variable of the same name. if(NOT CMake_QT_MAJOR_VERSION STREQUAL "A") if(NOT CMake_QT_MAJOR_VERSION IN_LIST SUPPORTED_QT_VERSIONS) message(FATAL_ERROR "Supported Qt versions are \"${SUPPORTED_QT_VERSIONS}\"." " But CMake_QT_MAJOR_VERSION is set to ${CMake_QT_MAJOR_VERSION}.") endif() - set(INSTALLED_QT_VERSION ${CMake_QT_MAJOR_VERSION}) + set(CMake_QT_MAJOR_VERSION "${CMake_QT_MAJOR_VERSION}") else() find_package(Qt6Widgets QUIET) - set(INSTALLED_QT_VERSION 6) + set(CMake_QT_MAJOR_VERSION 6) if(NOT Qt6Widgets_FOUND) find_package(Qt5Widgets QUIET) if(NOT Qt5Widgets_FOUND) message(FATAL_ERROR "Could not find a valid Qt installation.") endif() - set(INSTALLED_QT_VERSION 5) + set(CMake_QT_MAJOR_VERSION 5) endif() endif() -find_package(Qt${INSTALLED_QT_VERSION} +find_package(Qt${CMake_QT_MAJOR_VERSION} COMPONENTS ${QT_COMPONENTS} REQUIRED QUIET ) @@ -40,10 +41,10 @@ # Try to find the package WinExtras for the task bar progress if(WIN32) - find_package(Qt${INSTALLED_QT_VERSION}WinExtras QUIET) - if(Qt${INSTALLED_QT_VERSION}WinExtras_FOUND) + find_package(Qt${CMake_QT_MAJOR_VERSION}WinExtras QUIET) + if(Qt${CMake_QT_MAJOR_VERSION}WinExtras_FOUND) add_compile_definitions(QT_WINEXTRAS) - list(APPEND CMake_QT_EXTRA_LIBRARIES Qt${INSTALLED_QT_VERSION}::WinExtras) + list(APPEND CMake_QT_EXTRA_LIBRARIES Qt${CMake_QT_MAJOR_VERSION}::WinExtras) list(APPEND QT_COMPONENTS WinExtras) endif() endif() @@ -53,7 +54,7 @@ add_compile_definitions(_SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING) endif() -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt${INSTALLED_QT_VERSION}Widgets_EXECUTABLE_COMPILE_FLAGS}") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt${CMake_QT_MAJOR_VERSION}Widgets_EXECUTABLE_COMPILE_FLAGS}") if(CMake_QT_STATIC_QXcbIntegrationPlugin_LIBRARIES) list(APPEND CMake_QT_EXTRA_LIBRARIES ${CMake_QT_STATIC_QXcbIntegrationPlugin_LIBRARIES}) @@ -70,7 +71,7 @@ # We need to install platform plugin and add qt.conf for Qt5 on Mac and Windows. if(CMake_INSTALL_DEPENDENCIES AND (APPLE OR WIN32)) function(_qt_get_plugin_name_with_version target out_var) - string(REGEX REPLACE "^Qt::(.+)" "Qt${INSTALLED_QT_VERSION}::\\1" + string(REGEX REPLACE "^Qt::(.+)" "Qt${CMake_QT_MAJOR_VERSION}::\\1" qt_plugin_with_version "${target}") if(TARGET "${qt_plugin_with_version}") set("${out_var}" "${qt_plugin_with_version}" PARENT_SCOPE) @@ -106,23 +107,23 @@ endmacro() macro(install_qt_plugins _comps _plugins_var) foreach(_qt_comp IN LISTS ${_comps}) - if(INSTALLED_QT_VERSION VERSION_LESS 6) - set(_qt_module_plugins ${Qt${INSTALLED_QT_VERSION}${_qt_comp}_PLUGINS}) + if(CMake_QT_MAJOR_VERSION VERSION_LESS 6) + set(_qt_module_plugins ${Qt${CMake_QT_MAJOR_VERSION}${_qt_comp}_PLUGINS}) else() - get_target_property(_qt_module_plugins Qt${INSTALLED_QT_VERSION}::${_qt_comp} QT_PLUGINS) + get_target_property(_qt_module_plugins Qt${CMake_QT_MAJOR_VERSION}::${_qt_comp} QT_PLUGINS) endif() foreach(_qt_plugin IN LISTS _qt_module_plugins) - if(INSTALLED_QT_VERSION VERSION_GREATER_EQUAL 6) + if(CMake_QT_MAJOR_VERSION VERSION_GREATER_EQUAL 6) # Qt6 provides the plugins as individual packages that need to be found. - find_package(Qt${INSTALLED_QT_VERSION}${_qt_plugin} QUIET - PATHS ${Qt${INSTALLED_QT_VERSION}${_qt_comp}_DIR}) + find_package(Qt${CMake_QT_MAJOR_VERSION}${_qt_plugin} QUIET + PATHS ${Qt${CMake_QT_MAJOR_VERSION}${_qt_comp}_DIR}) endif() install_qt_plugin("${_qt_plugin}" "${_plugins_var}") endforeach() endforeach() endmacro() if(APPLE) - if(INSTALLED_QT_VERSION VERSION_EQUAL 5) + if(CMake_QT_MAJOR_VERSION VERSION_EQUAL 5) install_qt_plugin("Qt5::QCocoaIntegrationPlugin" QT_PLUGINS) if(TARGET Qt5::QMacStylePlugin) install_qt_plugin("Qt5::QMacStylePlugin" QT_PLUGINS) @@ -137,7 +138,7 @@ DESTINATION "${CMAKE_INSTALL_PREFIX}/Resources" ${COMPONENT}) elseif(WIN32 AND NOT CMake_QT_STATIC_QWindowsIntegrationPlugin_LIBRARIES) - if(INSTALLED_QT_VERSION VERSION_EQUAL 5) + if(CMake_QT_MAJOR_VERSION VERSION_EQUAL 5) install_qt_plugin("Qt5::QWindowsIntegrationPlugin" QT_PLUGINS) else() # FIXME: Minimize plugins for Qt6. @@ -151,7 +152,7 @@ endif() endif() -get_property(_Qt_Core_LOCATION TARGET Qt${INSTALLED_QT_VERSION}::Core PROPERTY LOCATION) +get_property(_Qt_Core_LOCATION TARGET Qt${CMake_QT_MAJOR_VERSION}::Core PROPERTY LOCATION) get_filename_component(Qt_BIN_DIR "${_Qt_Core_LOCATION}" PATH) if(APPLE) get_filename_component(Qt_BIN_DIR "${Qt_BIN_DIR}" PATH) @@ -194,8 +195,8 @@ PUBLIC CMakeLib ${CMake_QT_EXTRA_LIBRARIES} - Qt${INSTALLED_QT_VERSION}::Core - Qt${INSTALLED_QT_VERSION}::Widgets + Qt${CMake_QT_MAJOR_VERSION}::Core + Qt${CMake_QT_MAJOR_VERSION}::Widgets ) set(UI_SRCS @@ -223,7 +224,7 @@ ) set(QRC_SRCS CMakeSetup.qrc) -if(INSTALLED_QT_VERSION VERSION_LESS 6) +if(CMake_QT_MAJOR_VERSION VERSION_LESS 6) qt5_wrap_ui(UI_BUILT_SRCS ${UI_SRCS}) qt5_wrap_cpp(MOC_BUILT_SRCS ${MOC_SRCS}) qt5_add_resources(QRC_BUILT_SRCS ${QRC_SRCS}) @@ -263,13 +264,14 @@ ) add_executable(cmake-gui WIN32 MACOSX_BUNDLE CMakeGUIExec.cxx) +set_property(TARGET cmake-gui PROPERTY CMake_QT_MAJOR_VERSION "${CMake_QT_MAJOR_VERSION}") target_link_libraries(cmake-gui PRIVATE CMakeGUIMainLib CMakeGUIQRCLib $<TARGET_NAME_IF_EXISTS:CMakeVersion> ManifestLib - Qt${INSTALLED_QT_VERSION}::Core + Qt${CMake_QT_MAJOR_VERSION}::Core ) if(WIN32)
diff --git a/Source/QtDialog/CMakeSetupDialog.cxx b/Source/QtDialog/CMakeSetupDialog.cxx index a7ae291..9270d35 100644 --- a/Source/QtDialog/CMakeSetupDialog.cxx +++ b/Source/QtDialog/CMakeSetupDialog.cxx
@@ -275,6 +275,8 @@ QObject::connect(this->BrowseSourceDirectoryButton, &QAbstractButton::clicked, this, &CMakeSetupDialog::doSourceBrowse); + QObject::connect(this->ReloadPresetsButton, &QAbstractButton::clicked, + this->CMakeThread->cmakeInstance(), &QCMake::loadPresets); QObject::connect(this->BrowseBinaryDirectoryButton, &QAbstractButton::clicked, this, &CMakeSetupDialog::doBinaryBrowse);
diff --git a/Source/QtDialog/CMakeSetupDialog.ui b/Source/QtDialog/CMakeSetupDialog.ui index c17c414..0289b0a 100644 --- a/Source/QtDialog/CMakeSetupDialog.ui +++ b/Source/QtDialog/CMakeSetupDialog.ui
@@ -74,6 +74,13 @@ </property> </widget> </item> + <item row="1" column="2"> + <widget class="QPushButton" name="ReloadPresetsButton"> + <property name="text"> + <string>Reload &presets</string> + </property> + </widget> + </item> <item row="2" column="0"> <widget class="QLabel" name="BinaryLabel"> <property name="text">
diff --git a/Source/QtDialog/QCMake.cxx b/Source/QtDialog/QCMake.cxx index dac4f53..f81f107 100644 --- a/Source/QtDialog/QCMake.cxx +++ b/Source/QtDialog/QCMake.cxx
@@ -64,17 +64,6 @@ for (cmake::GeneratorInfo const& gen : generators) { this->AvailableGenerators.push_back(gen); } - - connect(&this->LoadPresetsTimer, &QTimer::timeout, this, [this]() { - this->loadPresets(); - if (!this->PresetName.isEmpty() && - this->CMakePresetsGraph.ConfigurePresets.find( - std::string(this->PresetName.toStdString())) == - this->CMakePresetsGraph.ConfigurePresets.end()) { - this->setPreset(QString{}); - } - }); - this->LoadPresetsTimer.start(1000); } QCMake::~QCMake() = default; @@ -572,13 +561,12 @@ { auto result = this->CMakePresetsGraph.ReadProjectPresets( this->SourceDirectory.toStdString(), true); - if (result != this->LastLoadPresetsResult && !result) { + if (!result) { emit this->presetLoadError( this->SourceDirectory, QString::fromStdString( this->CMakePresetsGraph.parseState.GetErrorMessage(false))); } - this->LastLoadPresetsResult = result; QVector<QCMakePreset> presets; for (auto const& name : this->CMakePresetsGraph.ConfigurePresetOrder) {
diff --git a/Source/QtDialog/QCMake.h b/Source/QtDialog/QCMake.h index 71e8656..2bffd70 100644 --- a/Source/QtDialog/QCMake.h +++ b/Source/QtDialog/QCMake.h
@@ -124,6 +124,8 @@ void setWarnUninitializedMode(bool value); /// check if project IDE open is possible and emit openPossible signal void checkOpenPossible(); + /// Reload the preset files and tree + void loadPresets(); public: /// get the list of cache properties @@ -193,8 +195,6 @@ void stderrCallback(std::string const& msg); void setUpEnvironment() const; - void loadPresets(); - bool WarnUninitializedMode; QString SourceDirectory; QString BinaryDirectory; @@ -204,11 +204,9 @@ QString Toolset; std::vector<cmake::GeneratorInfo> AvailableGenerators; cmCMakePresetsGraph CMakePresetsGraph; - bool LastLoadPresetsResult = true; QString PresetName; QString CMakeExecutable; QAtomicInt InterruptFlag; QProcessEnvironment StartEnvironment; QProcessEnvironment Environment; - QTimer LoadPresetsTimer; };
diff --git a/Source/QtDialog/QCMakeCacheView.cxx b/Source/QtDialog/QCMakeCacheView.cxx index 90f5ac2..8c7801b 100644 --- a/Source/QtDialog/QCMakeCacheView.cxx +++ b/Source/QtDialog/QCMakeCacheView.cxx
@@ -187,7 +187,7 @@ QCMakeCacheModel::~QCMakeCacheModel() = default; -static uint qHash(QCMakeProperty const& p) +static size_t qHash(QCMakeProperty const& p) { return qHash(p.Key); } @@ -349,7 +349,7 @@ QCMakePropertyList props = this->properties(); QCMakePropertyList oldProps; - int numNew = this->NewPropertyCount; + cm_qsizetype numNew = this->NewPropertyCount; cm_qsizetype numTotal = props.count(); for (cm_qsizetype i = numNew; i < numTotal; i++) { oldProps.append(props[i]); @@ -530,7 +530,7 @@ return this->EditEnabled; } -int QCMakeCacheModel::newPropertyCount() const +cm_qsizetype QCMakeCacheModel::newPropertyCount() const { return this->NewPropertyCount; }
diff --git a/Source/QtDialog/QCMakeCacheView.h b/Source/QtDialog/QCMakeCacheView.h index 4df17f7..879caf5 100644 --- a/Source/QtDialog/QCMakeCacheView.h +++ b/Source/QtDialog/QCMakeCacheView.h
@@ -3,6 +3,7 @@ #pragma once #include "QCMake.h" +#include "QCMakeSizeType.h" #include <QItemDelegate> #include <QSet> #include <QStandardItemModel> @@ -99,7 +100,7 @@ bool editEnabled() const; // returns how many new properties there are - int newPropertyCount() const; + cm_qsizetype newPropertyCount() const; // return flags (overloaded to modify flag based on EditEnabled flag) Qt::ItemFlags flags(QModelIndex const& index) const; @@ -114,7 +115,7 @@ protected: bool EditEnabled; - int NewPropertyCount; + cm_qsizetype NewPropertyCount; bool ShowNewProperties; ViewType View;
diff --git a/Source/QtDialog/QCMakePresetItemModel.cxx b/Source/QtDialog/QCMakePresetItemModel.cxx index ac071f2..4df9b1c 100644 --- a/Source/QtDialog/QCMakePresetItemModel.cxx +++ b/Source/QtDialog/QCMakePresetItemModel.cxx
@@ -83,7 +83,8 @@ if (this->m_presets.empty()) { return 1; } - return this->m_presets.size() + 2; + // NOLINTNEXTLINE(readability-redundant-casting) + return static_cast<int>(this->m_presets.size() + 2); } int QCMakePresetItemModel::columnCount(QModelIndex const& parent) const @@ -144,5 +145,6 @@ index++; } - return this->m_presets.size() + 1; + // NOLINTNEXTLINE(readability-redundant-casting) + return static_cast<int>(this->m_presets.size() + 1); }
diff --git a/Source/QtDialog/WarningMessagesDialog.cxx b/Source/QtDialog/WarningMessagesDialog.cxx index 1fcf2b1..e409768 100644 --- a/Source/QtDialog/WarningMessagesDialog.cxx +++ b/Source/QtDialog/WarningMessagesDialog.cxx
@@ -26,21 +26,23 @@ void WarningMessagesDialog::setupSignals() { +#if (QT_VERSION >= QT_VERSION_CHECK(6, 7, 0)) + static auto const checkStateChanged = &QCheckBox::checkStateChanged; +#else + static auto const checkStateChanged = &QCheckBox::stateChanged; +#endif QObject::connect(this->buttonBox, &QDialogButtonBox::accepted, this, &WarningMessagesDialog::doAccept); - - QObject::connect(this->suppressDeveloperWarnings, &QCheckBox::stateChanged, - this, + QObject::connect(this->suppressDeveloperWarnings, checkStateChanged, this, &WarningMessagesDialog::doSuppressDeveloperWarningsChanged); QObject::connect( - this->suppressDeprecatedWarnings, &QCheckBox::stateChanged, this, + this->suppressDeprecatedWarnings, checkStateChanged, this, &WarningMessagesDialog::doSuppressDeprecatedWarningsChanged); - QObject::connect(this->developerWarningsAsErrors, &QCheckBox::stateChanged, - this, + QObject::connect(this->developerWarningsAsErrors, checkStateChanged, this, &WarningMessagesDialog::doDeveloperWarningsAsErrorsChanged); QObject::connect( - this->deprecatedWarningsAsErrors, &QCheckBox::stateChanged, this, + this->deprecatedWarningsAsErrors, checkStateChanged, this, &WarningMessagesDialog::doDeprecatedWarningsAsErrorsChanged); }
diff --git a/Source/bindexplib.cxx b/Source/bindexplib.cxx index b58a1c4..03122ce 100644 --- a/Source/bindexplib.cxx +++ b/Source/bindexplib.cxx
@@ -469,7 +469,7 @@ // check for /bigobj and llvm LTO format cmANON_OBJECT_HEADER_BIGOBJ* h = (cmANON_OBJECT_HEADER_BIGOBJ*)lpFileBase; - if (h->Sig1 == 0x0 && h->Sig2 == 0xffff) { + if (h->Sig1 == 0x0 && h->Sig2 == 0xffff && h->Version >= 2) { // bigobj DumpSymbols<cmANON_OBJECT_HEADER_BIGOBJ, cmIMAGE_SYMBOL_EX> symbolDumper(
diff --git a/Source/cmAddDependenciesCommand.cxx b/Source/cmAddDependenciesCommand.cxx index aa04018..1dcf8a8 100644 --- a/Source/cmAddDependenciesCommand.cxx +++ b/Source/cmAddDependenciesCommand.cxx
@@ -12,7 +12,7 @@ bool cmAddDependenciesCommand(std::vector<std::string> const& args, cmExecutionStatus& status) { - if (args.size() < 2) { + if (args.empty()) { status.SetError("called with incorrect number of arguments"); return false; }
diff --git a/Source/cmCommonTargetGenerator.cxx b/Source/cmCommonTargetGenerator.cxx index 9421ab2..2b93daa 100644 --- a/Source/cmCommonTargetGenerator.cxx +++ b/Source/cmCommonTargetGenerator.cxx
@@ -500,9 +500,10 @@ std::string propName = lang + "_LINKER_LAUNCHER"; cmValue launcherProp = this->GeneratorTarget->GetProperty(propName); if (cmNonempty(launcherProp)) { - cmGeneratorExpressionDAGChecker dagChecker( - this->GeneratorTarget, propName, nullptr, nullptr, - this->LocalCommonGenerator, config); + cmGeneratorExpressionDAGChecker dagChecker{ + this->GeneratorTarget, propName, nullptr, nullptr, + this->LocalCommonGenerator, config, + }; std::string evaluatedLinklauncher = cmGeneratorExpression::Evaluate( *launcherProp, this->LocalCommonGenerator, config, this->GeneratorTarget, &dagChecker, this->GeneratorTarget, lang);
diff --git a/Source/cmComputeLinkDepends.cxx b/Source/cmComputeLinkDepends.cxx index f29697e..9840e8e 100644 --- a/Source/cmComputeLinkDepends.cxx +++ b/Source/cmComputeLinkDepends.cxx
@@ -626,18 +626,18 @@ if (cmValue feature = this->Target->GetProperty(key)) { if (!feature->empty() && key.length() > lloPrefix.length()) { auto item = key.substr(lloPrefix.length()); - cmGeneratorExpressionDAGChecker dag{ - this->Target->GetBacktrace(), + cmGeneratorExpressionDAGChecker dagChecker{ this->Target, "LINK_LIBRARY_OVERRIDE", nullptr, nullptr, this->Target->GetLocalGenerator(), - config + config, + this->Target->GetBacktrace(), }; auto overrideFeature = cmGeneratorExpression::Evaluate( *feature, this->Target->GetLocalGenerator(), config, - this->Target, &dag, this->Target, linkLanguage); + this->Target, &dagChecker, this->Target, linkLanguage); this->LinkLibraryOverride.emplace(item, overrideFeature); } } @@ -646,16 +646,18 @@ // global override property if (cmValue linkLibraryOverride = this->Target->GetProperty("LINK_LIBRARY_OVERRIDE")) { - cmGeneratorExpressionDAGChecker dag{ target->GetBacktrace(), - target, - "LINK_LIBRARY_OVERRIDE", - nullptr, - nullptr, - target->GetLocalGenerator(), - config }; + cmGeneratorExpressionDAGChecker dagChecker{ + target, + "LINK_LIBRARY_OVERRIDE", + nullptr, + nullptr, + target->GetLocalGenerator(), + config, + target->GetBacktrace(), + }; auto overrideValue = cmGeneratorExpression::Evaluate( - *linkLibraryOverride, target->GetLocalGenerator(), config, target, &dag, - target, linkLanguage); + *linkLibraryOverride, target->GetLocalGenerator(), config, target, + &dagChecker, target, linkLanguage); std::vector<std::string> overrideList = cmTokenize(overrideValue, ',', cmTokenizerMode::New);
diff --git a/Source/cmExportBuildFileGenerator.cxx b/Source/cmExportBuildFileGenerator.cxx index 35f45b0..792a39e 100644 --- a/Source/cmExportBuildFileGenerator.cxx +++ b/Source/cmExportBuildFileGenerator.cxx
@@ -186,15 +186,20 @@ target->GetLocalGenerator()->GetGlobalGenerator()->GetBuildExportSets(); for (auto const& exp : allExportSets) { - auto const& exportSet = exp.second; + cmExportBuildFileGenerator const* const bfg = exp.second; + cmExportSet const* const exportSet = bfg->GetExportSet(); std::vector<TargetExport> targets; - exportSet->GetTargets(targets); + bfg->GetTargets(targets); if (std::any_of( targets.begin(), targets.end(), [&name](TargetExport const& te) { return te.Name == name; })) { - exportSets.insert(exp.first); + if (exportSet) { + exportSets.insert(exportSet->GetName()); + } else { + exportSets.insert(exp.first); + } exportFiles.push_back(exp.first); - namespaces.insert(exportSet->GetNamespace()); + namespaces.insert(bfg->GetNamespace()); } }
diff --git a/Source/cmExportBuildPackageInfoGenerator.cxx b/Source/cmExportBuildPackageInfoGenerator.cxx new file mode 100644 index 0000000..0ca8240 --- /dev/null +++ b/Source/cmExportBuildPackageInfoGenerator.cxx
@@ -0,0 +1,119 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#include "cmExportBuildPackageInfoGenerator.h" + +#include <cassert> +#include <utility> +#include <vector> + +#include <cmext/string_view> + +#include <cm3p/json/value.h> + +#include "cmGeneratorExpression.h" +#include "cmStateTypes.h" +#include "cmStringAlgorithms.h" + +cmExportBuildPackageInfoGenerator::cmExportBuildPackageInfoGenerator( + std::string packageName, std::string version, std::string versionCompat, + std::string versionSchema, std::vector<std::string> defaultTargets, + std::vector<std::string> defaultConfigurations) + : cmExportPackageInfoGenerator( + std::move(packageName), std::move(version), std::move(versionCompat), + std::move(versionSchema), std::move(defaultTargets), + std::move(defaultConfigurations)) +{ + this->SetNamespace(cmStrCat(this->GetPackageName(), "::"_s)); +} + +bool cmExportBuildPackageInfoGenerator::GenerateMainFile(std::ostream& os) +{ + if (!this->CollectExports([&](cmGeneratorTarget const*) {})) { + return false; + } + + if (!this->CheckDefaultTargets()) { + return false; + } + + Json::Value root = this->GeneratePackageInfo(); + root["cps_path"] = "@prefix@"; + + Json::Value& components = root["components"]; + + // Create all the imported targets. + for (auto const& exp : this->Exports) { + cmGeneratorTarget* const target = exp.Target; + cmStateEnums::TargetType targetType = this->GetExportTargetType(target); + + Json::Value* const component = + this->GenerateImportTarget(components, target, targetType); + if (!component) { + return false; + } + + ImportPropertyMap properties; + if (!this->PopulateInterfaceProperties(target, properties)) { + return false; + } + this->PopulateInterfaceLinkLibrariesProperty( + target, cmGeneratorExpression::InstallInterface, properties); + + if (targetType != cmStateEnums::INTERFACE_LIBRARY) { + auto configurations = Json::Value{ Json::objectValue }; + + // Add per-configuration properties. + for (std::string const& c : this->Configurations) { + this->GenerateInterfacePropertiesConfig(configurations, target, c); + } + + if (!configurations.empty()) { + (*component)["configurations"] = configurations; + } + } + + // Set configuration-agnostic properties for component. + this->GenerateInterfaceProperties(*component, target, properties); + } + + this->GeneratePackageRequires(root); + + // Write the primary packing information file. + this->WritePackageInfo(root, os); + + bool result = true; + + return result; +} + +void cmExportBuildPackageInfoGenerator::GenerateInterfacePropertiesConfig( + Json::Value& configurations, cmGeneratorTarget* target, + std::string const& config) +{ + std::string const& suffix = PropertyConfigSuffix(config); + + ImportPropertyMap properties; + + assert(this->GetExportTargetType(target) != cmStateEnums::INTERFACE_LIBRARY); + this->SetImportLocationProperty(config, suffix, target, properties); + if (properties.empty()) { + return; + } + + this->SetImportDetailProperties(config, suffix, target, properties); + + // TODO: PUBLIC_HEADER_LOCATION + + Json::Value component = + this->GenerateInterfaceConfigProperties(suffix, properties); + if (!component.empty()) { + configurations[config] = std::move(component); + } +} + +std::string cmExportBuildPackageInfoGenerator::GetCxxModulesDirectory() const +{ + // TODO: Implement a not-CMake-specific mechanism for providing module + // information. + return {}; +}
diff --git a/Source/cmExportBuildPackageInfoGenerator.h b/Source/cmExportBuildPackageInfoGenerator.h new file mode 100644 index 0000000..1189467 --- /dev/null +++ b/Source/cmExportBuildPackageInfoGenerator.h
@@ -0,0 +1,53 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#pragma once + +#include "cmConfigure.h" // IWYU pragma: keep + +#include <iosfwd> +#include <string> +#include <vector> + +#include "cmExportBuildFileGenerator.h" +#include "cmExportPackageInfoGenerator.h" + +namespace Json { +class Value; +} + +class cmGeneratorTarget; + +/** \class cmExportBuildPackageInfoGenerator + * \brief Generate a file exporting targets from a build tree. + * + * cmExportBuildCMakeConfigGenerator generates a file exporting targets from + * a build tree. This exports the targets to the Common Package Specification + * (https://cps-org.github.io/cps/). + * + * This is used to implement the export() command. + */ +class cmExportBuildPackageInfoGenerator + : public cmExportBuildFileGenerator + , public cmExportPackageInfoGenerator +{ +public: + cmExportBuildPackageInfoGenerator( + std::string packageName, std::string version, std::string versionCompat, + std::string versionSchema, std::vector<std::string> defaultTargets, + std::vector<std::string> defaultConfigurations); + +protected: + // Implement virtual methods from the superclass. + bool GenerateMainFile(std::ostream& os) override; + void GenerateImportTargetsConfig(std::ostream&, std::string const&, + std::string const&) override + { + } + + void GenerateInterfacePropertiesConfig(Json::Value& configurations, + cmGeneratorTarget* target, + std::string const& config); + + std::string GetCxxModulesDirectory() const override; + // TODO: Generate C++ module info in a not-CMake-specific format. +};
diff --git a/Source/cmExportCommand.cxx b/Source/cmExportCommand.cxx index 8e50c52..3227ee8 100644 --- a/Source/cmExportCommand.cxx +++ b/Source/cmExportCommand.cxx
@@ -21,8 +21,10 @@ #include "cmExportBuildAndroidMKGenerator.h" #include "cmExportBuildCMakeConfigGenerator.h" #include "cmExportBuildFileGenerator.h" +#include "cmExportBuildPackageInfoGenerator.h" #include "cmExportSet.h" #include "cmGeneratedFileStream.h" +#include "cmGeneratorExpression.h" #include "cmGlobalGenerator.h" #include "cmMakefile.h" #include "cmMessageType.h" @@ -63,14 +65,22 @@ struct Arguments { - std::string ExportSetName; cm::optional<ArgumentParser::MaybeEmpty<std::vector<std::string>>> Targets; - std::string Namespace; - std::string Filename; - std::string AndroidMKFile; - std::string CxxModulesDirectory; + ArgumentParser::NonEmpty<std::string> ExportSetName; + ArgumentParser::NonEmpty<std::string> Namespace; + ArgumentParser::NonEmpty<std::string> Filename; + ArgumentParser::NonEmpty<std::string> AndroidMKFile; + ArgumentParser::NonEmpty<std::string> PackageName; + ArgumentParser::NonEmpty<std::string> Appendix; + ArgumentParser::NonEmpty<std::string> Version; + ArgumentParser::NonEmpty<std::string> VersionCompat; + ArgumentParser::NonEmpty<std::string> VersionSchema; + ArgumentParser::NonEmpty<std::string> CxxModulesDirectory; + ArgumentParser::NonEmpty<std::vector<std::string>> DefaultTargets; + ArgumentParser::NonEmpty<std::vector<std::string>> DefaultConfigs; bool Append = false; bool ExportOld = false; + bool LowerCase = false; std::vector<std::vector<std::string>> PackageDependencyArgs; bool ExportPackageDependencies = false; @@ -92,6 +102,17 @@ parser.Bind("EXPORT_PACKAGE_DEPENDENCIES"_s, &Arguments::ExportPackageDependencies); } + if (cmExperimental::HasSupportEnabled( + status.GetMakefile(), cmExperimental::Feature::ExportPackageInfo)) { + parser.Bind("PACKAGE_INFO"_s, &Arguments::PackageName); + parser.Bind("LOWER_CASE_FILE"_s, &Arguments::LowerCase); + parser.Bind("APPENDIX"_s, &Arguments::Appendix); + parser.Bind("VERSION"_s, &Arguments::Version); + parser.Bind("COMPAT_VERSION"_s, &Arguments::VersionCompat); + parser.Bind("VERSION_SCHEMA"_s, &Arguments::VersionSchema); + parser.Bind("DEFAULT_TARGETS"_s, &Arguments::DefaultTargets); + parser.Bind("DEFAULT_CONFIGURATIONS"_s, &Arguments::DefaultConfigs); + } } else if (args[0] == "SETUP") { parser.Bind("SETUP"_s, &Arguments::ExportSetName); if (cmExperimental::HasSupportEnabled( @@ -200,19 +221,98 @@ return true; } + if (arguments.PackageName.empty()) { + if (arguments.LowerCase) { + status.SetError("LOWER_CASE_FILE requires PACKAGE_INFO."); + return false; + } + if (!arguments.Appendix.empty()) { + status.SetError("APPENDIX requires PACKAGE_INFO."); + return false; + } + if (!arguments.Version.empty()) { + status.SetError("VERSION requires PACKAGE_INFO."); + return false; + } + if (!arguments.DefaultTargets.empty()) { + status.SetError("DEFAULT_TARGETS requires PACKAGE_INFO."); + return false; + } + if (!arguments.DefaultConfigs.empty()) { + status.SetError("DEFAULT_CONFIGURATIONS requires PACKAGE_INFO."); + return false; + } + } else { + if (!arguments.Filename.empty()) { + status.SetError("PACKAGE_INFO and FILE are mutually exclusive."); + return false; + } + if (!arguments.Namespace.empty()) { + status.SetError("PACKAGE_INFO and NAMESPACE are mutually exclusive."); + return false; + } + if (!arguments.Appendix.empty()) { + if (!arguments.Version.empty()) { + status.SetError("APPENDIX and VERSION are mutually exclusive."); + return false; + } + if (!arguments.DefaultTargets.empty()) { + status.SetError("APPENDIX and DEFAULT_TARGETS " + "are mutually exclusive."); + return false; + } + if (!arguments.DefaultConfigs.empty()) { + status.SetError("APPENDIX and DEFAULT_CONFIGURATIONS " + "are mutually exclusive."); + return false; + } + } + } + if (arguments.Version.empty()) { + if (!arguments.VersionCompat.empty()) { + status.SetError("COMPAT_VERSION requires VERSION."); + return false; + } + if (!arguments.VersionSchema.empty()) { + status.SetError("VERSION_SCHEMA requires VERSION."); + return false; + } + } + std::string fname; bool android = false; + bool cps = false; if (!arguments.AndroidMKFile.empty()) { fname = arguments.AndroidMKFile; android = true; - } - if (arguments.Filename.empty() && fname.empty()) { + } else if (arguments.Filename.empty()) { if (args[0] != "EXPORT") { status.SetError("FILE <filename> option missing."); return false; } - fname = arguments.ExportSetName + ".cmake"; - } else if (fname.empty()) { + if (arguments.PackageName.empty()) { + fname = arguments.ExportSetName + ".cmake"; + } else { + // Validate the package name. + if (!cmGeneratorExpression::IsValidTargetName(arguments.PackageName) || + arguments.PackageName.find(':') != std::string::npos) { + status.SetError( + cmStrCat(R"(PACKAGE_INFO given invalid package name ")"_s, + arguments.PackageName, R"(".)"_s)); + return false; + } + + std::string const pkgNameOnDisk = + (arguments.LowerCase ? cmSystemTools::LowerCase(arguments.PackageName) + : std::string{ arguments.PackageName }); + if (arguments.Appendix.empty()) { + fname = cmStrCat(pkgNameOnDisk, ".cps"_s); + } else { + fname = cmStrCat(pkgNameOnDisk, '-', arguments.Appendix, ".cps"_s); + } + cps = true; + } + } else { // Make sure the file has a .cmake extension. if (cmSystemTools::GetFilenameLastExtension(arguments.Filename) != ".cmake") { @@ -298,6 +398,11 @@ // and APPEND is not specified, if CMP0103 is OLD ignore previous definition // else raise an error if (gg->GetExportedTargetsFile(fname)) { + if (cps) { + status.SetError(cmStrCat("command already specified for the file "_s, + cmSystemTools::GetFilenameName(fname), '.')); + return false; + } switch (mf.GetPolicyStatus(cmPolicies::CMP0103)) { case cmPolicies::WARN: mf.IssueMessage( @@ -316,21 +421,28 @@ } } - // Setup export file generation. + // Set up export file generation. std::unique_ptr<cmExportBuildFileGenerator> ebfg = nullptr; if (android) { auto ebag = cm::make_unique<cmExportBuildAndroidMKGenerator>(); + ebag->SetNamespace(arguments.Namespace); ebag->SetAppendMode(arguments.Append); ebfg = std::move(ebag); + } else if (cps) { + auto ebpg = cm::make_unique<cmExportBuildPackageInfoGenerator>( + arguments.PackageName, arguments.Version, arguments.VersionCompat, + arguments.VersionSchema, arguments.DefaultTargets, + arguments.DefaultConfigs); + ebfg = std::move(ebpg); } else { auto ebcg = cm::make_unique<cmExportBuildCMakeConfigGenerator>(); + ebcg->SetNamespace(arguments.Namespace); ebcg->SetAppendMode(arguments.Append); ebcg->SetExportOld(arguments.ExportOld); ebcg->SetExportPackageDependencies(arguments.ExportPackageDependencies); ebfg = std::move(ebcg); } ebfg->SetExportFile(fname.c_str()); - ebfg->SetNamespace(arguments.Namespace); ebfg->SetCxxModuleDirectory(arguments.CxxModulesDirectory); if (exportSet) { ebfg->SetExportSet(exportSet);
diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx index 7c1e290..9b40c28 100644 --- a/Source/cmExportFileGenerator.cxx +++ b/Source/cmExportFileGenerator.cxx
@@ -78,19 +78,21 @@ return this->GenerateImportFile(*foutPtr); } +std::string cmExportFileGenerator::PropertyConfigSuffix( + std::string const& config) +{ + // Construct the property configuration suffix. + if (config.empty()) { + return "_NOCONFIG"; + } + return cmStrCat('_', cmSystemTools::UpperCase(config)); +} + void cmExportFileGenerator::GenerateImportConfig(std::ostream& os, std::string const& config) { - // Construct the property configuration suffix. - std::string suffix = "_"; - if (!config.empty()) { - suffix += cmSystemTools::UpperCase(config); - } else { - suffix += "NOCONFIG"; - } - // Generate the per-config target information. - this->GenerateImportTargetsConfig(os, config, suffix); + this->GenerateImportTargetsConfig(os, config, PropertyConfigSuffix(config)); } bool cmExportFileGenerator::PopulateInterfaceProperties(
diff --git a/Source/cmExportFileGenerator.h b/Source/cmExportFileGenerator.h index 0daa016..5469516 100644 --- a/Source/cmExportFileGenerator.h +++ b/Source/cmExportFileGenerator.h
@@ -170,6 +170,8 @@ bool AddTargetNamespace(std::string& input, cmGeneratorTarget const* target, cmLocalGenerator const* lg); + static std::string PropertyConfigSuffix(std::string const& config); + // The namespace in which the exports are placed in the generated file. std::string Namespace;
diff --git a/Source/cmExportInstallPackageInfoGenerator.cxx b/Source/cmExportInstallPackageInfoGenerator.cxx index b9b715e..3513045 100644 --- a/Source/cmExportInstallPackageInfoGenerator.cxx +++ b/Source/cmExportInstallPackageInfoGenerator.cxx
@@ -71,8 +71,8 @@ } root["cps_path"] = packagePath; - bool requiresConfigFiles = false; // Create all the imported targets. + bool requiresConfigFiles = false; for (cmTargetExport const* te : allTargets) { cmGeneratorTarget* gt = te->Target; cmStateEnums::TargetType targetType = this->GetExportTargetType(te); @@ -139,8 +139,11 @@ this->PopulateImportProperties(config, suffix, te.get(), properties, importedLocations); - this->GenerateInterfaceConfigProperties(components, te->Target, suffix, - properties); + Json::Value component = + this->GenerateInterfaceConfigProperties(suffix, properties); + if (!component.empty()) { + components[te->Target->GetExportName()] = std::move(component); + } } this->WritePackageInfo(root, os);
diff --git a/Source/cmExportPackageInfoGenerator.cxx b/Source/cmExportPackageInfoGenerator.cxx index 8616e10..8e51610 100644 --- a/Source/cmExportPackageInfoGenerator.cxx +++ b/Source/cmExportPackageInfoGenerator.cxx
@@ -277,7 +277,7 @@ return true; } - // Target belongs to multiple namespaces or multiple export sets. + // Target belongs to another export from this build. auto const& exportInfo = this->FindExportInfo(linkedTarget); if (exportInfo.Namespaces.size() == 1 && exportInfo.Sets.size() == 1) { auto const& linkNamespace = *exportInfo.Namespaces.begin(); @@ -302,6 +302,7 @@ return true; } + // Target belongs to multiple namespaces or multiple export sets. // cmExportFileGenerator::HandleMissingTarget should have complained about // this already. return false; @@ -424,8 +425,7 @@ } } -void cmExportPackageInfoGenerator::GenerateInterfaceConfigProperties( - Json::Value& components, cmGeneratorTarget const* target, +Json::Value cmExportPackageInfoGenerator::GenerateInterfaceConfigProperties( std::string const& suffix, ImportPropertyMap const& properties) const { Json::Value component; @@ -456,7 +456,5 @@ } } - if (!component.empty()) { - components[target->GetExportName()] = component; - } + return component; }
diff --git a/Source/cmExportPackageInfoGenerator.h b/Source/cmExportPackageInfoGenerator.h index 5014252..f8f34dc 100644 --- a/Source/cmExportPackageInfoGenerator.h +++ b/Source/cmExportPackageInfoGenerator.h
@@ -62,8 +62,7 @@ bool GenerateInterfaceProperties(Json::Value& component, cmGeneratorTarget const* target, ImportPropertyMap const& properties) const; - void GenerateInterfaceConfigProperties( - Json::Value& components, cmGeneratorTarget const* target, + Json::Value GenerateInterfaceConfigProperties( std::string const& suffix, ImportPropertyMap const& properties) const; cm::string_view GetImportPrefixWithSlash() const override;
diff --git a/Source/cmExportTryCompileFileGenerator.cxx b/Source/cmExportTryCompileFileGenerator.cxx index 021e071..ea55f47 100644 --- a/Source/cmExportTryCompileFileGenerator.cxx +++ b/Source/cmExportTryCompileFileGenerator.cxx
@@ -86,9 +86,14 @@ tgt, "LINK_OPTIONS", nullptr, nullptr, tgt->GetLocalGenerator(), this->Config); } - cmGeneratorExpressionDAGChecker dagChecker( - tgt, propName, nullptr, parentDagChecker.get(), tgt->GetLocalGenerator(), - this->Config); + cmGeneratorExpressionDAGChecker dagChecker{ + tgt, + propName, + nullptr, + parentDagChecker.get(), + tgt->GetLocalGenerator(), + this->Config, + }; std::unique_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(*prop);
diff --git a/Source/cmFindPackageCommand.cxx b/Source/cmFindPackageCommand.cxx index 19c2c08..8eeb920 100644 --- a/Source/cmFindPackageCommand.cxx +++ b/Source/cmFindPackageCommand.cxx
@@ -678,7 +678,7 @@ } if (cmValue const sd = this->Makefile->GetDefinition("CMAKE_FIND_PACKAGE_SORT_DIRECTION")) { - this->SortDirection = (*sd == "ASC") ? Asc : Dec; + this->SortDirection = (*sd == "DEC") ? Dec : Asc; } // Find what search path locations have been enabled/disable.
diff --git a/Source/cmGeneratorExpression.cxx b/Source/cmGeneratorExpression.cxx index 23b0a47..8c52d2b 100644 --- a/Source/cmGeneratorExpression.cxx +++ b/Source/cmGeneratorExpression.cxx
@@ -425,10 +425,14 @@ this->GeneratorExpression.Parse(std::move(expression)); // Specify COMPILE_OPTIONS to DAGchecker, same semantic as COMPILE_FLAGS - cmGeneratorExpressionDAGChecker dagChecker( + cmGeneratorExpressionDAGChecker dagChecker{ this->HeadTarget, - property == "COMPILE_FLAGS" ? "COMPILE_OPTIONS" : property, nullptr, - nullptr, this->LocalGenerator, this->Config); + property == "COMPILE_FLAGS" ? "COMPILE_OPTIONS" : property, + nullptr, + nullptr, + this->LocalGenerator, + this->Config, + }; return this->CompiledGeneratorExpression->Evaluate( this->LocalGenerator, this->Config, this->HeadTarget, &dagChecker, nullptr,
diff --git a/Source/cmGeneratorExpressionDAGChecker.cxx b/Source/cmGeneratorExpressionDAGChecker.cxx index 8f88901..6457dc2 100644 --- a/Source/cmGeneratorExpressionDAGChecker.cxx +++ b/Source/cmGeneratorExpressionDAGChecker.cxx
@@ -21,32 +21,22 @@ cmGeneratorTarget const* target, std::string property, GeneratorExpressionContent const* content, cmGeneratorExpressionDAGChecker* parent, cmLocalGenerator const* contextLG, - std::string const& contextConfig) - : cmGeneratorExpressionDAGChecker(cmListFileBacktrace(), target, - std::move(property), content, parent, - contextLG, contextConfig) -{ -} - -cmGeneratorExpressionDAGChecker::cmGeneratorExpressionDAGChecker( - cmListFileBacktrace backtrace, cmGeneratorTarget const* target, - std::string property, GeneratorExpressionContent const* content, - cmGeneratorExpressionDAGChecker* parent, cmLocalGenerator const* contextLG, - std::string const& contextConfig) + std::string const& contextConfig, cmListFileBacktrace backtrace, + ComputingLinkLibraries computingLinkLibraries) : Parent(parent) , Top(parent ? parent->Top : this) , Target(target) , Property(std::move(property)) , Content(content) , Backtrace(std::move(backtrace)) + , ComputingLinkLibraries_(computingLinkLibraries) { if (parent) { this->TopIsTransitiveProperty = parent->TopIsTransitiveProperty; } else { this->TopIsTransitiveProperty = this->Target - ->IsTransitiveProperty(this->Property, contextLG, contextConfig, - this->EvaluatingLinkLibraries()) + ->IsTransitiveProperty(this->Property, contextLG, contextConfig, this) .has_value(); } @@ -204,6 +194,11 @@ "_LINKER_LAUNCHER"_s; } +bool cmGeneratorExpressionDAGChecker::IsComputingLinkLibraries() const +{ + return this->Top->ComputingLinkLibraries_ == ComputingLinkLibraries::Yes; +} + bool cmGeneratorExpressionDAGChecker::EvaluatingLinkLibraries( cmGeneratorTarget const* tgt, ForGenex genex) const {
diff --git a/Source/cmGeneratorExpressionDAGChecker.h b/Source/cmGeneratorExpressionDAGChecker.h index a07169d..7b2d411 100644 --- a/Source/cmGeneratorExpressionDAGChecker.h +++ b/Source/cmGeneratorExpressionDAGChecker.h
@@ -17,19 +17,19 @@ struct cmGeneratorExpressionDAGChecker { - cmGeneratorExpressionDAGChecker(cmListFileBacktrace backtrace, - cmGeneratorTarget const* target, - std::string property, - GeneratorExpressionContent const* content, - cmGeneratorExpressionDAGChecker* parent, - cmLocalGenerator const* contextLG, - std::string const& contextConfig); - cmGeneratorExpressionDAGChecker(cmGeneratorTarget const* target, - std::string property, - GeneratorExpressionContent const* content, - cmGeneratorExpressionDAGChecker* parent, - cmLocalGenerator const* contextLG, - std::string const& contextConfig); + enum class ComputingLinkLibraries + { + No, + Yes, + }; + cmGeneratorExpressionDAGChecker( + cmGeneratorTarget const* target, std::string property, + GeneratorExpressionContent const* content, + cmGeneratorExpressionDAGChecker* parent, cmLocalGenerator const* contextLG, + std::string const& contextConfig, + cmListFileBacktrace backtrace = cmListFileBacktrace(), + ComputingLinkLibraries computingLinkLibraries = + ComputingLinkLibraries::No); enum Result { @@ -52,6 +52,11 @@ bool EvaluatingLinkOptionsExpression() const; bool EvaluatingLinkerLauncher() const; + /** Returns true only when computing the actual link dependency + graph for cmGeneratorTarget::GetLinkImplementationLibraries + or cmGeneratorTarget::GetLinkInterfaceLibraries. */ + bool IsComputingLinkLibraries() const; + enum class ForGenex { ANY, @@ -85,4 +90,6 @@ bool TransitivePropertiesOnly = false; bool CMP0131 = false; bool TopIsTransitiveProperty = false; + ComputingLinkLibraries const ComputingLinkLibraries_ = + ComputingLinkLibraries::No; };
diff --git a/Source/cmGeneratorExpressionNode.cxx b/Source/cmGeneratorExpressionNode.cxx index c67ce01..5a4a291 100644 --- a/Source/cmGeneratorExpressionNode.cxx +++ b/Source/cmGeneratorExpressionNode.cxx
@@ -483,10 +483,15 @@ cmGeneratorExpressionDAGChecker* dagCheckerParent) const { if (context->HeadTarget) { - cmGeneratorExpressionDAGChecker dagChecker( - context->Backtrace, context->HeadTarget, - genexOperator + ":" + expression, content, dagCheckerParent, - context->LG, context->Config); + cmGeneratorExpressionDAGChecker dagChecker{ + context->HeadTarget, + genexOperator + ":" + expression, + content, + dagCheckerParent, + context->LG, + context->Config, + context->Backtrace, + }; switch (dagChecker.Check()) { case cmGeneratorExpressionDAGChecker::SELF_REFERENCE: case cmGeneratorExpressionDAGChecker::CYCLIC_REFERENCE: { @@ -2957,8 +2962,7 @@ if (cm::optional<cmGeneratorTarget::TransitiveProperty> transitiveProp = target->IsTransitiveProperty(propertyName, context->LG, - context->Config, - evaluatingLinkLibraries)) { + context->Config, dagCheckerParent)) { interfacePropertyName = std::string(transitiveProp->InterfaceName); isInterfaceProperty = transitiveProp->InterfaceName == propertyName; usage = transitiveProp->Usage; @@ -2992,9 +2996,15 @@ dagCheckerParent, usage)); } - cmGeneratorExpressionDAGChecker dagChecker( - context->Backtrace, target, propertyName, content, dagCheckerParent, - context->LG, context->Config); + cmGeneratorExpressionDAGChecker dagChecker{ + target, + propertyName, + content, + dagCheckerParent, + context->LG, + context->Config, + context->Backtrace, + }; switch (dagChecker.Check()) { case cmGeneratorExpressionDAGChecker::SELF_REFERENCE:
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 40a73b1..25ce031 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx
@@ -737,8 +737,9 @@ std::string propName{ "LINKER_TYPE" }; auto linkerType = this->GetProperty(propName); if (!linkerType.IsEmpty()) { - cmGeneratorExpressionDAGChecker dagChecker( - this, propName, nullptr, nullptr, this->LocalGenerator, config); + cmGeneratorExpressionDAGChecker dagChecker{ + this, propName, nullptr, nullptr, this->LocalGenerator, config, + }; auto ltype = cmGeneratorExpression::Evaluate(*linkerType, this->GetLocalGenerator(), config, this, &dagChecker, this, lang); @@ -1198,9 +1199,10 @@ std::string const& key, std::string const& config, std::string const& language) const { - cmGeneratorExpressionDAGChecker dagChecker( - this, "SYSTEM_INCLUDE_DIRECTORIES", nullptr, nullptr, this->LocalGenerator, - config); + cmGeneratorExpressionDAGChecker dagChecker{ + this, "SYSTEM_INCLUDE_DIRECTORIES", nullptr, + nullptr, this->LocalGenerator, config, + }; bool excludeImported = this->GetPropertyAsBool("NO_SYSTEM_FROM_IMPORTED"); @@ -1969,8 +1971,9 @@ return; } - cmGeneratorExpressionDAGChecker dagChecker( - this, "AUTOUIC_OPTIONS", nullptr, nullptr, this->LocalGenerator, config); + cmGeneratorExpressionDAGChecker dagChecker{ + this, "AUTOUIC_OPTIONS", nullptr, nullptr, this->LocalGenerator, config, + }; cmExpandList(cmGeneratorExpression::Evaluate(prop, this->LocalGenerator, config, this, &dagChecker), result);
diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h index 931e1a1..93dc0a8 100644 --- a/Source/cmGeneratorTarget.h +++ b/Source/cmGeneratorTarget.h
@@ -1006,7 +1006,8 @@ cm::optional<TransitiveProperty> IsTransitiveProperty( cm::string_view prop, cmLocalGenerator const* lg, - std::string const& config, bool evaluatingLinkLibraries) const; + std::string const& config, + cmGeneratorExpressionDAGChecker const* dagChecker) const; bool HaveInstallTreeRPATH(std::string const& config) const;
diff --git a/Source/cmGeneratorTarget_IncludeDirectories.cxx b/Source/cmGeneratorTarget_IncludeDirectories.cxx index 1317f27..9ca5ed0 100644 --- a/Source/cmGeneratorTarget_IncludeDirectories.cxx +++ b/Source/cmGeneratorTarget_IncludeDirectories.cxx
@@ -46,13 +46,18 @@ std::string const& propertyName, IncludeDirectoryFallBack mode, cmGeneratorExpressionDAGChecker* context) { - cmGeneratorExpressionDAGChecker dag{ - target->GetBacktrace(), target, propertyName, nullptr, context, - target->GetLocalGenerator(), config + cmGeneratorExpressionDAGChecker dagChecker{ + target, + propertyName, + nullptr, + context, + target->GetLocalGenerator(), + config, + target->GetBacktrace(), }; - switch (dag.Check()) { + switch (dagChecker.Check()) { case cmGeneratorExpressionDAGChecker::SELF_REFERENCE: - dag.ReportError( + dagChecker.ReportError( nullptr, "$<TARGET_PROPERTY:" + target->GetName() + ",propertyName"); CM_FALLTHROUGH; case cmGeneratorExpressionDAGChecker::CYCLIC_REFERENCE: @@ -99,9 +104,14 @@ { if (auto const* libraries = target->GetLinkImplementationLibraries(config, UseTo::Compile)) { - cmGeneratorExpressionDAGChecker dag{ - target->GetBacktrace(), target, propertyName, nullptr, nullptr, - target->GetLocalGenerator(), config + cmGeneratorExpressionDAGChecker dagChecker{ + target, + propertyName, + nullptr, + nullptr, + target->GetLocalGenerator(), + config, + target->GetBacktrace(), }; for (cmLinkImplItem const& library : libraries->Libraries) { @@ -127,10 +137,10 @@ } } - cmExpandList( - AddLangSpecificInterfaceIncludeDirectories( - target, dependency, lang, config, propertyName, mode, &dag), - entry.Values); + cmExpandList(AddLangSpecificInterfaceIncludeDirectories( + target, dependency, lang, config, propertyName, mode, + &dagChecker), + entry.Values); entries.Entries.emplace_back(std::move(entry)); } } @@ -222,9 +232,10 @@ std::vector<BT<std::string>> includes; std::unordered_set<std::string> uniqueIncludes; - cmGeneratorExpressionDAGChecker dagChecker(this, "INCLUDE_DIRECTORIES", - nullptr, nullptr, - this->LocalGenerator, config); + cmGeneratorExpressionDAGChecker dagChecker{ + this, "INCLUDE_DIRECTORIES", nullptr, + nullptr, this->LocalGenerator, config, + }; cmList debugProperties{ this->Makefile->GetDefinition( "CMAKE_DEBUG_TARGET_PROPERTIES") };
diff --git a/Source/cmGeneratorTarget_Link.cxx b/Source/cmGeneratorTarget_Link.cxx index ffeecc1..1111393 100644 --- a/Source/cmGeneratorTarget_Link.cxx +++ b/Source/cmGeneratorTarget_Link.cxx
@@ -542,8 +542,16 @@ return; } // Keep this logic in sync with ComputeLinkImplementationLibraries. - cmGeneratorExpressionDAGChecker dagChecker(this, prop, nullptr, nullptr, - this->LocalGenerator, config); + cmGeneratorExpressionDAGChecker dagChecker{ + this, + prop, + nullptr, + nullptr, + this->LocalGenerator, + config, + cmListFileBacktrace(), + cmGeneratorExpressionDAGChecker::ComputingLinkLibraries::Yes, + }; // The $<LINK_ONLY> expression may be in a link interface to specify // private link dependencies that are otherwise excluded from usage // requirements. @@ -1133,8 +1141,16 @@ // Collect libraries directly linked in this configuration. for (auto const& entry : entryRange) { // Keep this logic in sync with ExpandLinkItems. - cmGeneratorExpressionDAGChecker dagChecker( - this, "LINK_LIBRARIES", nullptr, nullptr, this->LocalGenerator, config); + cmGeneratorExpressionDAGChecker dagChecker{ + this, + "LINK_LIBRARIES", + nullptr, + nullptr, + this->LocalGenerator, + config, + cmListFileBacktrace(), + cmGeneratorExpressionDAGChecker::ComputingLinkLibraries::Yes, + }; // The $<LINK_ONLY> expression may be used to specify link dependencies // that are otherwise excluded from usage requirements. if (usage == UseTo::Compile) {
diff --git a/Source/cmGeneratorTarget_LinkDirectories.cxx b/Source/cmGeneratorTarget_LinkDirectories.cxx index f7c2108..90c8d7e 100644 --- a/Source/cmGeneratorTarget_LinkDirectories.cxx +++ b/Source/cmGeneratorTarget_LinkDirectories.cxx
@@ -122,8 +122,9 @@ std::vector<BT<std::string>> result; std::unordered_set<std::string> uniqueDirectories; - cmGeneratorExpressionDAGChecker dagChecker( - this, "LINK_DIRECTORIES", nullptr, nullptr, this->LocalGenerator, config); + cmGeneratorExpressionDAGChecker dagChecker{ + this, "LINK_DIRECTORIES", nullptr, nullptr, this->LocalGenerator, config, + }; cmList debugProperties{ this->Makefile->GetDefinition( "CMAKE_DEBUG_TARGET_PROPERTIES") };
diff --git a/Source/cmGeneratorTarget_Options.cxx b/Source/cmGeneratorTarget_Options.cxx index 13b284c..5bd4902 100644 --- a/Source/cmGeneratorTarget_Options.cxx +++ b/Source/cmGeneratorTarget_Options.cxx
@@ -230,8 +230,9 @@ std::vector<BT<std::string>> result; std::unordered_set<std::string> uniqueOptions; - cmGeneratorExpressionDAGChecker dagChecker( - this, "COMPILE_OPTIONS", nullptr, nullptr, this->LocalGenerator, config); + cmGeneratorExpressionDAGChecker dagChecker{ + this, "COMPILE_OPTIONS", nullptr, nullptr, this->LocalGenerator, config, + }; cmList debugProperties{ this->Makefile->GetDefinition( "CMAKE_DEBUG_TARGET_PROPERTIES") }; @@ -269,8 +270,9 @@ std::vector<BT<std::string>> result; std::unordered_set<std::string> uniqueFeatures; - cmGeneratorExpressionDAGChecker dagChecker( - this, "COMPILE_FEATURES", nullptr, nullptr, this->LocalGenerator, config); + cmGeneratorExpressionDAGChecker dagChecker{ + this, "COMPILE_FEATURES", nullptr, nullptr, this->LocalGenerator, config, + }; cmList debugProperties{ this->Makefile->GetDefinition( "CMAKE_DEBUG_TARGET_PROPERTIES") }; @@ -317,9 +319,10 @@ std::vector<BT<std::string>> list; std::unordered_set<std::string> uniqueOptions; - cmGeneratorExpressionDAGChecker dagChecker(this, "COMPILE_DEFINITIONS", - nullptr, nullptr, - this->LocalGenerator, config); + cmGeneratorExpressionDAGChecker dagChecker{ + this, "COMPILE_DEFINITIONS", nullptr, + nullptr, this->LocalGenerator, config, + }; cmList debugProperties{ this->Makefile->GetDefinition( "CMAKE_DEBUG_TARGET_PROPERTIES") }; @@ -353,9 +356,9 @@ } std::unordered_set<std::string> uniqueOptions; - cmGeneratorExpressionDAGChecker dagChecker(this, "PRECOMPILE_HEADERS", - nullptr, nullptr, - this->LocalGenerator, config); + cmGeneratorExpressionDAGChecker dagChecker{ + this, "PRECOMPILE_HEADERS", nullptr, nullptr, this->LocalGenerator, config, + }; cmList debugProperties{ this->Makefile->GetDefinition( "CMAKE_DEBUG_TARGET_PROPERTIES") }; @@ -410,8 +413,9 @@ std::vector<BT<std::string>> result; std::unordered_set<std::string> uniqueOptions; - cmGeneratorExpressionDAGChecker dagChecker( - this, "LINK_OPTIONS", nullptr, nullptr, this->LocalGenerator, config); + cmGeneratorExpressionDAGChecker dagChecker{ + this, "LINK_OPTIONS", nullptr, nullptr, this->LocalGenerator, config, + }; cmList debugProperties{ this->Makefile->GetDefinition( "CMAKE_DEBUG_TARGET_PROPERTIES") }; @@ -591,9 +595,10 @@ std::vector<BT<std::string>> result; std::unordered_set<std::string> uniqueOptions; - cmGeneratorExpressionDAGChecker dagChecker(this, "STATIC_LIBRARY_OPTIONS", - nullptr, nullptr, - this->LocalGenerator, config); + cmGeneratorExpressionDAGChecker dagChecker{ + this, "STATIC_LIBRARY_OPTIONS", nullptr, + nullptr, this->LocalGenerator, config, + }; EvaluatedTargetPropertyEntries entries; if (cmValue linkOptions = this->GetProperty("STATIC_LIBRARY_OPTIONS")) { @@ -635,8 +640,9 @@ { std::vector<BT<std::string>> result; std::unordered_set<std::string> uniqueOptions; - cmGeneratorExpressionDAGChecker dagChecker( - this, "LINK_DEPENDS", nullptr, nullptr, this->LocalGenerator, config); + cmGeneratorExpressionDAGChecker dagChecker{ + this, "LINK_DEPENDS", nullptr, nullptr, this->LocalGenerator, config, + }; EvaluatedTargetPropertyEntries entries; if (cmValue linkDepends = this->GetProperty("LINK_DEPENDS")) {
diff --git a/Source/cmGeneratorTarget_Sources.cxx b/Source/cmGeneratorTarget_Sources.cxx index 742d0d9..b699761 100644 --- a/Source/cmGeneratorTarget_Sources.cxx +++ b/Source/cmGeneratorTarget_Sources.cxx
@@ -240,8 +240,9 @@ this->DebugSourcesDone = true; - cmGeneratorExpressionDAGChecker dagChecker(this, "SOURCES", nullptr, nullptr, - this->LocalGenerator, config); + cmGeneratorExpressionDAGChecker dagChecker{ + this, "SOURCES", nullptr, nullptr, this->LocalGenerator, config, + }; EvaluatedTargetPropertyEntries entries = EvaluateTargetPropertyEntries( this, config, std::string(), &dagChecker, this->SourceEntries);
diff --git a/Source/cmGeneratorTarget_TransitiveProperty.cxx b/Source/cmGeneratorTarget_TransitiveProperty.cxx index fadd801..2de7518 100644 --- a/Source/cmGeneratorTarget_TransitiveProperty.cxx +++ b/Source/cmGeneratorTarget_TransitiveProperty.cxx
@@ -45,6 +45,7 @@ { "INTERFACE_INCLUDE_DIRECTORIES"_s, UseTo::Compile } }, { "LINK_DEPENDS"_s, { "INTERFACE_LINK_DEPENDS"_s, UseTo::Link } }, { "LINK_DIRECTORIES"_s, { "INTERFACE_LINK_DIRECTORIES"_s, UseTo::Link } }, + { "LINK_LIBRARIES"_s, { "INTERFACE_LINK_LIBRARIES"_s, UseTo::Link } }, { "LINK_OPTIONS"_s, { "INTERFACE_LINK_OPTIONS"_s, UseTo::Link } }, { "PRECOMPILE_HEADERS"_s, { "INTERFACE_PRECOMPILE_HEADERS"_s, UseTo::Compile } }, @@ -109,9 +110,15 @@ // Evaluate $<TARGET_PROPERTY:this,prop> as if it were compiled. This is // a subset of TargetPropertyNode::Evaluate without stringify/parse steps // but sufficient for transitive interface properties. - cmGeneratorExpressionDAGChecker dagChecker( - context->Backtrace, this, prop, nullptr, dagCheckerParent, - this->LocalGenerator, context->Config); + cmGeneratorExpressionDAGChecker dagChecker{ + this, + prop, + nullptr, + dagCheckerParent, + context->LG, + context->Config, + context->Backtrace, + }; switch (dagChecker.Check()) { case cmGeneratorExpressionDAGChecker::SELF_REFERENCE: dagChecker.ReportError( @@ -177,10 +184,9 @@ } cm::optional<cmGeneratorTarget::TransitiveProperty> -cmGeneratorTarget::IsTransitiveProperty(cm::string_view prop, - cmLocalGenerator const* lg, - std::string const& config, - bool evaluatingLinkLibraries) const +cmGeneratorTarget::IsTransitiveProperty( + cm::string_view prop, cmLocalGenerator const* lg, std::string const& config, + cmGeneratorExpressionDAGChecker const* dagChecker) const { cm::optional<TransitiveProperty> result; static cm::string_view const kINTERFACE_ = "INTERFACE_"_s; @@ -191,6 +197,13 @@ prop = prop.substr(kINTERFACE_.length()); } auto i = BuiltinTransitiveProperties.find(prop); + if (i != BuiltinTransitiveProperties.end() && + // Look up CMP0189 in the context where evaluation occurs, + // not where the target was created. + lg->GetPolicyStatus(cmPolicies::CMP0189) != cmPolicies::NEW && + prop == "LINK_LIBRARIES"_s) { + i = BuiltinTransitiveProperties.end(); + } if (i != BuiltinTransitiveProperties.end()) { result = i->second; if (result->Usage != cmGeneratorTarget::UseTo::Compile) { @@ -202,7 +215,7 @@ result->Usage = cmGeneratorTarget::UseTo::Compile; } } - } else if (!evaluatingLinkLibraries) { + } else if (!dagChecker || !dagChecker->IsComputingLinkLibraries()) { // Honor TRANSITIVE_COMPILE_PROPERTIES and TRANSITIVE_LINK_PROPERTIES // from the link closure when we are not evaluating the closure itself. CustomTransitiveProperties const& ctp =
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index f8a2b58..6037732 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -1814,9 +1814,37 @@ // create prelink phase preLinkPhase = this->CreateRunScriptBuildPhase("CMake PreLink Rules", gtgt, prelink); + + std::vector<std::string> depends; + if (gtgt->IsBundleOnApple()) { + // In Xcode 16+ the POST_BUILD phase needs explicit dependencies to + // ensure it runs after certain bundle files are generated. + depends = { + "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/" + "Contents/Resources/DWARF/${PRODUCT_NAME}", + "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/" + "Contents/Info.plist", + "$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)", + "$(TARGET_BUILD_DIR)/$(INFOPLIST_PATH)", + }; + if (resourceBuildPhase) { + auto resourceFiles = resourceBuildPhase->GetAttribute("files"); + for (auto xsf : resourceFiles->GetObjectList()) { + auto fileRef = xsf->GetAttribute("fileRef"); + auto fileObj = fileRef->GetObject(); + auto path = fileObj->GetAttribute("path"); + auto fileName = cmSystemTools::GetFilenameName(path->GetString()); + if (cmSystemTools::GetFilenameLastExtension(fileName) == ".plist") { + depends.push_back( + "$(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/" + + fileName); + } + } + } + } // create postbuild phase postBuildPhase = this->CreateRunScriptBuildPhase("CMake PostBuild Rules", - gtgt, postbuild); + gtgt, postbuild, depends); } else { std::vector<cmSourceFile*> classes; if (!gtgt->GetConfigCommonSourceFilesForXcode(classes)) { @@ -2030,7 +2058,8 @@ cmXCodeObject* cmGlobalXCodeGenerator::CreateRunScriptBuildPhase( std::string const& name, cmGeneratorTarget const* gt, - std::vector<cmCustomCommand> const& commands) + std::vector<cmCustomCommand> const& commands, + std::vector<std::string> const& depends) { if (commands.empty()) { return nullptr; @@ -2066,6 +2095,13 @@ buildPhase->AddAttribute("shellScript", this->CreateString(shellScript)); buildPhase->AddAttribute("showEnvVarsInLog", this->CreateString("0")); { + cmXCodeObject* inputPaths = this->CreateObject(cmXCodeObject::OBJECT_LIST); + for (std::string const& s : depends) { + inputPaths->AddUniqueObject(this->CreateString(s)); + } + buildPhase->AddAttribute("inputPaths", inputPaths); + } + { cmXCodeObject* outputPaths = this->CreateObject(cmXCodeObject::OBJECT_LIST); for (std::string const& o : allConfigOutputs) {
diff --git a/Source/cmGlobalXCodeGenerator.h b/Source/cmGlobalXCodeGenerator.h index dff8520..3282e0b 100644 --- a/Source/cmGlobalXCodeGenerator.h +++ b/Source/cmGlobalXCodeGenerator.h
@@ -296,7 +296,8 @@ cmCustomCommand const& cc); cmXCodeObject* CreateRunScriptBuildPhase( std::string const& name, cmGeneratorTarget const* gt, - std::vector<cmCustomCommand> const& commands); + std::vector<cmCustomCommand> const& commands, + std::vector<std::string> const& depends = {}); std::string ConstructScript(cmCustomCommandGenerator const& ccg); void CreateReRunCMakeFile(cmLocalGenerator* root, std::vector<cmLocalGenerator*> const& gens);
diff --git a/Source/cmInstrumentation.cxx b/Source/cmInstrumentation.cxx index 2c4414f..dff389d 100644 --- a/Source/cmInstrumentation.cxx +++ b/Source/cmInstrumentation.cxx
@@ -538,7 +538,7 @@ { std::string command_str; for (size_t i = 0; i < args.size(); ++i) { - command_str = cmStrCat(command_str, args[i]); + command_str = cmStrCat(command_str, '"', args[i], '"'); if (i < args.size() - 1) { command_str = cmStrCat(command_str, ' '); }
diff --git a/Source/cmPackageInfoReader.cxx b/Source/cmPackageInfoReader.cxx index 40ed54e..503764f 100644 --- a/Source/cmPackageInfoReader.cxx +++ b/Source/cmPackageInfoReader.cxx
@@ -146,16 +146,24 @@ } // Get and validate prefix-relative path. + std::string const& absPath = cmSystemTools::GetFilenamePath(filepath); std::string relPath = data["cps_path"].asString(); cmSystemTools::ConvertToUnixSlashes(relPath); - if (relPath.empty() || !cmHasLiteralPrefix(relPath, "@prefix@/")) { + if (relPath.empty() || !cmHasLiteralPrefix(relPath, "@prefix@")) { + // The relative prefix is not valid. + return {}; + } + if (relPath.size() == 8) { + // The relative path is exactly "@prefix@". + return absPath; + } + if (relPath[8] != '/') { // The relative prefix is not valid. return {}; } relPath = relPath.substr(8); // Get directory portion of the absolute path. - std::string const& absPath = cmSystemTools::GetFilenamePath(filepath); if (ComparePathSuffix(absPath, relPath)) { return absPath.substr(0, absPath.size() - relPath.size()); }
diff --git a/Source/cmPolicies.h b/Source/cmPolicies.h index c244975..8549c0a 100644 --- a/Source/cmPolicies.h +++ b/Source/cmPolicies.h
@@ -563,7 +563,10 @@ "Include source file without an extension after the same name with " \ "an extension.", \ 4, 1, 0, WARN) \ - SELECT(POLICY, CMP0188, "The FindGCCXML module is removed.", 4, 1, 0, WARN) + SELECT(POLICY, CMP0188, "The FindGCCXML module is removed.", 4, 1, 0, WARN) \ + SELECT(POLICY, CMP0189, \ + "TARGET_PROPERTY evaluates LINK_LIBRARIES properties transitively.", \ + 4, 1, 0, WARN) #define CM_SELECT_ID(F, A1, A2, A3, A4, A5, A6) F(A1) #define CM_FOR_EACH_POLICY_ID(POLICY) \
diff --git a/Source/cmQtAutoGenInitializer.cxx b/Source/cmQtAutoGenInitializer.cxx index 152a68b..9ec29ff 100644 --- a/Source/cmQtAutoGenInitializer.cxx +++ b/Source/cmQtAutoGenInitializer.cxx
@@ -1920,9 +1920,10 @@ if (this->MultiConfig) { for (auto const& cfg : this->ConfigsList) { if (!cfg.empty()) { - cmGeneratorExpressionDAGChecker dagChecker( - this->GenTarget, "AUTOMOC_MACRO_NAMES", nullptr, nullptr, - this->LocalGen, cfg); + cmGeneratorExpressionDAGChecker dagChecker{ + this->GenTarget, "AUTOMOC_MACRO_NAMES", nullptr, + nullptr, this->LocalGen, cfg, + }; AddInterfaceEntries(this->GenTarget, cfg, "INTERFACE_AUTOMOC_MACRO_NAMES", "CXX", &dagChecker, InterfaceAutoMocMacroNamesEntries, @@ -1930,9 +1931,10 @@ } } } else { - cmGeneratorExpressionDAGChecker dagChecker( - this->GenTarget, "AUTOMOC_MACRO_NAMES", nullptr, nullptr, - this->LocalGen, this->ConfigDefault); + cmGeneratorExpressionDAGChecker dagChecker{ + this->GenTarget, "AUTOMOC_MACRO_NAMES", nullptr, + nullptr, this->LocalGen, this->ConfigDefault, + }; AddInterfaceEntries(this->GenTarget, this->ConfigDefault, "INTERFACE_AUTOMOC_MACRO_NAMES", "CXX", &dagChecker, InterfaceAutoMocMacroNamesEntries,
diff --git a/Source/cmTimestamp.cxx b/Source/cmTimestamp.cxx index e690774..b7452eb 100644 --- a/Source/cmTimestamp.cxx +++ b/Source/cmTimestamp.cxx
@@ -16,6 +16,7 @@ #include <cstdlib> #include <cstring> +#include <ctime> #include <sstream> #include <utility> @@ -275,7 +276,8 @@ return std::string(); } - return std::to_string(static_cast<long int>(difftime(timeT, unixEpoch))); + return std::to_string( + static_cast<int64_t>(std::difftime(timeT, unixEpoch))); } case 'f': // microseconds {
diff --git a/Source/cmake.cxx b/Source/cmake.cxx index f880884..7a28a2f 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx
@@ -547,6 +547,21 @@ // Parse the args bool cmake::SetCacheArgs(std::vector<std::string> const& args) { + static std::string const kCMAKE_POLICY_VERSION_MINIMUM = + "CMAKE_POLICY_VERSION_MINIMUM"; + if (!this->State->GetInitializedCacheValue(kCMAKE_POLICY_VERSION_MINIMUM)) { + cm::optional<std::string> policyVersion = + cmSystemTools::GetEnvVar(kCMAKE_POLICY_VERSION_MINIMUM); + if (policyVersion && !policyVersion->empty()) { + this->AddCacheEntry( + kCMAKE_POLICY_VERSION_MINIMUM, *policyVersion, + "Override policy version for cmake_minimum_required calls.", + cmStateEnums::STRING); + this->State->SetCacheEntryProperty(kCMAKE_POLICY_VERSION_MINIMUM, + "ADVANCED", "1"); + } + } + auto DefineLambda = [](std::string const& entry, cmake* state) -> bool { std::string var; std::string value;
diff --git a/Templates/TestDriver.cxx.in b/Templates/TestDriver.cxx.in index 3bb2fd6..0ccecfd 100644 --- a/Templates/TestDriver.cxx.in +++ b/Templates/TestDriver.cxx.in
@@ -97,7 +97,7 @@ /* If no test name was given */ /* process command line with user function. */ - if (ac < 2) { + if (ac > 0 && ac < 2) { /* Ask for a test. */ printf("Available tests:\n"); for (i = 0; i < NumTests; ++i) {
diff --git a/Tests/CMakeGUI/CMakeGUITest.cxx b/Tests/CMakeGUI/CMakeGUITest.cxx index a3414fd..69c1bd6 100644 --- a/Tests/CMakeGUI/CMakeGUITest.cxx +++ b/Tests/CMakeGUI/CMakeGUITest.cxx
@@ -75,7 +75,8 @@ Qt::QueuedConnection); QVERIFY(configureDoneSpy.wait(timeout)); - QCOMPARE(configureDoneSpy, { { expectedResult } }); + QList<QVariant> configureDoneSignalArguments = configureDoneSpy.takeFirst(); + QCOMPARE(configureDoneSignalArguments.at(0).toInt(), expectedResult); } void CMakeGUITest::sourceBinaryArgs() @@ -359,13 +360,15 @@ QCOMPARE(this->m_window->Preset->isEnabled(), false); writePresets("build1", { "preset" }); - loopSleep(1500); + this->m_window->ReloadPresetsButton->click(); + loopSleep(); QCOMPARE(this->m_window->Preset->presetName(), QString{}); QCOMPARE(this->m_window->Preset->presets().size(), 1); QCOMPARE(this->m_window->BinaryDirectory->currentText(), ""); QCOMPARE(this->m_window->Preset->isEnabled(), true); this->m_window->Preset->setPresetName("preset"); + this->m_window->ReloadPresetsButton->click(); loopSleep(); QCOMPARE(this->m_window->Preset->presetName(), "preset"); QCOMPARE(this->m_window->Preset->presets().size(), 1); @@ -374,7 +377,8 @@ QCOMPARE(this->m_window->Preset->isEnabled(), true); writePresets("build2", { "preset2", "preset" }); - loopSleep(1500); + this->m_window->ReloadPresetsButton->click(); + loopSleep(); QCOMPARE(this->m_window->Preset->presetName(), "preset"); QCOMPARE(this->m_window->Preset->presets().size(), 2); QCOMPARE(this->m_window->BinaryDirectory->currentText(), @@ -382,7 +386,8 @@ QCOMPARE(this->m_window->Preset->isEnabled(), true); writePresets("build3", { "preset2" }); - loopSleep(1500); + this->m_window->ReloadPresetsButton->click(); + loopSleep(); QCOMPARE(this->m_window->Preset->presetName(), QString{}); QCOMPARE(this->m_window->Preset->presets().size(), 1); QCOMPARE(this->m_window->BinaryDirectory->currentText(), @@ -420,7 +425,8 @@ QFile(CMakeGUITest_BINARY_DIR "/changingPresets/src2/CMakePresets.json") .remove(); - loopSleep(1500); + this->m_window->ReloadPresetsButton->click(); + loopSleep(); QCOMPARE(this->m_window->Preset->presetName(), QString{}); QCOMPARE(this->m_window->Preset->presets().size(), 0); QCOMPARE(this->m_window->BinaryDirectory->currentText(),
diff --git a/Tests/CMakeGUI/CMakeLists.txt b/Tests/CMakeGUI/CMakeLists.txt index c9f44e9..d4c9bf8 100644 --- a/Tests/CMakeGUI/CMakeLists.txt +++ b/Tests/CMakeGUI/CMakeLists.txt
@@ -1,6 +1,8 @@ include(CMakeParseArguments) -find_package(Qt5Test REQUIRED) +get_property(CMake_QT_MAJOR_VERSION TARGET cmake-gui PROPERTY CMake_QT_MAJOR_VERSION) + +find_package(Qt${CMake_QT_MAJOR_VERSION}Test REQUIRED) if(MSVC) # QTBUG-118993: Qt uses deprecated stdext::checked_array_iterator @@ -14,21 +16,40 @@ ) set(MOC_SRCS) -qt5_wrap_cpp(MOC_SRCS - CatchShow.h - ) +if(CMake_QT_MAJOR_VERSION VERSION_LESS 6) + qt5_wrap_cpp(MOC_SRCS + CatchShow.h + ) +else() + qt_wrap_cpp(MOC_SRCS + CatchShow.h + ) +endif() add_library(CMakeGUITestLib STATIC ${MOC_SRCS} CatchShow.cxx CatchShow.h ) -target_link_libraries(CMakeGUITestLib Qt5::Core Qt5::Gui Qt5::Widgets) +target_link_libraries(CMakeGUITestLib + Qt${CMake_QT_MAJOR_VERSION}::Core + Qt${CMake_QT_MAJOR_VERSION}::Gui + Qt${CMake_QT_MAJOR_VERSION}::Widgets) set(MOC_SRCS) -qt5_wrap_cpp(MOC_SRCS - CMakeGUITest.h - ) +if(CMake_QT_MAJOR_VERSION VERSION_LESS 6) + qt5_wrap_cpp(MOC_SRCS + CMakeGUITest.h + ) +else() + qt_wrap_cpp(MOC_SRCS + CMakeGUITest.h + ) +endif() add_executable(CMakeGUITest CMakeGUITest.cxx ${MOC_SRCS}) -target_link_libraries(CMakeGUITest CMakeGUIMainLib CMakeGUITestLib Qt5::Core Qt5::Test Qt5::Widgets) +target_link_libraries(CMakeGUITest CMakeGUIMainLib CMakeGUITestLib + Qt${CMake_QT_MAJOR_VERSION}::Core + Qt${CMake_QT_MAJOR_VERSION}::Test + Qt${CMake_QT_MAJOR_VERSION}::Widgets +) target_compile_definitions(CMakeGUITest PRIVATE "CMakeGUITest_SOURCE_DIR=\"${CMAKE_CURRENT_SOURCE_DIR}\"" "CMakeGUITest_BINARY_DIR=\"${CMAKE_CURRENT_BINARY_DIR}\"" @@ -47,11 +68,20 @@ cmake_parse_arguments(_t "" "" "SOURCES;MOC_SOURCES" ${ARGN}) set(MOC_SRCS) - qt5_wrap_cpp(MOC_SRCS - ${_t_MOC_SOURCES} - ) + if(CMake_QT_MAJOR_VERSION VERSION_LESS 6) + qt5_wrap_cpp(MOC_SRCS + ${_t_MOC_SOURCES} + ) + else() + qt_wrap_cpp(MOC_SRCS + ${_t_MOC_SOURCES} + ) + endif() add_executable(${name} ${_t_SOURCES} ${MOC_SRCS}) - target_link_libraries(${name} CMakeGUILib CMakeGUITestLib Qt5::Core Qt5::Test Qt5::Widgets) + target_link_libraries(${name} CMakeGUILib CMakeGUITestLib + Qt${CMake_QT_MAJOR_VERSION}::Core + Qt${CMake_QT_MAJOR_VERSION}::Test + Qt${CMake_QT_MAJOR_VERSION}::Widgets) add_test(NAME "CMakeGUILib.${name}" COMMAND ${name}) endfunction()
diff --git a/Tests/CMakeGUI/QCMakePresetItemModelTest.cxx b/Tests/CMakeGUI/QCMakePresetItemModelTest.cxx index 97dbb30..a2320b3 100644 --- a/Tests/CMakeGUI/QCMakePresetItemModelTest.cxx +++ b/Tests/CMakeGUI/QCMakePresetItemModelTest.cxx
@@ -17,7 +17,9 @@ void QCMakePresetItemModelTest::initTestCase() { +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QMetaType::registerComparators<QCMakePreset>(); +#endif } void QCMakePresetItemModelTest::initTestCase_data()
diff --git a/Tests/CustomTransitiveProperties/CMP0189/CMakeLists.txt b/Tests/CustomTransitiveProperties/CMP0189/CMakeLists.txt new file mode 100644 index 0000000..04fb1b4 --- /dev/null +++ b/Tests/CustomTransitiveProperties/CMP0189/CMakeLists.txt
@@ -0,0 +1,57 @@ +cmake_policy(SET CMP0189 NEW) +set(out "${CMAKE_CURRENT_BINARY_DIR}/out-$<CONFIG>.txt") +file(GENERATE OUTPUT "${out}" CONTENT "# file(GENERATE) produced: +${in_LINK_LIBRARIES} +") +add_custom_target(check-CMP0189-NEW ALL VERBATIM + COMMAND ${CMAKE_COMMAND} -Dconfig=$<CONFIG> -Dout=${out} -P${CMAKE_CURRENT_SOURCE_DIR}/check.cmake + COMMAND check-args + "$<TARGET_PROPERTY:iface1,LINK_LIBRARIES>" "" + "$<TARGET_PROPERTY:iface1,INTERFACE_LINK_LIBRARIES>" "" + "$<TARGET_PROPERTY:iface2,LINK_LIBRARIES>" "" + "$<TARGET_PROPERTY:iface2,INTERFACE_LINK_LIBRARIES>" "iface1" + "$<TARGET_PROPERTY:static1,LINK_LIBRARIES>" "iface2;iface1" + "$<TARGET_PROPERTY:static1,INTERFACE_LINK_LIBRARIES>" "iface2;iface1" + "$<TARGET_PROPERTY:CustomTransitiveProperties,LINK_LIBRARIES>" "static1;object1;iface2;iface1;iface2" + "$<TARGET_PROPERTY:CustomTransitiveProperties,INTERFACE_LINK_LIBRARIES>" "" + COMMAND check-args + "$<TARGET_PROPERTY:iface10,LINK_LIBRARIES>" "" + "$<TARGET_PROPERTY:iface10,INTERFACE_LINK_LIBRARIES>" "" + "$<TARGET_PROPERTY:iface11,LINK_LIBRARIES>" "" + "$<TARGET_PROPERTY:iface11,INTERFACE_LINK_LIBRARIES>" "iface10" + "$<TARGET_PROPERTY:static10,LINK_LIBRARIES>" "iface11;iface10" + # _/ \__ + # / \ + # "static10[iface11];iface11[iface10]" + "$<TARGET_PROPERTY:static10,INTERFACE_LINK_LIBRARIES>" "iface11;iface10" + "$<TARGET_PROPERTY:static11,LINK_LIBRARIES>" "static10;iface11;iface11;iface10" + # __/ __/ \__ \__________ + # / / \ \ + # "static11[static10;iface11];static10[iface11;iface11[iface10]]" + "$<TARGET_PROPERTY:static11,INTERFACE_LINK_LIBRARIES>" "static10;iface11;iface11;iface10" + "$<TARGET_PROPERTY:main10,LINK_LIBRARIES>" "static11;static10;static10;iface11;iface11;iface10" + # _______/ _______/ | | \______ \______________ + # / / | | \ \ + # "main10[static11;static10];static11[static10;iface11;static10[iface11;iface11[iface10]]]" + "$<TARGET_PROPERTY:main10,INTERFACE_LINK_LIBRARIES>" "" + COMMAND check-args + "$<TARGET_PROPERTY:iface20,LINK_LIBRARIES>" "" + "$<TARGET_PROPERTY:iface20,INTERFACE_LINK_LIBRARIES>" "" + "$<TARGET_PROPERTY:iface21,LINK_LIBRARIES>" "" + "$<TARGET_PROPERTY:iface21,INTERFACE_LINK_LIBRARIES>" "iface20" + "$<TARGET_PROPERTY:static20,LINK_LIBRARIES>" "iface21;iface20" + # _/ \__ + # / \ + # "static20[iface21];iface21[iface20]" + "$<TARGET_PROPERTY:static20,INTERFACE_LINK_LIBRARIES>" "iface21;iface20" + "$<TARGET_PROPERTY:static21,LINK_LIBRARIES>" "static20;iface21;iface21;iface20" + # __/ __/ \__ \__________ + # / / \ \ + # "static21[static20;iface21];static20[iface21;iface21[iface20]]" + "$<TARGET_PROPERTY:static21,INTERFACE_LINK_LIBRARIES>" "static20;iface21;iface21;iface20" + "$<TARGET_PROPERTY:main20,LINK_LIBRARIES>" "static21;static20;static20;iface21;iface21;iface20" + # _______/ _______/ | | \______ \______________ + # / / | | \ \ + # "main20[static21;static20];static21[static20;iface21;static20[iface21;iface21[iface20]]]" + "$<TARGET_PROPERTY:main20,INTERFACE_LINK_LIBRARIES>" "" + )
diff --git a/Tests/CustomTransitiveProperties/CMP0189/check.cmake b/Tests/CustomTransitiveProperties/CMP0189/check.cmake new file mode 100644 index 0000000..f8e7125 --- /dev/null +++ b/Tests/CustomTransitiveProperties/CMP0189/check.cmake
@@ -0,0 +1,32 @@ +set(expect [[ +# file\(GENERATE\) produced: +iface1 LINK_LIBRARIES: '' +iface1 INTERFACE_LINK_LIBRARIES: '' +iface2 LINK_LIBRARIES: '' +iface2 INTERFACE_LINK_LIBRARIES: 'iface1' +static1 LINK_LIBRARIES: 'iface2;iface1' +static1 INTERFACE_LINK_LIBRARIES: 'iface2;iface1' +main LINK_LIBRARIES: 'static1;object1;iface2;iface1;iface2' +main INTERFACE_LINK_LIBRARIES: '' +iface10 LINK_LIBRARIES: '' +iface10 INTERFACE_LINK_LIBRARIES: '' +iface11 LINK_LIBRARIES: '' +iface11 INTERFACE_LINK_LIBRARIES: 'iface10' +static10 LINK_LIBRARIES: 'iface11;iface10' +static10 INTERFACE_LINK_LIBRARIES: 'iface11;iface10' +static11 LINK_LIBRARIES: 'static10;iface11;iface11;iface10' +static11 INTERFACE_LINK_LIBRARIES: 'static10;iface11;iface11;iface10' +main10 LINK_LIBRARIES: 'static11;static10;static10;iface11;iface11;iface10' +main10 INTERFACE_LINK_LIBRARIES: '' +iface20 LINK_LIBRARIES: '' +iface20 INTERFACE_LINK_LIBRARIES: '' +iface21 LINK_LIBRARIES: '' +iface21 INTERFACE_LINK_LIBRARIES: 'iface20' +static20 LINK_LIBRARIES: 'iface21;iface20' +static20 INTERFACE_LINK_LIBRARIES: 'iface21;iface20' +static21 LINK_LIBRARIES: 'static20;iface21;iface21;iface20' +static21 INTERFACE_LINK_LIBRARIES: 'static20;iface21;iface21;iface20' +main20 LINK_LIBRARIES: 'static21;static20;static20;iface21;iface21;iface20' +main20 INTERFACE_LINK_LIBRARIES: '' +]]) +include(${CMAKE_CURRENT_LIST_DIR}/../check-common.cmake)
diff --git a/Tests/CustomTransitiveProperties/CMakeLists.txt b/Tests/CustomTransitiveProperties/CMakeLists.txt index 83ceff5..8d800ea 100644 --- a/Tests/CustomTransitiveProperties/CMakeLists.txt +++ b/Tests/CustomTransitiveProperties/CMakeLists.txt
@@ -90,9 +90,33 @@ $<TARGET_PROPERTY:CUSTOM_W> ) +# Test TRANSITIVE_LINK_PROPERTIES containing LINK_LIBRARIES itself. +add_library(iface10 INTERFACE) +set_property(TARGET iface10 PROPERTY TRANSITIVE_LINK_PROPERTIES "LINK_LIBRARIES") +add_library(iface11 INTERFACE) +target_link_libraries(iface11 INTERFACE iface10) +add_library(static10 STATIC static10.c) +target_link_libraries(static10 PRIVATE iface11) +add_library(static11 STATIC static11.c) +target_link_libraries(static11 PRIVATE static10 iface11) +add_executable(main10 main10.c) +target_link_libraries(main10 PRIVATE static11 static10) + +# Test CMP0189 OLD and NEW behavior. +add_library(iface20 INTERFACE) +add_library(iface21 INTERFACE) +target_link_libraries(iface21 INTERFACE iface20) +add_library(static20 STATIC static20.c) +target_link_libraries(static20 PRIVATE iface21) +add_library(static21 STATIC static21.c) +target_link_libraries(static21 PRIVATE static20 iface21) +add_executable(main20 main20.c) +target_link_libraries(main20 PRIVATE static21 static20) + # Test TRANSITIVE_*_PROPERTY evaluation outside of usage requirements. +add_executable(check-args check-args.c) set(out "${CMAKE_CURRENT_BINARY_DIR}/out-$<CONFIG>.txt") -file(GENERATE OUTPUT "${out}" CONTENT "# file(GENERATE) produced: +set(in_CUSTOM [====[ iface1 CUSTOM_A: '$<TARGET_PROPERTY:iface1,CUSTOM_A>' iface1 INTERFACE_CUSTOM_A: '$<TARGET_PROPERTY:iface1,INTERFACE_CUSTOM_A>' iface2 CUSTOM_A: '$<TARGET_PROPERTY:iface2,CUSTOM_A>' @@ -125,10 +149,45 @@ main INTERFACE_CUSTOM_V: '$<TARGET_PROPERTY:CustomTransitiveProperties,INTERFACE_CUSTOM_V>' main CUSTOM_W: '$<TARGET_PROPERTY:CustomTransitiveProperties,CUSTOM_W>' main INTERFACE_CUSTOM_W: '$<TARGET_PROPERTY:CustomTransitiveProperties,INTERFACE_CUSTOM_W>' +]====]) +set(in_LINK_LIBRARIES [====[ +iface1 LINK_LIBRARIES: '$<TARGET_PROPERTY:iface1,LINK_LIBRARIES>' +iface1 INTERFACE_LINK_LIBRARIES: '$<TARGET_PROPERTY:iface1,INTERFACE_LINK_LIBRARIES>' +iface2 LINK_LIBRARIES: '$<TARGET_PROPERTY:iface2,LINK_LIBRARIES>' +iface2 INTERFACE_LINK_LIBRARIES: '$<TARGET_PROPERTY:iface2,INTERFACE_LINK_LIBRARIES>' +static1 LINK_LIBRARIES: '$<TARGET_PROPERTY:static1,LINK_LIBRARIES>' +static1 INTERFACE_LINK_LIBRARIES: '$<TARGET_PROPERTY:static1,INTERFACE_LINK_LIBRARIES>' +main LINK_LIBRARIES: '$<TARGET_PROPERTY:CustomTransitiveProperties,LINK_LIBRARIES>' +main INTERFACE_LINK_LIBRARIES: '$<TARGET_PROPERTY:CustomTransitiveProperties,INTERFACE_LINK_LIBRARIES>' +iface10 LINK_LIBRARIES: '$<TARGET_PROPERTY:iface10,LINK_LIBRARIES>' +iface10 INTERFACE_LINK_LIBRARIES: '$<TARGET_PROPERTY:iface10,INTERFACE_LINK_LIBRARIES>' +iface11 LINK_LIBRARIES: '$<TARGET_PROPERTY:iface11,LINK_LIBRARIES>' +iface11 INTERFACE_LINK_LIBRARIES: '$<TARGET_PROPERTY:iface11,INTERFACE_LINK_LIBRARIES>' +static10 LINK_LIBRARIES: '$<TARGET_PROPERTY:static10,LINK_LIBRARIES>' +static10 INTERFACE_LINK_LIBRARIES: '$<TARGET_PROPERTY:static10,INTERFACE_LINK_LIBRARIES>' +static11 LINK_LIBRARIES: '$<TARGET_PROPERTY:static11,LINK_LIBRARIES>' +static11 INTERFACE_LINK_LIBRARIES: '$<TARGET_PROPERTY:static11,INTERFACE_LINK_LIBRARIES>' +main10 LINK_LIBRARIES: '$<TARGET_PROPERTY:main10,LINK_LIBRARIES>' +main10 INTERFACE_LINK_LIBRARIES: '$<TARGET_PROPERTY:main10,INTERFACE_LINK_LIBRARIES>' +iface20 LINK_LIBRARIES: '$<TARGET_PROPERTY:iface20,LINK_LIBRARIES>' +iface20 INTERFACE_LINK_LIBRARIES: '$<TARGET_PROPERTY:iface20,INTERFACE_LINK_LIBRARIES>' +iface21 LINK_LIBRARIES: '$<TARGET_PROPERTY:iface21,LINK_LIBRARIES>' +iface21 INTERFACE_LINK_LIBRARIES: '$<TARGET_PROPERTY:iface21,INTERFACE_LINK_LIBRARIES>' +static20 LINK_LIBRARIES: '$<TARGET_PROPERTY:static20,LINK_LIBRARIES>' +static20 INTERFACE_LINK_LIBRARIES: '$<TARGET_PROPERTY:static20,INTERFACE_LINK_LIBRARIES>' +static21 LINK_LIBRARIES: '$<TARGET_PROPERTY:static21,LINK_LIBRARIES>' +static21 INTERFACE_LINK_LIBRARIES: '$<TARGET_PROPERTY:static21,INTERFACE_LINK_LIBRARIES>' +main20 LINK_LIBRARIES: '$<TARGET_PROPERTY:main20,LINK_LIBRARIES>' +main20 INTERFACE_LINK_LIBRARIES: '$<TARGET_PROPERTY:main20,INTERFACE_LINK_LIBRARIES>' +]====]) +file(GENERATE OUTPUT "${out}" CONTENT "# file(GENERATE) produced: +${in_CUSTOM} +${in_LINK_LIBRARIES} ") add_custom_target(check ALL VERBATIM COMMAND ${CMAKE_COMMAND} -Dconfig=$<CONFIG> -Dout=${out} -P${CMAKE_CURRENT_SOURCE_DIR}/check.cmake COMMAND CustomTransitiveProperties + COMMAND check-args "$<TARGET_PROPERTY:static1,CUSTOM_A>" "CUSTOM_A_STATIC1;CUSTOM_A_IFACE2;CUSTOM_A_TARGET_TYPE_STATIC_LIBRARY;CUSTOM_A_IFACE1;CUSTOM_A_TARGET_NAME_STATIC1" "$<TARGET_PROPERTY:static1,CUSTOM_B>" "CUSTOM_B_STATIC1;CUSTOM_B_IFACE1" "$<TARGET_PROPERTY:static1,CUSTOM_U>" "CUSTOM_U_STATIC1;CUSTOM_U_IFACE2;CUSTOM_U_TARGET_TYPE_STATIC_LIBRARY;CUSTOM_U_IFACE1;CUSTOM_U_TARGET_NAME_STATIC1" @@ -143,4 +202,46 @@ "$<TARGET_PROPERTY:CustomTransitiveProperties,CUSTOM_U>" "CUSTOM_U_MAIN;CUSTOM_U_STATIC1_IFACE;CUSTOM_U_IFACE2;CUSTOM_U_TARGET_TYPE_EXECUTABLE;CUSTOM_U_IFACE1;CUSTOM_U_TARGET_NAME_CUSTOMTRANSITIVEPROPERTIES;CUSTOM_U_OBJECT1_IFACE" "$<TARGET_PROPERTY:CustomTransitiveProperties,CUSTOM_V>" "CUSTOM_V_MAIN;CUSTOM_V_STATIC1_IFACE;CUSTOM_V_IFACE1" "$<TARGET_PROPERTY:CustomTransitiveProperties,CUSTOM_W>" "CUSTOM_W_MAIN;CUSTOM_W_IFACE1;CUSTOM_W_OBJECT1_IFACE" + COMMAND check-args + "$<TARGET_PROPERTY:iface1,LINK_LIBRARIES>" "" + "$<TARGET_PROPERTY:iface1,INTERFACE_LINK_LIBRARIES>" "" + "$<TARGET_PROPERTY:iface2,LINK_LIBRARIES>" "" + "$<TARGET_PROPERTY:iface2,INTERFACE_LINK_LIBRARIES>" "iface1" + "$<TARGET_PROPERTY:static1,LINK_LIBRARIES>" "iface2" + "$<TARGET_PROPERTY:static1,INTERFACE_LINK_LIBRARIES>" "$<LINK_ONLY:iface2$<ANGLE-R>" + "$<TARGET_PROPERTY:CustomTransitiveProperties,LINK_LIBRARIES>" "static1;object1" + "$<TARGET_PROPERTY:CustomTransitiveProperties,INTERFACE_LINK_LIBRARIES>" "" + COMMAND check-args + "$<TARGET_PROPERTY:iface10,LINK_LIBRARIES>" "" + "$<TARGET_PROPERTY:iface10,INTERFACE_LINK_LIBRARIES>" "" + "$<TARGET_PROPERTY:iface11,LINK_LIBRARIES>" "" + "$<TARGET_PROPERTY:iface11,INTERFACE_LINK_LIBRARIES>" "iface10" + "$<TARGET_PROPERTY:static10,LINK_LIBRARIES>" "iface11;iface10" + # _/ \__ + # / \ + # "static10[iface11];iface11[iface10]" + "$<TARGET_PROPERTY:static10,INTERFACE_LINK_LIBRARIES>" "iface11;iface10" + "$<TARGET_PROPERTY:static11,LINK_LIBRARIES>" "static10;iface11;iface11;iface10" + # __/ __/ \__ \__________ + # / / \ \ + # "static11[static10;iface11];static10[iface11;iface11[iface10]]" + "$<TARGET_PROPERTY:static11,INTERFACE_LINK_LIBRARIES>" "static10;iface11;iface11;iface10" + "$<TARGET_PROPERTY:main10,LINK_LIBRARIES>" "static11;static10;static10;iface11;iface11;iface10" + # _______/ _______/ | | \______ \______________ + # / / | | \ \ + # "main10[static11;static10];static11[static10;iface11;static10[iface11;iface11[iface10]]]" + "$<TARGET_PROPERTY:main10,INTERFACE_LINK_LIBRARIES>" "" + COMMAND check-args + "$<TARGET_PROPERTY:iface20,LINK_LIBRARIES>" "" + "$<TARGET_PROPERTY:iface20,INTERFACE_LINK_LIBRARIES>" "" + "$<TARGET_PROPERTY:iface21,LINK_LIBRARIES>" "" + "$<TARGET_PROPERTY:iface21,INTERFACE_LINK_LIBRARIES>" "iface20" + "$<TARGET_PROPERTY:static20,LINK_LIBRARIES>" "iface21" + "$<TARGET_PROPERTY:static20,INTERFACE_LINK_LIBRARIES>" "$<LINK_ONLY:iface21$<ANGLE-R>" + "$<TARGET_PROPERTY:static21,LINK_LIBRARIES>" "static20;iface21" + "$<TARGET_PROPERTY:static21,INTERFACE_LINK_LIBRARIES>" "$<LINK_ONLY:static20$<ANGLE-R>;$<LINK_ONLY:iface21$<ANGLE-R>" + "$<TARGET_PROPERTY:main20,LINK_LIBRARIES>" "static21;static20" + "$<TARGET_PROPERTY:main20,INTERFACE_LINK_LIBRARIES>" "" ) + +add_subdirectory(CMP0189)
diff --git a/Tests/CustomTransitiveProperties/check-args.c b/Tests/CustomTransitiveProperties/check-args.c new file mode 100644 index 0000000..da97f8a --- /dev/null +++ b/Tests/CustomTransitiveProperties/check-args.c
@@ -0,0 +1,16 @@ +#include <stdio.h> +#include <string.h> + +int main(int argc, char** argv) +{ + int result = 0; + int i; + for (i = 2; i < argc; i += 2) { + if (strcmp(argv[i - 1], argv[i]) != 0) { + fprintf(stderr, "Argument %d expected '%s' but got '%s'.\n", i, argv[i], + argv[i - 1]); + result = 1; + } + } + return result; +}
diff --git a/Tests/CustomTransitiveProperties/check-common.cmake b/Tests/CustomTransitiveProperties/check-common.cmake new file mode 100644 index 0000000..28ea94f --- /dev/null +++ b/Tests/CustomTransitiveProperties/check-common.cmake
@@ -0,0 +1,12 @@ +string(REGEX REPLACE "\r\n" "\n" expect "${expect}") +string(REGEX REPLACE "\n+$" "" expect "${expect}") + +file(READ "${out}" actual) +string(REGEX REPLACE "\r\n" "\n" actual "${actual}") +string(REGEX REPLACE "\n+$" "" actual "${actual}") + +if(NOT actual MATCHES "^${expect}$") + string(REPLACE "\n" "\n expect> " expect " expect> ${expect}") + string(REPLACE "\n" "\n actual> " actual " actual> ${actual}") + message(FATAL_ERROR "Expected file(GENERATE) output:\n${expect}\ndoes not match actual output:\n${actual}") +endif()
diff --git a/Tests/CustomTransitiveProperties/check.cmake b/Tests/CustomTransitiveProperties/check.cmake index d7130c8..ffebca1 100644 --- a/Tests/CustomTransitiveProperties/check.cmake +++ b/Tests/CustomTransitiveProperties/check.cmake
@@ -32,16 +32,34 @@ main INTERFACE_CUSTOM_V: '' main CUSTOM_W: 'CUSTOM_W_MAIN;CUSTOM_W_IFACE1;CUSTOM_W_OBJECT1_IFACE' main INTERFACE_CUSTOM_W: '' + +iface1 LINK_LIBRARIES: '' +iface1 INTERFACE_LINK_LIBRARIES: '' +iface2 LINK_LIBRARIES: '' +iface2 INTERFACE_LINK_LIBRARIES: 'iface1' +static1 LINK_LIBRARIES: 'iface2' +static1 INTERFACE_LINK_LIBRARIES: '\$<LINK_ONLY:iface2>' +main LINK_LIBRARIES: 'static1;object1' +main INTERFACE_LINK_LIBRARIES: '' +iface10 LINK_LIBRARIES: '' +iface10 INTERFACE_LINK_LIBRARIES: '' +iface11 LINK_LIBRARIES: '' +iface11 INTERFACE_LINK_LIBRARIES: 'iface10' +static10 LINK_LIBRARIES: 'iface11;iface10' +static10 INTERFACE_LINK_LIBRARIES: 'iface11;iface10' +static11 LINK_LIBRARIES: 'static10;iface11;iface11;iface10' +static11 INTERFACE_LINK_LIBRARIES: 'static10;iface11;iface11;iface10' +main10 LINK_LIBRARIES: 'static11;static10;static10;iface11;iface11;iface10' +main10 INTERFACE_LINK_LIBRARIES: '' +iface20 LINK_LIBRARIES: '' +iface20 INTERFACE_LINK_LIBRARIES: '' +iface21 LINK_LIBRARIES: '' +iface21 INTERFACE_LINK_LIBRARIES: 'iface20' +static20 LINK_LIBRARIES: 'iface21' +static20 INTERFACE_LINK_LIBRARIES: '\$<LINK_ONLY:iface21>' +static21 LINK_LIBRARIES: 'static20;iface21' +static21 INTERFACE_LINK_LIBRARIES: '\$<LINK_ONLY:static20>;\$<LINK_ONLY:iface21>' +main20 LINK_LIBRARIES: 'static21;static20' +main20 INTERFACE_LINK_LIBRARIES: '' ]]) -string(REGEX REPLACE "\r\n" "\n" expect "${expect}") -string(REGEX REPLACE "\n+$" "" expect "${expect}") - -file(READ "${out}" actual) -string(REGEX REPLACE "\r\n" "\n" actual "${actual}") -string(REGEX REPLACE "\n+$" "" actual "${actual}") - -if(NOT actual MATCHES "^${expect}$") - string(REPLACE "\n" "\n expect> " expect " expect> ${expect}") - string(REPLACE "\n" "\n actual> " actual " actual> ${actual}") - message(FATAL_ERROR "Expected file(GENERATE) output:\n${expect}\ndoes not match actual output:\n${actual}") -endif() +include(${CMAKE_CURRENT_LIST_DIR}/check-common.cmake)
diff --git a/Tests/CustomTransitiveProperties/main.c b/Tests/CustomTransitiveProperties/main.c index ab70eb0..03325a0 100644 --- a/Tests/CustomTransitiveProperties/main.c +++ b/Tests/CustomTransitiveProperties/main.c
@@ -1,6 +1,3 @@ -#include <stdio.h> -#include <string.h> - #ifdef CUSTOM_A_IFACE1 # error "CUSTOM_A_IFACE1 incorrectly defined" #endif @@ -117,21 +114,7 @@ extern int static1(void); extern int object1(void); -int check_args(int argc, char** argv) +int main(void) { - int result = 0; - int i; - for (i = 2; i < argc; i += 2) { - if (strcmp(argv[i - 1], argv[i]) != 0) { - fprintf(stderr, "Argument %d expected '%s' but got '%s'.\n", i, argv[i], - argv[i - 1]); - result = 1; - } - } - return result; -} - -int main(int argc, char** argv) -{ - return static1() + object1() + check_args(argc, argv); + return static1() + object1(); }
diff --git a/Tests/CustomTransitiveProperties/main10.c b/Tests/CustomTransitiveProperties/main10.c new file mode 100644 index 0000000..369683c --- /dev/null +++ b/Tests/CustomTransitiveProperties/main10.c
@@ -0,0 +1,7 @@ +extern int static10(void); +extern int static11(void); + +int main(void) +{ + return static10() + static11(); +}
diff --git a/Tests/CustomTransitiveProperties/main20.c b/Tests/CustomTransitiveProperties/main20.c new file mode 100644 index 0000000..4b7dab5 --- /dev/null +++ b/Tests/CustomTransitiveProperties/main20.c
@@ -0,0 +1,7 @@ +extern int static20(void); +extern int static21(void); + +int main(void) +{ + return static20() + static21(); +}
diff --git a/Tests/CustomTransitiveProperties/static10.c b/Tests/CustomTransitiveProperties/static10.c new file mode 100644 index 0000000..6359f22 --- /dev/null +++ b/Tests/CustomTransitiveProperties/static10.c
@@ -0,0 +1,4 @@ +int static10(void) +{ + return 0; +}
diff --git a/Tests/CustomTransitiveProperties/static11.c b/Tests/CustomTransitiveProperties/static11.c new file mode 100644 index 0000000..0ba822d --- /dev/null +++ b/Tests/CustomTransitiveProperties/static11.c
@@ -0,0 +1,4 @@ +int static11(void) +{ + return 0; +}
diff --git a/Tests/CustomTransitiveProperties/static20.c b/Tests/CustomTransitiveProperties/static20.c new file mode 100644 index 0000000..1718d2f --- /dev/null +++ b/Tests/CustomTransitiveProperties/static20.c
@@ -0,0 +1,4 @@ +int static20(void) +{ + return 0; +}
diff --git a/Tests/CustomTransitiveProperties/static21.c b/Tests/CustomTransitiveProperties/static21.c new file mode 100644 index 0000000..669cdb4 --- /dev/null +++ b/Tests/CustomTransitiveProperties/static21.c
@@ -0,0 +1,4 @@ +int static21(void) +{ + return 0; +}
diff --git a/Tests/EnforceConfig.cmake.in b/Tests/EnforceConfig.cmake.in index fd785a5..f9f476d 100644 --- a/Tests/EnforceConfig.cmake.in +++ b/Tests/EnforceConfig.cmake.in
@@ -36,6 +36,7 @@ unset(ENV{CMAKE_GENERATOR_PLATFORM}) unset(ENV{CMAKE_GENERATOR_TOOLSET}) unset(ENV{CMAKE_EXPORT_COMPILE_COMMANDS}) +unset(ENV{CMAKE_POLICY_VERSION_MINIMUM}) # Verify that our module implementations do not recurse too much. set(ENV{CMAKE_MAXIMUM_RECURSION_DEPTH} 100)
diff --git a/Tests/FindBLAS/Test/CMakeLists.txt b/Tests/FindBLAS/Test/CMakeLists.txt index 3183776..6d9461b 100644 --- a/Tests/FindBLAS/Test/CMakeLists.txt +++ b/Tests/FindBLAS/Test/CMakeLists.txt
@@ -4,6 +4,9 @@ find_package(BLAS REQUIRED) +# Configure the test case to match BLAS's integer type ABI. +# FindBLAS defaults to 32-bit integers if BLA_SIZEOF_INTEGER +# is not already set in the cache. if(NOT BLA_SIZEOF_INTEGER) set(BLA_SIZEOF_INTEGER 4) endif()
diff --git a/Tests/FindBLAS/add_BLAS_LAPACK_tests.cmake b/Tests/FindBLAS/add_BLAS_LAPACK_tests.cmake index 42fe386..4fe0426 100644 --- a/Tests/FindBLAS/add_BLAS_LAPACK_tests.cmake +++ b/Tests/FindBLAS/add_BLAS_LAPACK_tests.cmake
@@ -9,12 +9,13 @@ set(compiler "") set(model "") set(static "") + set(thread "") set(sizeof_int_lp64 4) set(sizeof_int_ilp64 8) foreach(variant IN LISTS ${var}) - if(variant MATCHES "^(all|compiler|model|static)=(.*)$") + if(variant MATCHES "^(all|compiler|model|static|thread)=(.*)$") set("${CMAKE_MATCH_1}" "${CMAKE_MATCH_2}") continue() elseif(variant MATCHES "^([^=]+)=(.*)$") @@ -39,6 +40,10 @@ string(APPEND variant_name "_Static") list(APPEND variant_options "-DBLA_STATIC=ON") endif() + if(thread) + string(APPEND variant_name "_${thread}") + list(APPEND variant_options "-DBLA_THREAD=${thread}") + endif() add_test(NAME Find${package}.Test_${variant_name} COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION> --build-and-test
diff --git a/Tests/FindLAPACK/Test/CMakeLists.txt b/Tests/FindLAPACK/Test/CMakeLists.txt index 55cd1ee..439d026 100644 --- a/Tests/FindLAPACK/Test/CMakeLists.txt +++ b/Tests/FindLAPACK/Test/CMakeLists.txt
@@ -4,6 +4,9 @@ find_package(LAPACK REQUIRED) +# Configure the test case to match LAPACK's integer type ABI. +# FindLAPACK defaults to 32-bit integers if BLA_SIZEOF_INTEGER +# is not already set in the cache. if(NOT BLA_SIZEOF_INTEGER) set(BLA_SIZEOF_INTEGER 4) endif()
diff --git a/Tests/FindPackageCMakeTest/CMakeLists.txt b/Tests/FindPackageCMakeTest/CMakeLists.txt index 3e01029..bd1887a 100644 --- a/Tests/FindPackageCMakeTest/CMakeLists.txt +++ b/Tests/FindPackageCMakeTest/CMakeLists.txt
@@ -554,14 +554,15 @@ ##Test FIND_PACKAGE using sorting set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_SOURCE_DIR}) -set(SortLib_DIR "" CACHE FILEPATH "Wipe out find results for testing." FORCE) -SET(CMAKE_FIND_PACKAGE_SORT_ORDER NAME) -SET(CMAKE_FIND_PACKAGE_SORT_DIRECTION ASC) -FIND_PACKAGE(SortLib CONFIG) -IF (NOT "${SortLib_VERSION}" STREQUAL "3.1.1") - message(SEND_ERROR "FIND_PACKAGE_SORT_ORDER Name Asc! ${SortLib_VERSION}") -endif() -unset(SortLib_VERSION) +foreach(CMAKE_FIND_PACKAGE_SORT_DIRECTION IN ITEMS "" ASC Bogus) + set(SortLib_DIR "" CACHE FILEPATH "Wipe out find results for testing." FORCE) + SET(CMAKE_FIND_PACKAGE_SORT_ORDER NAME) + FIND_PACKAGE(SortLib CONFIG) + IF (NOT "${SortLib_VERSION}" STREQUAL "3.1.1") + message(SEND_ERROR "FIND_PACKAGE_SORT_ORDER Name Asc! ${SortLib_VERSION}") + endif() + unset(SortLib_VERSION) +endforeach() set(SortLib_DIR "" CACHE FILEPATH "Wipe out find results for testing." FORCE)
diff --git a/Tests/FindPackageCpsTest/CMakeLists.txt b/Tests/FindPackageCpsTest/CMakeLists.txt index 73b76da..8f076ae 100644 --- a/Tests/FindPackageCpsTest/CMakeLists.txt +++ b/Tests/FindPackageCpsTest/CMakeLists.txt
@@ -70,16 +70,25 @@ test_unparsed_version(CustomVersion "VII") ############################################################################### +# Test finding a package whose CPS file is in the package prefix root. +set(RootTest_DIR "${CMAKE_CURRENT_SOURCE_DIR}/RootTest") +find_package(RootTest) +if(NOT RootTest_FOUND) + message(SEND_ERROR "RootTest not found !") +endif() + +############################################################################### # Test glob sorting. -set(SortLib_DIR "" CACHE FILEPATH "Wipe out find results for testing." FORCE) -set(CMAKE_FIND_PACKAGE_SORT_ORDER NAME) -set(CMAKE_FIND_PACKAGE_SORT_DIRECTION ASC) -find_package(SortLib CONFIG) -if(NOT "${SortLib_VERSION}" STREQUAL "3.1.1") - message(SEND_ERROR "FIND_PACKAGE_SORT_ORDER Name Asc! ${SortLib_VERSION}") -endif() -unset(SortLib_VERSION) +foreach(CMAKE_FIND_PACKAGE_SORT_DIRECTION IN ITEMS "" ASC Bogus) + set(SortLib_DIR "" CACHE FILEPATH "Wipe out find results for testing." FORCE) + set(CMAKE_FIND_PACKAGE_SORT_ORDER NAME) + find_package(SortLib CONFIG) + if(NOT "${SortLib_VERSION}" STREQUAL "3.1.1") + message(SEND_ERROR "FIND_PACKAGE_SORT_ORDER Name Asc! ${SortLib_VERSION}") + endif() + unset(SortLib_VERSION) +endforeach() set(SortLib_DIR "" CACHE FILEPATH "Wipe out find results for testing." FORCE) set(CMAKE_FIND_PACKAGE_SORT_ORDER NATURAL)
diff --git a/Tests/FindPackageCpsTest/RootTest/RootTest.cps b/Tests/FindPackageCpsTest/RootTest/RootTest.cps new file mode 100644 index 0000000..5176954 --- /dev/null +++ b/Tests/FindPackageCpsTest/RootTest/RootTest.cps
@@ -0,0 +1,10 @@ +{ + "cps_version": "0.13", + "name": "RootTest", + "cps_path": "@prefix@", + "components": { + "Sample": { + "type": "interface" + } + } +}
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index fdf26ce..1748b72 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt
@@ -397,7 +397,8 @@ add_RunCMake_test(CompilerTest ${CMake_TEST_LANG_VARS}) set_property(TEST RunCMake.CompilerTest APPEND PROPERTY LABELS "CUDA" "HIP" "ISPC" "Fortran") add_RunCMake_test(Configure -DMSVC_IDE=${MSVC_IDE}) -add_RunCMake_test(CpsExportImport) +add_RunCMake_test(CpsExportImportBuild) +add_RunCMake_test(CpsExportImportInstall) add_RunCMake_test(DisallowedCommands) if("${CMAKE_GENERATOR}" MATCHES "Unix Makefiles|Ninja") add_RunCMake_test(ExportCompileCommands) @@ -660,7 +661,10 @@ add_RunCMake_test(SarifOutput) add_RunCMake_test(separate_arguments) add_RunCMake_test(set_property) -add_RunCMake_test(string) +add_RunCMake_test(string + -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME} + -DCMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR} + ) add_RunCMake_test(test_include_dirs) add_RunCMake_test(BundleUtilities) if(APPLE) @@ -1205,7 +1209,8 @@ ) add_RunCMake_test(AndroidMK) -add_RunCMake_test(PackageInfo) +add_RunCMake_test(ExportPackageInfo) +add_RunCMake_test(InstallPackageInfo) if(CMake_TEST_ANDROID_NDK OR CMake_TEST_ANDROID_STANDALONE_TOOLCHAIN) if(NOT "${CMAKE_GENERATOR}" MATCHES "Make|Ninja|Visual Studio 1[456]")
diff --git a/Tests/RunCMake/CMakeRelease/FileTable-stdout.txt b/Tests/RunCMake/CMakeRelease/FileTable-stdout.txt index b8e2639..4370bf5 100644 --- a/Tests/RunCMake/CMakeRelease/FileTable-stdout.txt +++ b/Tests/RunCMake/CMakeRelease/FileTable-stdout.txt
@@ -13,10 +13,10 @@ "cmake-@version@-macos-universal\.tar\.gz" "cmake-@version@-macos10\.10-universal\.dmg" "cmake-@version@-macos10\.10-universal\.tar\.gz" -"cmake-@version@-sunos-i386\.sh" -"cmake-@version@-sunos-i386\.tar\.gz" -"cmake-@version@-sunos-sparc\.sh" -"cmake-@version@-sunos-sparc\.tar\.gz" +"cmake-@version@-sunos-x86_64\.sh" +"cmake-@version@-sunos-x86_64\.tar\.gz" +"cmake-@version@-sunos-sparc64\.sh" +"cmake-@version@-sunos-sparc64\.tar\.gz" "cmake-@version@-windows-i386\.msi" "cmake-@version@-windows-i386\.zip" "cmake-@version@-windows-x86_64\.msi" @@ -32,8 +32,8 @@ "cmake-@version@-macos-universal\.dmg" -- query: \.files\[\] \| select\(\(\.os\[\] \| \. == "macos10\.10"\) and \(\.class == "archive"\)\) \| \.name "cmake-@version@-macos10\.10-universal\.tar\.gz" --- query: \.files\[\] \| select\(\(\.os\[\] \| \. == "sunos"\) and \(\.architecture\[\] \| \. == "sparc"\) and \(\.class == "archive"\)\) \| \.name -"cmake-@version@-sunos-sparc\.tar\.gz" +-- query: \.files\[\] \| select\(\(\.os\[\] \| \. == "sunos"\) and \(\.architecture\[\] \| \. == "sparc64"\) and \(\.class == "archive"\)\) \| \.name +"cmake-@version@-sunos-sparc64\.tar\.gz" -- query: \.files\[\] \| select\(\(\.os\[\] \| \. == "windows"\) and \(\.architecture\[\] \| \. == "i386"\) and \(\.class == "installer"\)\) \| \.name "cmake-@version@-windows-i386\.msi" -- query: \.files\[\] \| select\(\.architecture\[\] \| \. == "x86_64"\) \| \.name @@ -43,6 +43,8 @@ "cmake-@version@-macos-universal\.tar\.gz" "cmake-@version@-macos10\.10-universal\.dmg" "cmake-@version@-macos10\.10-universal\.tar\.gz" +"cmake-@version@-sunos-x86_64\.sh" +"cmake-@version@-sunos-x86_64\.tar\.gz" "cmake-@version@-windows-x86_64\.msi" "cmake-@version@-windows-x86_64\.zip" -- query: \.files\[\] \| select\(\[\.macOSmin\] \| inside\(\["10\.10", "10\.11", "10\.12"\]\)\) \| \.name
diff --git a/Tests/RunCMake/CMakeRelease/FileTable.cmake b/Tests/RunCMake/CMakeRelease/FileTable.cmake index a579457..c9d34d3 100644 --- a/Tests/RunCMake/CMakeRelease/FileTable.cmake +++ b/Tests/RunCMake/CMakeRelease/FileTable.cmake
@@ -11,7 +11,7 @@ ".files[] | select(.os[] | . == \"source\") | .name" ".files[] | select((.os[] | . == \"macOS\") and (.class == \"volume\")) | .name" ".files[] | select((.os[] | . == \"macos10.10\") and (.class == \"archive\")) | .name" - ".files[] | select((.os[] | . == \"sunos\") and (.architecture[] | . == \"sparc\") and (.class == \"archive\")) | .name" + ".files[] | select((.os[] | . == \"sunos\") and (.architecture[] | . == \"sparc64\") and (.class == \"archive\")) | .name" ".files[] | select((.os[] | . == \"windows\") and (.architecture[] | . == \"i386\") and (.class == \"installer\")) | .name" ".files[] | select(.architecture[] | . == \"x86_64\") | .name" ".files[] | select([.macOSmin] | inside([\"10.10\", \"10.11\", \"10.12\"])) | .name"
diff --git a/Tests/RunCMake/CpsExportImportBuild/CMakeLists.txt b/Tests/RunCMake/CpsExportImportBuild/CMakeLists.txt new file mode 100644 index 0000000..e7a6ddd --- /dev/null +++ b/Tests/RunCMake/CpsExportImportBuild/CMakeLists.txt
@@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 4.0.20250220) +project(${RunCMake_TEST} NONE) +include(${RunCMake_TEST}.cmake)
diff --git a/Tests/RunCMake/CpsExportImportBuild/RunCMakeTest.cmake b/Tests/RunCMake/CpsExportImportBuild/RunCMakeTest.cmake new file mode 100644 index 0000000..e414e73 --- /dev/null +++ b/Tests/RunCMake/CpsExportImportBuild/RunCMakeTest.cmake
@@ -0,0 +1,23 @@ +include(RunCMake) + +set(RunCMake_TEST_OPTIONS + -Wno-dev + "-DCMAKE_EXPERIMENTAL_EXPORT_PACKAGE_INFO:STRING=b80be207-778e-46ba-8080-b23bba22639e" + "-DCMAKE_EXPERIMENTAL_FIND_CPS_PACKAGES:STRING=e82e467b-f997-4464-8ace-b00808fff261" + ) + +function(build_project test) + set(RunCMake_TEST_NO_CLEAN FALSE) + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${test}-build) + if (NOT RunCMake_GENERATOR_IS_MULTI_CONFIG) + list(APPEND RunCMake_TEST_OPTIONS -DCMAKE_BUILD_TYPE=Release) + endif() + + run_cmake(${test}) + + set(RunCMake_TEST_NO_CLEAN TRUE) + run_cmake_command(${test}-build ${CMAKE_COMMAND} --build . --config Release) +endfunction() + +build_project(TestLibrary) +build_project(TestExecutable)
diff --git a/Tests/RunCMake/CpsExportImportBuild/TestExecutable.cmake b/Tests/RunCMake/CpsExportImportBuild/TestExecutable.cmake new file mode 100644 index 0000000..325088d --- /dev/null +++ b/Tests/RunCMake/CpsExportImportBuild/TestExecutable.cmake
@@ -0,0 +1,12 @@ +project(TestLibrary C) + +set(liba_DIR "${CMAKE_BINARY_DIR}/../TestLibrary-build") +set(libb_DIR "${CMAKE_BINARY_DIR}/../TestLibrary-build") + +find_package(libb REQUIRED COMPONENTS libb) + +add_executable(app app.c) + +target_link_libraries(app PUBLIC libb::libb) + +install(TARGETS app DESTINATION bin)
diff --git a/Tests/RunCMake/CpsExportImportBuild/TestLibrary.cmake b/Tests/RunCMake/CpsExportImportBuild/TestLibrary.cmake new file mode 100644 index 0000000..13e9e01 --- /dev/null +++ b/Tests/RunCMake/CpsExportImportBuild/TestLibrary.cmake
@@ -0,0 +1,12 @@ +project(TestLibrary C) + +add_library(liba SHARED liba.c) +add_library(libb SHARED libb.c) + +target_link_libraries(libb PUBLIC liba) + +install(TARGETS liba EXPORT liba DESTINATION lib) +export(EXPORT liba PACKAGE_INFO liba) + +install(TARGETS libb EXPORT libb DESTINATION lib) +export(EXPORT libb PACKAGE_INFO libb)
diff --git a/Tests/RunCMake/CpsExportImport/app.c b/Tests/RunCMake/CpsExportImportBuild/app.c similarity index 100% rename from Tests/RunCMake/CpsExportImport/app.c rename to Tests/RunCMake/CpsExportImportBuild/app.c
diff --git a/Tests/RunCMake/CpsExportImport/liba.c b/Tests/RunCMake/CpsExportImportBuild/liba.c similarity index 100% rename from Tests/RunCMake/CpsExportImport/liba.c rename to Tests/RunCMake/CpsExportImportBuild/liba.c
diff --git a/Tests/RunCMake/CpsExportImport/libb.c b/Tests/RunCMake/CpsExportImportBuild/libb.c similarity index 100% rename from Tests/RunCMake/CpsExportImport/libb.c rename to Tests/RunCMake/CpsExportImportBuild/libb.c
diff --git a/Tests/RunCMake/CpsExportImport/CMakeLists.txt b/Tests/RunCMake/CpsExportImportInstall/CMakeLists.txt similarity index 100% rename from Tests/RunCMake/CpsExportImport/CMakeLists.txt rename to Tests/RunCMake/CpsExportImportInstall/CMakeLists.txt
diff --git a/Tests/RunCMake/CpsExportImport/RunCMakeTest.cmake b/Tests/RunCMake/CpsExportImportInstall/RunCMakeTest.cmake similarity index 100% rename from Tests/RunCMake/CpsExportImport/RunCMakeTest.cmake rename to Tests/RunCMake/CpsExportImportInstall/RunCMakeTest.cmake
diff --git a/Tests/RunCMake/CpsExportImport/TestExecutable.cmake b/Tests/RunCMake/CpsExportImportInstall/TestExecutable.cmake similarity index 100% rename from Tests/RunCMake/CpsExportImport/TestExecutable.cmake rename to Tests/RunCMake/CpsExportImportInstall/TestExecutable.cmake
diff --git a/Tests/RunCMake/CpsExportImport/TestLibrary.cmake b/Tests/RunCMake/CpsExportImportInstall/TestLibrary.cmake similarity index 100% rename from Tests/RunCMake/CpsExportImport/TestLibrary.cmake rename to Tests/RunCMake/CpsExportImportInstall/TestLibrary.cmake
diff --git a/Tests/RunCMake/CpsExportImport/app.c b/Tests/RunCMake/CpsExportImportInstall/app.c similarity index 100% copy from Tests/RunCMake/CpsExportImport/app.c copy to Tests/RunCMake/CpsExportImportInstall/app.c
diff --git a/Tests/RunCMake/CpsExportImport/liba.c b/Tests/RunCMake/CpsExportImportInstall/liba.c similarity index 100% copy from Tests/RunCMake/CpsExportImport/liba.c copy to Tests/RunCMake/CpsExportImportInstall/liba.c
diff --git a/Tests/RunCMake/CpsExportImport/libb.c b/Tests/RunCMake/CpsExportImportInstall/libb.c similarity index 100% copy from Tests/RunCMake/CpsExportImport/libb.c copy to Tests/RunCMake/CpsExportImportInstall/libb.c
diff --git a/Tests/RunCMake/ExportPackageInfo/Appendix-check.cmake b/Tests/RunCMake/ExportPackageInfo/Appendix-check.cmake new file mode 100644 index 0000000..c4f617f --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/Appendix-check.cmake
@@ -0,0 +1,16 @@ +include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake) + +set(out_dir "${RunCMake_BINARY_DIR}/Appendix-build") + +file(READ "${out_dir}/foo.cps" content) +expect_value("${content}" "foo" "name") +expect_value("${content}" "interface" "components" "mammal" "type") +expect_value("${content}" "1.0" "version") + +file(READ "${out_dir}/foo-dog.cps" content) +expect_value("${content}" "foo" "name") +expect_value("${content}" "interface" "components" "canine" "type") +expect_missing("${content}" "version") + +expect_array("${content}" 1 "components" "canine" "requires") +expect_value("${content}" ":mammal" "components" "canine" "requires" 0)
diff --git a/Tests/RunCMake/ExportPackageInfo/Appendix.cmake b/Tests/RunCMake/ExportPackageInfo/Appendix.cmake new file mode 100644 index 0000000..153231f --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/Appendix.cmake
@@ -0,0 +1,9 @@ +add_library(mammal INTERFACE) +add_library(canine INTERFACE) +target_link_libraries(canine INTERFACE mammal) + +install(TARGETS mammal EXPORT mammal DESTINATION .) +install(TARGETS canine EXPORT canine DESTINATION .) + +export(EXPORT mammal PACKAGE_INFO foo VERSION 1.0) +export(EXPORT canine PACKAGE_INFO foo APPENDIX dog)
diff --git a/Tests/RunCMake/PackageInfo/Assertions.cmake b/Tests/RunCMake/ExportPackageInfo/Assertions.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/Assertions.cmake rename to Tests/RunCMake/ExportPackageInfo/Assertions.cmake
diff --git a/Tests/RunCMake/PackageInfo/BadArgs1-result.txt b/Tests/RunCMake/ExportPackageInfo/BadArgs1-result.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/BadArgs1-result.txt rename to Tests/RunCMake/ExportPackageInfo/BadArgs1-result.txt
diff --git a/Tests/RunCMake/ExportPackageInfo/BadArgs1-stderr.txt b/Tests/RunCMake/ExportPackageInfo/BadArgs1-stderr.txt new file mode 100644 index 0000000..5455b36 --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/BadArgs1-stderr.txt
@@ -0,0 +1,10 @@ +CMake Error at BadArgs1\.cmake:3 \(export\): + export COMPAT_VERSION requires VERSION\. +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\) + + +CMake Error at BadArgs1\.cmake:4 \(export\): + export VERSION_SCHEMA requires VERSION\. +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\)
diff --git a/Tests/RunCMake/ExportPackageInfo/BadArgs1.cmake b/Tests/RunCMake/ExportPackageInfo/BadArgs1.cmake new file mode 100644 index 0000000..cd11146 --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/BadArgs1.cmake
@@ -0,0 +1,4 @@ +add_library(foo INTERFACE) +install(TARGETS foo EXPORT foo DESTINATION .) +export(EXPORT foo PACKAGE_INFO foo COMPAT_VERSION 1.0) +export(EXPORT foo PACKAGE_INFO foo VERSION_SCHEMA simple)
diff --git a/Tests/RunCMake/PackageInfo/BadArgs2-result.txt b/Tests/RunCMake/ExportPackageInfo/BadArgs2-result.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/BadArgs2-result.txt rename to Tests/RunCMake/ExportPackageInfo/BadArgs2-result.txt
diff --git a/Tests/RunCMake/ExportPackageInfo/BadArgs2-stderr.txt b/Tests/RunCMake/ExportPackageInfo/BadArgs2-stderr.txt new file mode 100644 index 0000000..792cd5c --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/BadArgs2-stderr.txt
@@ -0,0 +1,16 @@ +CMake Error at BadArgs2\.cmake:3 \(export\): + export APPENDIX and VERSION are mutually exclusive\. +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\) + + +CMake Error at BadArgs2\.cmake:4 \(export\): + export APPENDIX and DEFAULT_TARGETS are mutually exclusive\. +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\) + + +CMake Error at BadArgs2\.cmake:5 \(export\): + export APPENDIX and DEFAULT_CONFIGURATIONS are mutually exclusive\. +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\)
diff --git a/Tests/RunCMake/ExportPackageInfo/BadArgs2.cmake b/Tests/RunCMake/ExportPackageInfo/BadArgs2.cmake new file mode 100644 index 0000000..4c83bd4 --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/BadArgs2.cmake
@@ -0,0 +1,5 @@ +add_library(foo INTERFACE) +install(TARGETS foo EXPORT foo DESTINATION .) +export(EXPORT foo PACKAGE_INFO foo APPENDIX test VERSION 1.0) +export(EXPORT foo PACKAGE_INFO foo APPENDIX test DEFAULT_TARGETS foo) +export(EXPORT foo PACKAGE_INFO foo APPENDIX test DEFAULT_CONFIGURATIONS Release)
diff --git a/Tests/RunCMake/PackageInfo/BadArgs3-result.txt b/Tests/RunCMake/ExportPackageInfo/BadArgs3-result.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/BadArgs3-result.txt rename to Tests/RunCMake/ExportPackageInfo/BadArgs3-result.txt
diff --git a/Tests/RunCMake/ExportPackageInfo/BadArgs3-stderr.txt b/Tests/RunCMake/ExportPackageInfo/BadArgs3-stderr.txt new file mode 100644 index 0000000..4d15b6e --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/BadArgs3-stderr.txt
@@ -0,0 +1,10 @@ +CMake Error at BadArgs3\.cmake:3 \(export\): + export PACKAGE_INFO and FILE are mutually exclusive\. +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\) + + +CMake Error at BadArgs3\.cmake:4 \(export\): + export PACKAGE_INFO and NAMESPACE are mutually exclusive\. +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\)
diff --git a/Tests/RunCMake/ExportPackageInfo/BadArgs3.cmake b/Tests/RunCMake/ExportPackageInfo/BadArgs3.cmake new file mode 100644 index 0000000..106f083 --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/BadArgs3.cmake
@@ -0,0 +1,4 @@ +add_library(foo INTERFACE) +install(TARGETS foo EXPORT foo DESTINATION .) +export(EXPORT foo PACKAGE_INFO foo FILE foo.cps) +export(EXPORT foo PACKAGE_INFO foo NAMESPACE foo::)
diff --git a/Tests/RunCMake/PackageInfo/BadArgs4-result.txt b/Tests/RunCMake/ExportPackageInfo/BadArgs4-result.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/BadArgs4-result.txt rename to Tests/RunCMake/ExportPackageInfo/BadArgs4-result.txt
diff --git a/Tests/RunCMake/ExportPackageInfo/BadArgs4-stderr.txt b/Tests/RunCMake/ExportPackageInfo/BadArgs4-stderr.txt new file mode 100644 index 0000000..36c6dcc --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/BadArgs4-stderr.txt
@@ -0,0 +1,28 @@ +CMake Error at BadArgs4\.cmake:3 \(export\): + export LOWER_CASE_FILE requires PACKAGE_INFO\. +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\) + + +CMake Error at BadArgs4\.cmake:4 \(export\): + export APPENDIX requires PACKAGE_INFO\. +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\) + + +CMake Error at BadArgs4\.cmake:5 \(export\): + export VERSION requires PACKAGE_INFO\. +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\) + + +CMake Error at BadArgs4\.cmake:6 \(export\): + export DEFAULT_TARGETS requires PACKAGE_INFO\. +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\) + + +CMake Error at BadArgs4\.cmake:7 \(export\): + export DEFAULT_CONFIGURATIONS requires PACKAGE_INFO\. +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\)
diff --git a/Tests/RunCMake/ExportPackageInfo/BadArgs4.cmake b/Tests/RunCMake/ExportPackageInfo/BadArgs4.cmake new file mode 100644 index 0000000..930f6e8 --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/BadArgs4.cmake
@@ -0,0 +1,7 @@ +add_library(foo INTERFACE) +install(TARGETS foo EXPORT foo DESTINATION .) +export(EXPORT foo LOWER_CASE_FILE) +export(EXPORT foo APPENDIX test) +export(EXPORT foo VERSION 1.0) +export(EXPORT foo DEFAULT_TARGETS foo) +export(EXPORT foo DEFAULT_CONFIGURATIONS Release)
diff --git a/Tests/RunCMake/PackageInfo/BadDefaultTarget-result.txt b/Tests/RunCMake/ExportPackageInfo/BadDefaultTarget-result.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/BadDefaultTarget-result.txt rename to Tests/RunCMake/ExportPackageInfo/BadDefaultTarget-result.txt
diff --git a/Tests/RunCMake/PackageInfo/BadDefaultTarget-stderr.txt b/Tests/RunCMake/ExportPackageInfo/BadDefaultTarget-stderr.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/BadDefaultTarget-stderr.txt rename to Tests/RunCMake/ExportPackageInfo/BadDefaultTarget-stderr.txt
diff --git a/Tests/RunCMake/ExportPackageInfo/BadDefaultTarget.cmake b/Tests/RunCMake/ExportPackageInfo/BadDefaultTarget.cmake new file mode 100644 index 0000000..c1a2253 --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/BadDefaultTarget.cmake
@@ -0,0 +1,5 @@ +add_library(foo INTERFACE) +add_library(dog INTERFACE) +install(TARGETS foo EXPORT foo DESTINATION .) +install(TARGETS dog EXPORT dog DESTINATION .) +export(EXPORT foo PACKAGE_INFO test DEFAULT_TARGETS dog cat)
diff --git a/Tests/RunCMake/PackageInfo/BadArgs1-result.txt b/Tests/RunCMake/ExportPackageInfo/BadName-result.txt similarity index 100% copy from Tests/RunCMake/PackageInfo/BadArgs1-result.txt copy to Tests/RunCMake/ExportPackageInfo/BadName-result.txt
diff --git a/Tests/RunCMake/ExportPackageInfo/BadName-stderr.txt b/Tests/RunCMake/ExportPackageInfo/BadName-stderr.txt new file mode 100644 index 0000000..d0d84ba --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/BadName-stderr.txt
@@ -0,0 +1,4 @@ +CMake Error at BadName\.cmake:3 \(export\): + export PACKAGE_INFO given invalid package name "%foo"\. +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\)
diff --git a/Tests/RunCMake/ExportPackageInfo/BadName.cmake b/Tests/RunCMake/ExportPackageInfo/BadName.cmake new file mode 100644 index 0000000..6e17a73 --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/BadName.cmake
@@ -0,0 +1,3 @@ +add_library(foo INTERFACE) +install(TARGETS foo EXPORT foo DESTINATION .) +export(EXPORT foo PACKAGE_INFO "%foo")
diff --git a/Tests/RunCMake/ExportPackageInfo/CMakeLists.txt b/Tests/RunCMake/ExportPackageInfo/CMakeLists.txt new file mode 100644 index 0000000..8c400cc --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/CMakeLists.txt
@@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 4.0.20240220) +project(${RunCMake_TEST} NONE) +include(${RunCMake_TEST}.cmake)
diff --git a/Tests/RunCMake/PackageInfo/DependsMultiple.cmake b/Tests/RunCMake/ExportPackageInfo/DependsMultiple.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/DependsMultiple.cmake rename to Tests/RunCMake/ExportPackageInfo/DependsMultiple.cmake
diff --git a/Tests/RunCMake/ExportPackageInfo/DependsMultipleCommon.cmake b/Tests/RunCMake/ExportPackageInfo/DependsMultipleCommon.cmake new file mode 100644 index 0000000..1e95085 --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/DependsMultipleCommon.cmake
@@ -0,0 +1,11 @@ +add_library(foo foo.cxx) +add_library(bar foo.cxx) +target_link_libraries(bar foo) + +install(TARGETS foo EXPORT foo) +export(EXPORT foo NAMESPACE ${NAMESPACE}) +export(EXPORT foo PACKAGE_INFO foo) + +install(TARGETS bar EXPORT bar) +export(EXPORT bar) +export(EXPORT bar PACKAGE_INFO bar)
diff --git a/Tests/RunCMake/PackageInfo/DependsMultipleDifferentNamespace-result.txt b/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentNamespace-result.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/DependsMultipleDifferentNamespace-result.txt rename to Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentNamespace-result.txt
diff --git a/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentNamespace-stderr.txt b/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentNamespace-stderr.txt new file mode 100644 index 0000000..5e47e73 --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentNamespace-stderr.txt
@@ -0,0 +1,22 @@ +CMake Error in CMakeLists\.txt: + export called with target "bar" which requires target "foo" that is not in + this export set, but in another export set which is exported multiple times + with different namespaces:.* + .*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentNamespace-build/foo\.cmake,.* + .*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentNamespace-build/foo\.cps\. + + An exported target cannot depend upon another target which is exported in + more than one export set or with more than one namespace\. Consider + consolidating the exports of the "foo" target to a single export\. + + +CMake Error in CMakeLists\.txt: + export called with target "bar" which requires target "foo" that is not in + this export set, but in another export set which is exported multiple times + with different namespaces:.* + .*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentNamespace-build/foo\.cmake,.* + .*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentNamespace-build/foo\.cps\. + + An exported target cannot depend upon another target which is exported in + more than one export set or with more than one namespace\. Consider + consolidating the exports of the "foo" target to a single export\.
diff --git a/Tests/RunCMake/PackageInfo/DependsMultipleDifferentNamespace.cmake b/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentNamespace.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/DependsMultipleDifferentNamespace.cmake rename to Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentNamespace.cmake
diff --git a/Tests/RunCMake/PackageInfo/DependsMultipleDifferentSets-result.txt b/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets-result.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/DependsMultipleDifferentSets-result.txt rename to Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets-result.txt
diff --git a/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets-stderr.txt b/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets-stderr.txt new file mode 100644 index 0000000..643c9f0 --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets-stderr.txt
@@ -0,0 +1,22 @@ +CMake Error in CMakeLists\.txt: + export called with target "bar" which requires target "foo" that is not in + this export set, but in multiple other export sets:.* + .*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets-build/foo-alt\.cmake,.* + .*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets-build/foo\.cmake,.* + .*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets-build/foo\.cps\. + + An exported target cannot depend upon another target which is exported in + more than one export set or with more than one namespace\. Consider + consolidating the exports of the "foo" target to a single export\. + + +CMake Error in CMakeLists\.txt: + export called with target "bar" which requires target "foo" that is not in + this export set, but in multiple other export sets:.* + .*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets-build/foo-alt\.cmake,.* + .*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets-build/foo\.cmake,.* + .*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets-build/foo\.cps\. + + An exported target cannot depend upon another target which is exported in + more than one export set or with more than one namespace\. Consider + consolidating the exports of the "foo" target to a single export\.
diff --git a/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets.cmake b/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets.cmake new file mode 100644 index 0000000..9d4dea1 --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets.cmake
@@ -0,0 +1,5 @@ +project(DependsMultipleDifferentSets CXX) +include(DependsMultipleCommon.cmake) + +install(TARGETS foo EXPORT foo-alt) +export(EXPORT foo-alt)
diff --git a/Tests/RunCMake/PackageInfo/BadDefaultTarget-result.txt b/Tests/RunCMake/ExportPackageInfo/DuplicateOutput-result.txt similarity index 100% copy from Tests/RunCMake/PackageInfo/BadDefaultTarget-result.txt copy to Tests/RunCMake/ExportPackageInfo/DuplicateOutput-result.txt
diff --git a/Tests/RunCMake/ExportPackageInfo/DuplicateOutput-stderr.txt b/Tests/RunCMake/ExportPackageInfo/DuplicateOutput-stderr.txt new file mode 100644 index 0000000..b9947a5 --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/DuplicateOutput-stderr.txt
@@ -0,0 +1,4 @@ +CMake Error at DuplicateOutput\.cmake:4 \(export\): + export command already specified for the file foo\.cps\. +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\)
diff --git a/Tests/RunCMake/ExportPackageInfo/DuplicateOutput.cmake b/Tests/RunCMake/ExportPackageInfo/DuplicateOutput.cmake new file mode 100644 index 0000000..de901f3 --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/DuplicateOutput.cmake
@@ -0,0 +1,4 @@ +add_library(foo INTERFACE) +install(TARGETS foo EXPORT foo DESTINATION .) +export(EXPORT foo PACKAGE_INFO foo) +export(EXPORT foo PACKAGE_INFO foo)
diff --git a/Tests/RunCMake/PackageInfo/ExperimentalGate-result.txt b/Tests/RunCMake/ExportPackageInfo/ExperimentalGate-result.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/ExperimentalGate-result.txt rename to Tests/RunCMake/ExportPackageInfo/ExperimentalGate-result.txt
diff --git a/Tests/RunCMake/ExportPackageInfo/ExperimentalGate-stderr.txt b/Tests/RunCMake/ExportPackageInfo/ExperimentalGate-stderr.txt new file mode 100644 index 0000000..36725b3 --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/ExperimentalGate-stderr.txt
@@ -0,0 +1,2 @@ +CMake Error at ExperimentalGate.cmake:5 \(export\): + export Unknown argument: "PACKAGE_INFO"\.
diff --git a/Tests/RunCMake/ExportPackageInfo/ExperimentalGate.cmake b/Tests/RunCMake/ExportPackageInfo/ExperimentalGate.cmake new file mode 100644 index 0000000..6f23324 --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/ExperimentalGate.cmake
@@ -0,0 +1,5 @@ +unset(CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_INFO) + +add_library(foo INTERFACE) +install(TARGETS foo EXPORT foo DESTINATION .) +export(EXPORT foo PACKAGE_INFO foo)
diff --git a/Tests/RunCMake/ExportPackageInfo/ExperimentalWarning-stderr.txt b/Tests/RunCMake/ExportPackageInfo/ExperimentalWarning-stderr.txt new file mode 100644 index 0000000..bc6ec3e --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/ExperimentalWarning-stderr.txt
@@ -0,0 +1,7 @@ +CMake Warning \(dev\) at ExperimentalWarning.cmake:8 \(export\): + CMake's support for exporting package information in the Common Package + Specification format is experimental\. It is meant only for experimentation + and feedback to CMake developers\. +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) +This warning is for project developers. Use -Wno-dev to suppress it.
diff --git a/Tests/RunCMake/ExportPackageInfo/ExperimentalWarning.cmake b/Tests/RunCMake/ExportPackageInfo/ExperimentalWarning.cmake new file mode 100644 index 0000000..822a8bb --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/ExperimentalWarning.cmake
@@ -0,0 +1,8 @@ +set( + CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_INFO + "b80be207-778e-46ba-8080-b23bba22639e" + ) + +add_library(foo INTERFACE) +install(TARGETS foo EXPORT foo DESTINATION .) +export(EXPORT foo PACKAGE_INFO foo)
diff --git a/Tests/RunCMake/ExportPackageInfo/InterfaceProperties-check.cmake b/Tests/RunCMake/ExportPackageInfo/InterfaceProperties-check.cmake new file mode 100644 index 0000000..1573dd8 --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/InterfaceProperties-check.cmake
@@ -0,0 +1,24 @@ +include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake) + +set(out_dir "${RunCMake_BINARY_DIR}/InterfaceProperties-build") + +file(READ "${out_dir}/foo.cps" content) +expect_value("${content}" "foo" "name") + +string(JSON component GET "${content}" "components" "foo") + +expect_value("${component}" "interface" "type") +expect_array("${component}" 1 "includes") +expect_value("${component}" "${CMAKE_CURRENT_LIST_DIR}/foo" "includes" 0) +expect_array("${component}" 1 "compile_features") +expect_value("${component}" "c++23" "compile_features" 0) +expect_array("${component}" 1 "compile_flags") +expect_value("${component}" "-ffast-math" "compile_flags" 0) +expect_null("${component}" "compile_definitions" "*" "FOO") +expect_value("${component}" "BAR" "compile_definitions" "*" "BAR") +expect_array("${component}" 1 "link_directories") +expect_value("${component}" "/opt/foo/lib" "link_directories" 0) +expect_array("${component}" 1 "link_flags") +expect_value("${component}" "--needed" "link_flags" 0) +expect_array("${component}" 1 "link_libraries") +expect_value("${component}" "/usr/lib/libm.so" "link_libraries" 0)
diff --git a/Tests/RunCMake/ExportPackageInfo/InterfaceProperties.cmake b/Tests/RunCMake/ExportPackageInfo/InterfaceProperties.cmake new file mode 100644 index 0000000..0b519ee --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/InterfaceProperties.cmake
@@ -0,0 +1,15 @@ +add_library(foo INTERFACE) + +target_compile_features(foo INTERFACE cxx_std_23) +target_compile_options(foo INTERFACE -ffast-math) +target_compile_definitions(foo INTERFACE -DFOO -DBAR=BAR) +target_include_directories( + foo INTERFACE + $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/foo> + ) +target_link_directories(foo INTERFACE /opt/foo/lib) +target_link_options(foo INTERFACE --needed) +target_link_libraries(foo INTERFACE /usr/lib/libm.so) + +install(TARGETS foo EXPORT foo DESTINATION .) +export(EXPORT foo PACKAGE_INFO foo)
diff --git a/Tests/RunCMake/ExportPackageInfo/LowerCaseFile-check.cmake b/Tests/RunCMake/ExportPackageInfo/LowerCaseFile-check.cmake new file mode 100644 index 0000000..279521c --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/LowerCaseFile-check.cmake
@@ -0,0 +1,9 @@ +include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake) + +set(out_dir "${RunCMake_BINARY_DIR}/LowerCaseFile-build") + +file(READ "${out_dir}/lowercase.cps" content) +expect_value("${content}" "LowerCase" "name") + +file(READ "${out_dir}/PreserveCase.cps" content) +expect_value("${content}" "PreserveCase" "name")
diff --git a/Tests/RunCMake/ExportPackageInfo/LowerCaseFile.cmake b/Tests/RunCMake/ExportPackageInfo/LowerCaseFile.cmake new file mode 100644 index 0000000..9becb5f --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/LowerCaseFile.cmake
@@ -0,0 +1,4 @@ +add_library(foo INTERFACE) +install(TARGETS foo EXPORT foo DESTINATION .) +export(EXPORT foo PACKAGE_INFO LowerCase LOWER_CASE_FILE) +export(EXPORT foo PACKAGE_INFO PreserveCase)
diff --git a/Tests/RunCMake/ExportPackageInfo/Metadata-check.cmake b/Tests/RunCMake/ExportPackageInfo/Metadata-check.cmake new file mode 100644 index 0000000..76e5e55 --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/Metadata-check.cmake
@@ -0,0 +1,16 @@ +include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake) + +set(out_dir "${RunCMake_BINARY_DIR}/Metadata-build") + +file(READ "${out_dir}/foo.cps" content) +expect_value("${content}" "foo" "name") +expect_value("${content}" "1.2.3" "version") +expect_value("${content}" "1.2.0" "compat_version") +expect_value("${content}" "simple" "version_schema") + +expect_array("${content}" 1 "default_components") +expect_value("${content}" "foo" "default_components" 0) + +expect_array("${content}" 2 "configurations") +expect_value("${content}" "release" "configurations" 0) +expect_value("${content}" "debug" "configurations" 1)
diff --git a/Tests/RunCMake/ExportPackageInfo/Metadata.cmake b/Tests/RunCMake/ExportPackageInfo/Metadata.cmake new file mode 100644 index 0000000..1de0021 --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/Metadata.cmake
@@ -0,0 +1,11 @@ +add_library(foo INTERFACE) +install(TARGETS foo EXPORT foo DESTINATION .) +export( + EXPORT foo + PACKAGE_INFO foo + VERSION 1.2.3 + VERSION_SCHEMA simple + COMPAT_VERSION 1.2.0 + DEFAULT_TARGETS foo + DEFAULT_CONFIGURATIONS release debug + )
diff --git a/Tests/RunCMake/ExportPackageInfo/Minimal-check.cmake b/Tests/RunCMake/ExportPackageInfo/Minimal-check.cmake new file mode 100644 index 0000000..deba94e --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/Minimal-check.cmake
@@ -0,0 +1,18 @@ +include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake) + +set(out_dir "${RunCMake_BINARY_DIR}/Minimal-build") + +file(READ "${out_dir}/foo.cps" content) +expect_value("${content}" "foo" "name") +expect_value("${content}" "interface" "components" "foo" "type") +expect_missing("${content}" "version") +expect_missing("${content}" "configurations") +expect_missing("${content}" "default_targets") +expect_missing("${content}" "components" "foo" "compile_definitions") +expect_missing("${content}" "components" "foo" "compile_features") +expect_missing("${content}" "components" "foo" "compile_flags") +expect_missing("${content}" "components" "foo" "link_directories") +expect_missing("${content}" "components" "foo" "link_features") +expect_missing("${content}" "components" "foo" "link_flags") +expect_missing("${content}" "components" "foo" "link_libraries") +expect_missing("${content}" "components" "foo" "requires")
diff --git a/Tests/RunCMake/ExportPackageInfo/Minimal.cmake b/Tests/RunCMake/ExportPackageInfo/Minimal.cmake new file mode 100644 index 0000000..9af1fed --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/Minimal.cmake
@@ -0,0 +1,3 @@ +add_library(foo INTERFACE) +install(TARGETS foo EXPORT foo DESTINATION .) +export(EXPORT foo PACKAGE_INFO foo)
diff --git a/Tests/RunCMake/ExportPackageInfo/MinimalVersion-check.cmake b/Tests/RunCMake/ExportPackageInfo/MinimalVersion-check.cmake new file mode 100644 index 0000000..025c5fc --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/MinimalVersion-check.cmake
@@ -0,0 +1,21 @@ +include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake) + +set(out_dir "${RunCMake_BINARY_DIR}/MinimalVersion-build") + +file(READ "${out_dir}/foo1.cps" content) +expect_value("${content}" "foo1" "name") +expect_value("${content}" "1.0" "version") +expect_missing("${content}" "compat_version") +expect_missing("${content}" "version_schema") + +file(READ "${out_dir}/foo2.cps" content) +expect_value("${content}" "foo2" "name") +expect_value("${content}" "1.5" "version") +expect_value("${content}" "1.0" "compat_version") +expect_missing("${content}" "version_schema") + +file(READ "${out_dir}/foo3.cps" content) +expect_value("${content}" "foo3" "name") +expect_value("${content}" "1.0" "version") +expect_missing("${content}" "compat_version") +expect_value("${content}" "simple" "version_schema")
diff --git a/Tests/RunCMake/ExportPackageInfo/MinimalVersion.cmake b/Tests/RunCMake/ExportPackageInfo/MinimalVersion.cmake new file mode 100644 index 0000000..406ae2d --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/MinimalVersion.cmake
@@ -0,0 +1,16 @@ +add_library(foo INTERFACE) +install(TARGETS foo EXPORT foo DESTINATION .) + +export(EXPORT foo + PACKAGE_INFO foo1 + VERSION 1.0) + +export(EXPORT foo + PACKAGE_INFO foo2 + VERSION 1.5 + COMPAT_VERSION 1.0) + +export(EXPORT foo + PACKAGE_INFO foo3 + VERSION 1.0 + VERSION_SCHEMA simple)
diff --git a/Tests/RunCMake/PackageInfo/ReferencesNonExportedTarget-result.txt b/Tests/RunCMake/ExportPackageInfo/ReferencesNonExportedTarget-result.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/ReferencesNonExportedTarget-result.txt rename to Tests/RunCMake/ExportPackageInfo/ReferencesNonExportedTarget-result.txt
diff --git a/Tests/RunCMake/ExportPackageInfo/ReferencesNonExportedTarget-stderr.txt b/Tests/RunCMake/ExportPackageInfo/ReferencesNonExportedTarget-stderr.txt new file mode 100644 index 0000000..9307086 --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/ReferencesNonExportedTarget-stderr.txt
@@ -0,0 +1,3 @@ +CMake Error in CMakeLists.txt: + export called with target "canine" which requires target "mammal" that is + not in any export set.
diff --git a/Tests/RunCMake/ExportPackageInfo/ReferencesNonExportedTarget.cmake b/Tests/RunCMake/ExportPackageInfo/ReferencesNonExportedTarget.cmake new file mode 100644 index 0000000..f8c1370 --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/ReferencesNonExportedTarget.cmake
@@ -0,0 +1,6 @@ +add_library(mammal INTERFACE) +add_library(canine INTERFACE) +target_link_libraries(canine INTERFACE mammal) + +install(TARGETS canine EXPORT dog DESTINATION .) +export(EXPORT dog PACKAGE_INFO dog)
diff --git a/Tests/RunCMake/PackageInfo/ReferencesWronglyExportedTarget-result.txt b/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyExportedTarget-result.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/ReferencesWronglyExportedTarget-result.txt rename to Tests/RunCMake/ExportPackageInfo/ReferencesWronglyExportedTarget-result.txt
diff --git a/Tests/RunCMake/PackageInfo/ReferencesWronglyExportedTarget-stderr.txt b/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyExportedTarget-stderr.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/ReferencesWronglyExportedTarget-stderr.txt rename to Tests/RunCMake/ExportPackageInfo/ReferencesWronglyExportedTarget-stderr.txt
diff --git a/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyExportedTarget.cmake b/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyExportedTarget.cmake new file mode 100644 index 0000000..66e51bd --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyExportedTarget.cmake
@@ -0,0 +1,14 @@ +add_library(foo INTERFACE) +add_library(bar INTERFACE) + +add_library(test INTERFACE) +target_link_libraries(test INTERFACE foo bar) + +install(TARGETS foo EXPORT foo DESTINATION .) +install(TARGETS bar EXPORT bar DESTINATION .) + +export(EXPORT foo) +export(EXPORT bar NAMESPACE bar_) + +install(TARGETS test EXPORT test DESTINATION .) +export(EXPORT test PACKAGE_INFO test)
diff --git a/Tests/RunCMake/PackageInfo/ReferencesWronglyImportedTarget-result.txt b/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyImportedTarget-result.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/ReferencesWronglyImportedTarget-result.txt rename to Tests/RunCMake/ExportPackageInfo/ReferencesWronglyImportedTarget-result.txt
diff --git a/Tests/RunCMake/PackageInfo/ReferencesWronglyImportedTarget-stderr.txt b/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyImportedTarget-stderr.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/ReferencesWronglyImportedTarget-stderr.txt rename to Tests/RunCMake/ExportPackageInfo/ReferencesWronglyImportedTarget-stderr.txt
diff --git a/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyImportedTarget.cmake b/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyImportedTarget.cmake new file mode 100644 index 0000000..93686f6 --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyImportedTarget.cmake
@@ -0,0 +1,7 @@ +add_library(bar INTERFACE IMPORTED) + +add_library(foo INTERFACE) +target_link_libraries(foo INTERFACE bar) + +install(TARGETS foo EXPORT foo DESTINATION .) +export(EXPORT foo PACKAGE_INFO foo)
diff --git a/Tests/RunCMake/PackageInfo/ReferencesWronglyNamespacedTarget-result.txt b/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyNamespacedTarget-result.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/ReferencesWronglyNamespacedTarget-result.txt rename to Tests/RunCMake/ExportPackageInfo/ReferencesWronglyNamespacedTarget-result.txt
diff --git a/Tests/RunCMake/PackageInfo/ReferencesWronglyNamespacedTarget-stderr.txt b/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyNamespacedTarget-stderr.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/ReferencesWronglyNamespacedTarget-stderr.txt rename to Tests/RunCMake/ExportPackageInfo/ReferencesWronglyNamespacedTarget-stderr.txt
diff --git a/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyNamespacedTarget.cmake b/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyNamespacedTarget.cmake new file mode 100644 index 0000000..d6188d3 --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyNamespacedTarget.cmake
@@ -0,0 +1,11 @@ +find_package( + broken REQUIRED CONFIG + NO_DEFAULT_PATH + PATHS ${CMAKE_CURRENT_LIST_DIR} + ) + +add_library(foo INTERFACE) +target_link_libraries(foo INTERFACE wrong::lib) + +install(TARGETS foo EXPORT foo DESTINATION .) +export(EXPORT foo PACKAGE_INFO foo)
diff --git a/Tests/RunCMake/ExportPackageInfo/Requirements-check.cmake b/Tests/RunCMake/ExportPackageInfo/Requirements-check.cmake new file mode 100644 index 0000000..226c4c2 --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/Requirements-check.cmake
@@ -0,0 +1,22 @@ +include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake) + +set(out_dir "${RunCMake_BINARY_DIR}/Requirements-build") + +file(READ "${out_dir}/foo.cps" content) +expect_value("${content}" "foo" "name") +expect_value("${content}" "interface" "components" "libb" "type") + +file(READ "${out_dir}/bar.cps" content) +expect_value("${content}" "bar" "name") +expect_array("${content}" 1 "requires" "foo" "components") +expect_value("${content}" "libb" "requires" "foo" "components" 0) +expect_array("${content}" 1 "requires" "test" "components") +expect_value("${content}" "liba" "requires" "test" "components" 0) +expect_value("${content}" "interface" "components" "libc" "type") +expect_value("${content}" "interface" "components" "libd" "type") + +string(JSON component GET "${content}" "components" "libd") +expect_array("${component}" 3 "requires") +expect_value("${component}" "test:liba" "requires" 0) +expect_value("${component}" "foo:libb" "requires" 1) +expect_value("${component}" ":libc" "requires" 2)
diff --git a/Tests/RunCMake/ExportPackageInfo/Requirements.cmake b/Tests/RunCMake/ExportPackageInfo/Requirements.cmake new file mode 100644 index 0000000..bf6ffbb --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/Requirements.cmake
@@ -0,0 +1,20 @@ +find_package( + test REQUIRED CONFIG + NO_DEFAULT_PATH + PATHS ${CMAKE_CURRENT_LIST_DIR} + ) + +add_library(libb INTERFACE) +add_library(libc INTERFACE) +add_library(libd INTERFACE) + +add_library(foo ALIAS libb) +add_library(bar ALIAS libc) + +target_link_libraries(libd INTERFACE test::liba foo bar) + +install(TARGETS libb EXPORT foo DESTINATION .) +export(EXPORT foo PACKAGE_INFO foo) + +install(TARGETS libc libd EXPORT bar DESTINATION .) +export(EXPORT bar PACKAGE_INFO bar)
diff --git a/Tests/RunCMake/PackageInfo/RunCMakeTest.cmake b/Tests/RunCMake/ExportPackageInfo/RunCMakeTest.cmake similarity index 94% copy from Tests/RunCMake/PackageInfo/RunCMakeTest.cmake copy to Tests/RunCMake/ExportPackageInfo/RunCMakeTest.cmake index 6618ff4..b80ce53 100644 --- a/Tests/RunCMake/PackageInfo/RunCMakeTest.cmake +++ b/Tests/RunCMake/ExportPackageInfo/RunCMakeTest.cmake
@@ -15,7 +15,8 @@ run_cmake(BadArgs2) run_cmake(BadArgs3) run_cmake(BadArgs4) -run_cmake(BadArgs5) +run_cmake(BadName) +run_cmake(DuplicateOutput) run_cmake(BadDefaultTarget) run_cmake(ReferencesNonExportedTarget) run_cmake(ReferencesWronglyExportedTarget)
diff --git a/Tests/RunCMake/ExportPackageInfo/TargetTypes-check.cmake b/Tests/RunCMake/ExportPackageInfo/TargetTypes-check.cmake new file mode 100644 index 0000000..1c87fcf --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/TargetTypes-check.cmake
@@ -0,0 +1,11 @@ +include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake) + +set(out_dir "${RunCMake_BINARY_DIR}/TargetTypes-build") + +file(READ "${out_dir}/foo.cps" content) +expect_value("${content}" "foo" "name") +expect_value("${content}" "archive" "components" "foo-static" "type") +expect_value("${content}" "dylib" "components" "foo-shared" "type") +expect_value("${content}" "module" "components" "foo-module" "type") +expect_value("${content}" "interface" "components" "bar" "type") +expect_value("${content}" "executable" "components" "test" "type")
diff --git a/Tests/RunCMake/ExportPackageInfo/TargetTypes.cmake b/Tests/RunCMake/ExportPackageInfo/TargetTypes.cmake new file mode 100644 index 0000000..414e35e --- /dev/null +++ b/Tests/RunCMake/ExportPackageInfo/TargetTypes.cmake
@@ -0,0 +1,20 @@ +project(TargetTypes CXX) + +add_library(foo-static STATIC foo.cxx) +add_library(foo-shared SHARED foo.cxx) +add_library(foo-module MODULE foo.cxx) +add_library(bar INTERFACE) +add_executable(test test.cxx) + +install( + TARGETS + foo-static + foo-shared + foo-module + bar + test + EXPORT foo + DESTINATION . + ) + +export(EXPORT foo PACKAGE_INFO foo)
diff --git a/Tests/RunCMake/PackageInfo/broken-config.cmake b/Tests/RunCMake/ExportPackageInfo/broken-config.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/broken-config.cmake rename to Tests/RunCMake/ExportPackageInfo/broken-config.cmake
diff --git a/Tests/RunCMake/PackageInfo/foo.cxx b/Tests/RunCMake/ExportPackageInfo/foo.cxx similarity index 100% rename from Tests/RunCMake/PackageInfo/foo.cxx rename to Tests/RunCMake/ExportPackageInfo/foo.cxx
diff --git a/Tests/RunCMake/PackageInfo/test-config.cmake b/Tests/RunCMake/ExportPackageInfo/test-config.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/test-config.cmake rename to Tests/RunCMake/ExportPackageInfo/test-config.cmake
diff --git a/Tests/RunCMake/PackageInfo/test.cxx b/Tests/RunCMake/ExportPackageInfo/test.cxx similarity index 100% rename from Tests/RunCMake/PackageInfo/test.cxx rename to Tests/RunCMake/ExportPackageInfo/test.cxx
diff --git a/Tests/RunCMake/PackageInfo/Appendix-check.cmake b/Tests/RunCMake/InstallPackageInfo/Appendix-check.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/Appendix-check.cmake rename to Tests/RunCMake/InstallPackageInfo/Appendix-check.cmake
diff --git a/Tests/RunCMake/PackageInfo/Appendix.cmake b/Tests/RunCMake/InstallPackageInfo/Appendix.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/Appendix.cmake rename to Tests/RunCMake/InstallPackageInfo/Appendix.cmake
diff --git a/Tests/RunCMake/PackageInfo/Assertions.cmake b/Tests/RunCMake/InstallPackageInfo/Assertions.cmake similarity index 100% copy from Tests/RunCMake/PackageInfo/Assertions.cmake copy to Tests/RunCMake/InstallPackageInfo/Assertions.cmake
diff --git a/Tests/RunCMake/PackageInfo/BadArgs1-result.txt b/Tests/RunCMake/InstallPackageInfo/BadArgs1-result.txt similarity index 100% copy from Tests/RunCMake/PackageInfo/BadArgs1-result.txt copy to Tests/RunCMake/InstallPackageInfo/BadArgs1-result.txt
diff --git a/Tests/RunCMake/PackageInfo/BadArgs1-stderr.txt b/Tests/RunCMake/InstallPackageInfo/BadArgs1-stderr.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/BadArgs1-stderr.txt rename to Tests/RunCMake/InstallPackageInfo/BadArgs1-stderr.txt
diff --git a/Tests/RunCMake/PackageInfo/BadArgs1.cmake b/Tests/RunCMake/InstallPackageInfo/BadArgs1.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/BadArgs1.cmake rename to Tests/RunCMake/InstallPackageInfo/BadArgs1.cmake
diff --git a/Tests/RunCMake/PackageInfo/BadArgs2-result.txt b/Tests/RunCMake/InstallPackageInfo/BadArgs2-result.txt similarity index 100% copy from Tests/RunCMake/PackageInfo/BadArgs2-result.txt copy to Tests/RunCMake/InstallPackageInfo/BadArgs2-result.txt
diff --git a/Tests/RunCMake/PackageInfo/BadArgs2-stderr.txt b/Tests/RunCMake/InstallPackageInfo/BadArgs2-stderr.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/BadArgs2-stderr.txt rename to Tests/RunCMake/InstallPackageInfo/BadArgs2-stderr.txt
diff --git a/Tests/RunCMake/PackageInfo/BadArgs2.cmake b/Tests/RunCMake/InstallPackageInfo/BadArgs2.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/BadArgs2.cmake rename to Tests/RunCMake/InstallPackageInfo/BadArgs2.cmake
diff --git a/Tests/RunCMake/PackageInfo/BadArgs3-result.txt b/Tests/RunCMake/InstallPackageInfo/BadArgs3-result.txt similarity index 100% copy from Tests/RunCMake/PackageInfo/BadArgs3-result.txt copy to Tests/RunCMake/InstallPackageInfo/BadArgs3-result.txt
diff --git a/Tests/RunCMake/PackageInfo/BadArgs3-stderr.txt b/Tests/RunCMake/InstallPackageInfo/BadArgs3-stderr.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/BadArgs3-stderr.txt rename to Tests/RunCMake/InstallPackageInfo/BadArgs3-stderr.txt
diff --git a/Tests/RunCMake/PackageInfo/BadArgs3.cmake b/Tests/RunCMake/InstallPackageInfo/BadArgs3.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/BadArgs3.cmake rename to Tests/RunCMake/InstallPackageInfo/BadArgs3.cmake
diff --git a/Tests/RunCMake/PackageInfo/BadArgs4-result.txt b/Tests/RunCMake/InstallPackageInfo/BadArgs4-result.txt similarity index 100% copy from Tests/RunCMake/PackageInfo/BadArgs4-result.txt copy to Tests/RunCMake/InstallPackageInfo/BadArgs4-result.txt
diff --git a/Tests/RunCMake/PackageInfo/BadArgs4-stderr.txt b/Tests/RunCMake/InstallPackageInfo/BadArgs4-stderr.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/BadArgs4-stderr.txt rename to Tests/RunCMake/InstallPackageInfo/BadArgs4-stderr.txt
diff --git a/Tests/RunCMake/PackageInfo/BadArgs4.cmake b/Tests/RunCMake/InstallPackageInfo/BadArgs4.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/BadArgs4.cmake rename to Tests/RunCMake/InstallPackageInfo/BadArgs4.cmake
diff --git a/Tests/RunCMake/PackageInfo/BadArgs5-result.txt b/Tests/RunCMake/InstallPackageInfo/BadArgs5-result.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/BadArgs5-result.txt rename to Tests/RunCMake/InstallPackageInfo/BadArgs5-result.txt
diff --git a/Tests/RunCMake/PackageInfo/BadArgs5-stderr.txt b/Tests/RunCMake/InstallPackageInfo/BadArgs5-stderr.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/BadArgs5-stderr.txt rename to Tests/RunCMake/InstallPackageInfo/BadArgs5-stderr.txt
diff --git a/Tests/RunCMake/PackageInfo/BadArgs5.cmake b/Tests/RunCMake/InstallPackageInfo/BadArgs5.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/BadArgs5.cmake rename to Tests/RunCMake/InstallPackageInfo/BadArgs5.cmake
diff --git a/Tests/RunCMake/PackageInfo/BadDefaultTarget-result.txt b/Tests/RunCMake/InstallPackageInfo/BadDefaultTarget-result.txt similarity index 100% copy from Tests/RunCMake/PackageInfo/BadDefaultTarget-result.txt copy to Tests/RunCMake/InstallPackageInfo/BadDefaultTarget-result.txt
diff --git a/Tests/RunCMake/PackageInfo/BadDefaultTarget-stderr.txt b/Tests/RunCMake/InstallPackageInfo/BadDefaultTarget-stderr.txt similarity index 100% copy from Tests/RunCMake/PackageInfo/BadDefaultTarget-stderr.txt copy to Tests/RunCMake/InstallPackageInfo/BadDefaultTarget-stderr.txt
diff --git a/Tests/RunCMake/PackageInfo/BadDefaultTarget.cmake b/Tests/RunCMake/InstallPackageInfo/BadDefaultTarget.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/BadDefaultTarget.cmake rename to Tests/RunCMake/InstallPackageInfo/BadDefaultTarget.cmake
diff --git a/Tests/RunCMake/PackageInfo/BadArgs1-result.txt b/Tests/RunCMake/InstallPackageInfo/BadName-result.txt similarity index 100% copy from Tests/RunCMake/PackageInfo/BadArgs1-result.txt copy to Tests/RunCMake/InstallPackageInfo/BadName-result.txt
diff --git a/Tests/RunCMake/InstallPackageInfo/BadName-stderr.txt b/Tests/RunCMake/InstallPackageInfo/BadName-stderr.txt new file mode 100644 index 0000000..5d43152 --- /dev/null +++ b/Tests/RunCMake/InstallPackageInfo/BadName-stderr.txt
@@ -0,0 +1,4 @@ +CMake Error at BadName\.cmake:3 \(install\): + install PACKAGE_INFO given invalid package name "%foo"\. +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\)
diff --git a/Tests/RunCMake/InstallPackageInfo/BadName.cmake b/Tests/RunCMake/InstallPackageInfo/BadName.cmake new file mode 100644 index 0000000..2ca878b --- /dev/null +++ b/Tests/RunCMake/InstallPackageInfo/BadName.cmake
@@ -0,0 +1,3 @@ +add_library(foo INTERFACE) +install(TARGETS foo EXPORT foo DESTINATION .) +install(PACKAGE_INFO "%foo" EXPORT foo)
diff --git a/Tests/RunCMake/PackageInfo/CMakeLists.txt b/Tests/RunCMake/InstallPackageInfo/CMakeLists.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/CMakeLists.txt rename to Tests/RunCMake/InstallPackageInfo/CMakeLists.txt
diff --git a/Tests/RunCMake/PackageInfo/DependsMultiple.cmake b/Tests/RunCMake/InstallPackageInfo/DependsMultiple.cmake similarity index 100% copy from Tests/RunCMake/PackageInfo/DependsMultiple.cmake copy to Tests/RunCMake/InstallPackageInfo/DependsMultiple.cmake
diff --git a/Tests/RunCMake/PackageInfo/DependsMultipleCommon.cmake b/Tests/RunCMake/InstallPackageInfo/DependsMultipleCommon.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/DependsMultipleCommon.cmake rename to Tests/RunCMake/InstallPackageInfo/DependsMultipleCommon.cmake
diff --git a/Tests/RunCMake/PackageInfo/DependsMultipleDifferentNamespace-result.txt b/Tests/RunCMake/InstallPackageInfo/DependsMultipleDifferentNamespace-result.txt similarity index 100% copy from Tests/RunCMake/PackageInfo/DependsMultipleDifferentNamespace-result.txt copy to Tests/RunCMake/InstallPackageInfo/DependsMultipleDifferentNamespace-result.txt
diff --git a/Tests/RunCMake/PackageInfo/DependsMultipleDifferentNamespace-stderr.txt b/Tests/RunCMake/InstallPackageInfo/DependsMultipleDifferentNamespace-stderr.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/DependsMultipleDifferentNamespace-stderr.txt rename to Tests/RunCMake/InstallPackageInfo/DependsMultipleDifferentNamespace-stderr.txt
diff --git a/Tests/RunCMake/PackageInfo/DependsMultipleDifferentNamespace.cmake b/Tests/RunCMake/InstallPackageInfo/DependsMultipleDifferentNamespace.cmake similarity index 100% copy from Tests/RunCMake/PackageInfo/DependsMultipleDifferentNamespace.cmake copy to Tests/RunCMake/InstallPackageInfo/DependsMultipleDifferentNamespace.cmake
diff --git a/Tests/RunCMake/PackageInfo/DependsMultipleDifferentSets-result.txt b/Tests/RunCMake/InstallPackageInfo/DependsMultipleDifferentSets-result.txt similarity index 100% copy from Tests/RunCMake/PackageInfo/DependsMultipleDifferentSets-result.txt copy to Tests/RunCMake/InstallPackageInfo/DependsMultipleDifferentSets-result.txt
diff --git a/Tests/RunCMake/PackageInfo/DependsMultipleDifferentSets-stderr.txt b/Tests/RunCMake/InstallPackageInfo/DependsMultipleDifferentSets-stderr.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/DependsMultipleDifferentSets-stderr.txt rename to Tests/RunCMake/InstallPackageInfo/DependsMultipleDifferentSets-stderr.txt
diff --git a/Tests/RunCMake/PackageInfo/DependsMultipleDifferentSets.cmake b/Tests/RunCMake/InstallPackageInfo/DependsMultipleDifferentSets.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/DependsMultipleDifferentSets.cmake rename to Tests/RunCMake/InstallPackageInfo/DependsMultipleDifferentSets.cmake
diff --git a/Tests/RunCMake/PackageInfo/ExperimentalGate-result.txt b/Tests/RunCMake/InstallPackageInfo/ExperimentalGate-result.txt similarity index 100% copy from Tests/RunCMake/PackageInfo/ExperimentalGate-result.txt copy to Tests/RunCMake/InstallPackageInfo/ExperimentalGate-result.txt
diff --git a/Tests/RunCMake/PackageInfo/ExperimentalGate-stderr.txt b/Tests/RunCMake/InstallPackageInfo/ExperimentalGate-stderr.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/ExperimentalGate-stderr.txt rename to Tests/RunCMake/InstallPackageInfo/ExperimentalGate-stderr.txt
diff --git a/Tests/RunCMake/PackageInfo/ExperimentalGate.cmake b/Tests/RunCMake/InstallPackageInfo/ExperimentalGate.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/ExperimentalGate.cmake rename to Tests/RunCMake/InstallPackageInfo/ExperimentalGate.cmake
diff --git a/Tests/RunCMake/PackageInfo/ExperimentalWarning-stderr.txt b/Tests/RunCMake/InstallPackageInfo/ExperimentalWarning-stderr.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/ExperimentalWarning-stderr.txt rename to Tests/RunCMake/InstallPackageInfo/ExperimentalWarning-stderr.txt
diff --git a/Tests/RunCMake/PackageInfo/ExperimentalWarning.cmake b/Tests/RunCMake/InstallPackageInfo/ExperimentalWarning.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/ExperimentalWarning.cmake rename to Tests/RunCMake/InstallPackageInfo/ExperimentalWarning.cmake
diff --git a/Tests/RunCMake/PackageInfo/InterfaceProperties-check.cmake b/Tests/RunCMake/InstallPackageInfo/InterfaceProperties-check.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/InterfaceProperties-check.cmake rename to Tests/RunCMake/InstallPackageInfo/InterfaceProperties-check.cmake
diff --git a/Tests/RunCMake/PackageInfo/InterfaceProperties.cmake b/Tests/RunCMake/InstallPackageInfo/InterfaceProperties.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/InterfaceProperties.cmake rename to Tests/RunCMake/InstallPackageInfo/InterfaceProperties.cmake
diff --git a/Tests/RunCMake/PackageInfo/LowerCaseFile-check.cmake b/Tests/RunCMake/InstallPackageInfo/LowerCaseFile-check.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/LowerCaseFile-check.cmake rename to Tests/RunCMake/InstallPackageInfo/LowerCaseFile-check.cmake
diff --git a/Tests/RunCMake/PackageInfo/LowerCaseFile.cmake b/Tests/RunCMake/InstallPackageInfo/LowerCaseFile.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/LowerCaseFile.cmake rename to Tests/RunCMake/InstallPackageInfo/LowerCaseFile.cmake
diff --git a/Tests/RunCMake/PackageInfo/Metadata-check.cmake b/Tests/RunCMake/InstallPackageInfo/Metadata-check.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/Metadata-check.cmake rename to Tests/RunCMake/InstallPackageInfo/Metadata-check.cmake
diff --git a/Tests/RunCMake/PackageInfo/Metadata.cmake b/Tests/RunCMake/InstallPackageInfo/Metadata.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/Metadata.cmake rename to Tests/RunCMake/InstallPackageInfo/Metadata.cmake
diff --git a/Tests/RunCMake/PackageInfo/Minimal-check.cmake b/Tests/RunCMake/InstallPackageInfo/Minimal-check.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/Minimal-check.cmake rename to Tests/RunCMake/InstallPackageInfo/Minimal-check.cmake
diff --git a/Tests/RunCMake/PackageInfo/Minimal.cmake b/Tests/RunCMake/InstallPackageInfo/Minimal.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/Minimal.cmake rename to Tests/RunCMake/InstallPackageInfo/Minimal.cmake
diff --git a/Tests/RunCMake/PackageInfo/MinimalVersion-check.cmake b/Tests/RunCMake/InstallPackageInfo/MinimalVersion-check.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/MinimalVersion-check.cmake rename to Tests/RunCMake/InstallPackageInfo/MinimalVersion-check.cmake
diff --git a/Tests/RunCMake/PackageInfo/MinimalVersion.cmake b/Tests/RunCMake/InstallPackageInfo/MinimalVersion.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/MinimalVersion.cmake rename to Tests/RunCMake/InstallPackageInfo/MinimalVersion.cmake
diff --git a/Tests/RunCMake/PackageInfo/ReferencesNonExportedTarget-result.txt b/Tests/RunCMake/InstallPackageInfo/ReferencesNonExportedTarget-result.txt similarity index 100% copy from Tests/RunCMake/PackageInfo/ReferencesNonExportedTarget-result.txt copy to Tests/RunCMake/InstallPackageInfo/ReferencesNonExportedTarget-result.txt
diff --git a/Tests/RunCMake/PackageInfo/ReferencesNonExportedTarget-stderr.txt b/Tests/RunCMake/InstallPackageInfo/ReferencesNonExportedTarget-stderr.txt similarity index 100% rename from Tests/RunCMake/PackageInfo/ReferencesNonExportedTarget-stderr.txt rename to Tests/RunCMake/InstallPackageInfo/ReferencesNonExportedTarget-stderr.txt
diff --git a/Tests/RunCMake/PackageInfo/ReferencesNonExportedTarget.cmake b/Tests/RunCMake/InstallPackageInfo/ReferencesNonExportedTarget.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/ReferencesNonExportedTarget.cmake rename to Tests/RunCMake/InstallPackageInfo/ReferencesNonExportedTarget.cmake
diff --git a/Tests/RunCMake/PackageInfo/ReferencesWronglyExportedTarget-result.txt b/Tests/RunCMake/InstallPackageInfo/ReferencesWronglyExportedTarget-result.txt similarity index 100% copy from Tests/RunCMake/PackageInfo/ReferencesWronglyExportedTarget-result.txt copy to Tests/RunCMake/InstallPackageInfo/ReferencesWronglyExportedTarget-result.txt
diff --git a/Tests/RunCMake/PackageInfo/ReferencesWronglyExportedTarget-stderr.txt b/Tests/RunCMake/InstallPackageInfo/ReferencesWronglyExportedTarget-stderr.txt similarity index 100% copy from Tests/RunCMake/PackageInfo/ReferencesWronglyExportedTarget-stderr.txt copy to Tests/RunCMake/InstallPackageInfo/ReferencesWronglyExportedTarget-stderr.txt
diff --git a/Tests/RunCMake/PackageInfo/ReferencesWronglyExportedTarget.cmake b/Tests/RunCMake/InstallPackageInfo/ReferencesWronglyExportedTarget.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/ReferencesWronglyExportedTarget.cmake rename to Tests/RunCMake/InstallPackageInfo/ReferencesWronglyExportedTarget.cmake
diff --git a/Tests/RunCMake/PackageInfo/ReferencesWronglyImportedTarget-result.txt b/Tests/RunCMake/InstallPackageInfo/ReferencesWronglyImportedTarget-result.txt similarity index 100% copy from Tests/RunCMake/PackageInfo/ReferencesWronglyImportedTarget-result.txt copy to Tests/RunCMake/InstallPackageInfo/ReferencesWronglyImportedTarget-result.txt
diff --git a/Tests/RunCMake/PackageInfo/ReferencesWronglyImportedTarget-stderr.txt b/Tests/RunCMake/InstallPackageInfo/ReferencesWronglyImportedTarget-stderr.txt similarity index 100% copy from Tests/RunCMake/PackageInfo/ReferencesWronglyImportedTarget-stderr.txt copy to Tests/RunCMake/InstallPackageInfo/ReferencesWronglyImportedTarget-stderr.txt
diff --git a/Tests/RunCMake/PackageInfo/ReferencesWronglyImportedTarget.cmake b/Tests/RunCMake/InstallPackageInfo/ReferencesWronglyImportedTarget.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/ReferencesWronglyImportedTarget.cmake rename to Tests/RunCMake/InstallPackageInfo/ReferencesWronglyImportedTarget.cmake
diff --git a/Tests/RunCMake/PackageInfo/ReferencesWronglyNamespacedTarget-result.txt b/Tests/RunCMake/InstallPackageInfo/ReferencesWronglyNamespacedTarget-result.txt similarity index 100% copy from Tests/RunCMake/PackageInfo/ReferencesWronglyNamespacedTarget-result.txt copy to Tests/RunCMake/InstallPackageInfo/ReferencesWronglyNamespacedTarget-result.txt
diff --git a/Tests/RunCMake/PackageInfo/ReferencesWronglyNamespacedTarget-stderr.txt b/Tests/RunCMake/InstallPackageInfo/ReferencesWronglyNamespacedTarget-stderr.txt similarity index 100% copy from Tests/RunCMake/PackageInfo/ReferencesWronglyNamespacedTarget-stderr.txt copy to Tests/RunCMake/InstallPackageInfo/ReferencesWronglyNamespacedTarget-stderr.txt
diff --git a/Tests/RunCMake/PackageInfo/ReferencesWronglyNamespacedTarget.cmake b/Tests/RunCMake/InstallPackageInfo/ReferencesWronglyNamespacedTarget.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/ReferencesWronglyNamespacedTarget.cmake rename to Tests/RunCMake/InstallPackageInfo/ReferencesWronglyNamespacedTarget.cmake
diff --git a/Tests/RunCMake/PackageInfo/Requirements-check.cmake b/Tests/RunCMake/InstallPackageInfo/Requirements-check.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/Requirements-check.cmake rename to Tests/RunCMake/InstallPackageInfo/Requirements-check.cmake
diff --git a/Tests/RunCMake/PackageInfo/Requirements.cmake b/Tests/RunCMake/InstallPackageInfo/Requirements.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/Requirements.cmake rename to Tests/RunCMake/InstallPackageInfo/Requirements.cmake
diff --git a/Tests/RunCMake/PackageInfo/RunCMakeTest.cmake b/Tests/RunCMake/InstallPackageInfo/RunCMakeTest.cmake similarity index 97% rename from Tests/RunCMake/PackageInfo/RunCMakeTest.cmake rename to Tests/RunCMake/InstallPackageInfo/RunCMakeTest.cmake index 6618ff4..ebd3e89 100644 --- a/Tests/RunCMake/PackageInfo/RunCMakeTest.cmake +++ b/Tests/RunCMake/InstallPackageInfo/RunCMakeTest.cmake
@@ -16,6 +16,7 @@ run_cmake(BadArgs3) run_cmake(BadArgs4) run_cmake(BadArgs5) +run_cmake(BadName) run_cmake(BadDefaultTarget) run_cmake(ReferencesNonExportedTarget) run_cmake(ReferencesWronglyExportedTarget)
diff --git a/Tests/RunCMake/PackageInfo/TargetTypes-check.cmake b/Tests/RunCMake/InstallPackageInfo/TargetTypes-check.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/TargetTypes-check.cmake rename to Tests/RunCMake/InstallPackageInfo/TargetTypes-check.cmake
diff --git a/Tests/RunCMake/PackageInfo/TargetTypes.cmake b/Tests/RunCMake/InstallPackageInfo/TargetTypes.cmake similarity index 100% rename from Tests/RunCMake/PackageInfo/TargetTypes.cmake rename to Tests/RunCMake/InstallPackageInfo/TargetTypes.cmake
diff --git a/Tests/RunCMake/PackageInfo/broken-config.cmake b/Tests/RunCMake/InstallPackageInfo/broken-config.cmake similarity index 100% copy from Tests/RunCMake/PackageInfo/broken-config.cmake copy to Tests/RunCMake/InstallPackageInfo/broken-config.cmake
diff --git a/Tests/RunCMake/PackageInfo/foo.cxx b/Tests/RunCMake/InstallPackageInfo/foo.cxx similarity index 100% copy from Tests/RunCMake/PackageInfo/foo.cxx copy to Tests/RunCMake/InstallPackageInfo/foo.cxx
diff --git a/Tests/RunCMake/PackageInfo/test-config.cmake b/Tests/RunCMake/InstallPackageInfo/test-config.cmake similarity index 100% copy from Tests/RunCMake/PackageInfo/test-config.cmake copy to Tests/RunCMake/InstallPackageInfo/test-config.cmake
diff --git a/Tests/RunCMake/PackageInfo/test.cxx b/Tests/RunCMake/InstallPackageInfo/test.cxx similarity index 100% copy from Tests/RunCMake/PackageInfo/test.cxx copy to Tests/RunCMake/InstallPackageInfo/test.cxx
diff --git a/Tests/RunCMake/Instrumentation/check-data-dir.cmake b/Tests/RunCMake/Instrumentation/check-data-dir.cmake index a20d2cd..e21eb66 100644 --- a/Tests/RunCMake/Instrumentation/check-data-dir.cmake +++ b/Tests/RunCMake/Instrumentation/check-data-dir.cmake
@@ -111,7 +111,7 @@ # Verify command args were passed if (filename MATCHES "^cmakeBuild|^ctest") string(JSON command GET "${contents}" command) - if (NOT command MATCHES "-.* Debug") + if (NOT command MATCHES "Debug") snippet_error(${snippet} "Command value missing passed arguments") endif() endif()
diff --git a/Tests/RunCMake/Instrumentation/query/cmake-command-make-program.cmake b/Tests/RunCMake/Instrumentation/query/cmake-command-make-program.cmake index 807d991..9e88561 100644 --- a/Tests/RunCMake/Instrumentation/query/cmake-command-make-program.cmake +++ b/Tests/RunCMake/Instrumentation/query/cmake-command-make-program.cmake
@@ -3,5 +3,5 @@ API_VERSION 1 DATA_VERSION 1 HOOKS preBuild postBuild - CALLBACK "\"${CMAKE_COMMAND}\" -P \"${hook_path}\" 0" + CALLBACK ${CMAKE_COMMAND} -P ${hook_path} 0 )
diff --git a/Tests/RunCMake/Instrumentation/query/cmake-command.cmake b/Tests/RunCMake/Instrumentation/query/cmake-command.cmake index 3f66de5..72e9b41 100644 --- a/Tests/RunCMake/Instrumentation/query/cmake-command.cmake +++ b/Tests/RunCMake/Instrumentation/query/cmake-command.cmake
@@ -8,7 +8,7 @@ API_VERSION 1 DATA_VERSION 1 HOOKS postGenerate - CALLBACK \"${CMAKE_COMMAND}\" -E echo callback1 + CALLBACK ${CMAKE_COMMAND} -E echo callback1 ) # Query 2 cmake_instrumentation( @@ -16,6 +16,6 @@ DATA_VERSION 1 HOOKS postCMakeBuild QUERIES staticSystemInformation dynamicSystemInformation - CALLBACK \"${CMAKE_COMMAND}\" -E echo callback2 - CALLBACK \"${CMAKE_COMMAND}\" -E echo callback3 + CALLBACK ${CMAKE_COMMAND} -E echo callback2 + CALLBACK ${CMAKE_COMMAND} -E echo callback3 )
diff --git a/Tests/RunCMake/Instrumentation/query/generated/query-1.json.in b/Tests/RunCMake/Instrumentation/query/generated/query-1.json.in index 996a91b..e5e6c35 100644 --- a/Tests/RunCMake/Instrumentation/query/generated/query-1.json.in +++ b/Tests/RunCMake/Instrumentation/query/generated/query-1.json.in
@@ -1,7 +1,7 @@ { "callbacks" : [ - "\"@CMAKE_COMMAND@\" -E echo callback1" + "\"@CMAKE_COMMAND@\" \"-E\" \"echo\" \"callback1\"" ], "hooks" : [
diff --git a/Tests/RunCMake/Instrumentation/query/generated/query-2.json.in b/Tests/RunCMake/Instrumentation/query/generated/query-2.json.in index 3591633..58db59f 100644 --- a/Tests/RunCMake/Instrumentation/query/generated/query-2.json.in +++ b/Tests/RunCMake/Instrumentation/query/generated/query-2.json.in
@@ -1,8 +1,8 @@ { "callbacks" : [ - "\"@CMAKE_COMMAND@\" -E echo callback2", - "\"@CMAKE_COMMAND@\" -E echo callback3" + "\"@CMAKE_COMMAND@\" \"-E\" \"echo\" \"callback2\"", + "\"@CMAKE_COMMAND@\" \"-E\" \"echo\" \"callback3\"" ], "hooks" : [
diff --git a/Tests/RunCMake/ParseImplicitData/CMakeLists.txt b/Tests/RunCMake/ParseImplicitData/CMakeLists.txt index a9d5fdd5..e150ed2 100644 --- a/Tests/RunCMake/ParseImplicitData/CMakeLists.txt +++ b/Tests/RunCMake/ParseImplicitData/CMakeLists.txt
@@ -27,7 +27,7 @@ # CMAKE_<LANG>_COMPILER_* variables we save in the resultfile set(compvars ABI AR ARCHITECTURE_ID EXTERNAL_TOOLCHAIN ID LAUNCHER LOADED - RANLIB TARGET VERSION VERSION_INTERAL) + RANLIB TARGET VERSION VERSION_INTERNAL) foreach(lang IN ITEMS ${LANGUAGES})
diff --git a/Tests/RunCMake/ParseImplicitData/aix-C-IBMClang-17.1.1.2.input b/Tests/RunCMake/ParseImplicitData/aix-C-IBMClang-17.1.1.2.input index 0d57b2c..2639aed 100644 --- a/Tests/RunCMake/ParseImplicitData/aix-C-IBMClang-17.1.1.2.input +++ b/Tests/RunCMake/ParseImplicitData/aix-C-IBMClang-17.1.1.2.input
@@ -10,7 +10,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=17.1.1.2 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp' Run Build Command(s): /tmp/cmake-build/bin/cmake -E env VERBOSE=1 /opt/freeware/bin/gmake -f Makefile cmTC_b9ba2/fast
diff --git a/Tests/RunCMake/ParseImplicitData/aix-C-XL-13.1.3.input b/Tests/RunCMake/ParseImplicitData/aix-C-XL-13.1.3.input index 14517c5..90d2911 100644 --- a/Tests/RunCMake/ParseImplicitData/aix-C-XL-13.1.3.input +++ b/Tests/RunCMake/ParseImplicitData/aix-C-XL-13.1.3.input
@@ -9,7 +9,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=13.1.3 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_424d1/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/aix-C-XLClang-16.1.0.1.input b/Tests/RunCMake/ParseImplicitData/aix-C-XLClang-16.1.0.1.input index 2f018e6..12eaabf 100644 --- a/Tests/RunCMake/ParseImplicitData/aix-C-XLClang-16.1.0.1.input +++ b/Tests/RunCMake/ParseImplicitData/aix-C-XLClang-16.1.0.1.input
@@ -9,7 +9,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=16.1.0.1 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command(s):/usr/bin/gmake cmTC_fcf21/fast
diff --git a/Tests/RunCMake/ParseImplicitData/aix-CXX-IBMClang-17.1.1.2.input b/Tests/RunCMake/ParseImplicitData/aix-CXX-IBMClang-17.1.1.2.input index ace5021..2be60f9 100644 --- a/Tests/RunCMake/ParseImplicitData/aix-CXX-IBMClang-17.1.1.2.input +++ b/Tests/RunCMake/ParseImplicitData/aix-CXX-IBMClang-17.1.1.2.input
@@ -10,7 +10,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=17.1.1.2 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp' Run Build Command(s): /tmp/cmake-build/bin/cmake -E env VERBOSE=1 /opt/freeware/bin/gmake -f Makefile cmTC_7f688/fast
diff --git a/Tests/RunCMake/ParseImplicitData/aix-CXX-XL-13.1.3.input b/Tests/RunCMake/ParseImplicitData/aix-CXX-XL-13.1.3.input index 5aec849..539eeef 100644 --- a/Tests/RunCMake/ParseImplicitData/aix-CXX-XL-13.1.3.input +++ b/Tests/RunCMake/ParseImplicitData/aix-CXX-XL-13.1.3.input
@@ -9,7 +9,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=13.1.3 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_e8f3a/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/aix-CXX-XLClang-16.1.0.1.input b/Tests/RunCMake/ParseImplicitData/aix-CXX-XLClang-16.1.0.1.input index da16db3..85cd0d2 100644 --- a/Tests/RunCMake/ParseImplicitData/aix-CXX-XLClang-16.1.0.1.input +++ b/Tests/RunCMake/ParseImplicitData/aix-CXX-XLClang-16.1.0.1.input
@@ -9,7 +9,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=16.1.0.1 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command(s):/usr/bin/gmake cmTC_b8490/fast
diff --git a/Tests/RunCMake/ParseImplicitData/craype-C-Cray-8.7.input b/Tests/RunCMake/ParseImplicitData/craype-C-Cray-8.7.input index b3218a2..a320d83 100644 --- a/Tests/RunCMake/ParseImplicitData/craype-C-Cray-8.7.input +++ b/Tests/RunCMake/ParseImplicitData/craype-C-Cray-8.7.input
@@ -9,7 +9,8 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=8.7 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= +CMAKE_C_IMPLICIT_LINK_LIBRARY_stdc++=/usr/lib64/libstdc++.a Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_cb7b8/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/craype-C-Cray-9.0-hlist-ad.input b/Tests/RunCMake/ParseImplicitData/craype-C-Cray-9.0-hlist-ad.input index e82bd97..9e26204 100644 --- a/Tests/RunCMake/ParseImplicitData/craype-C-Cray-9.0-hlist-ad.input +++ b/Tests/RunCMake/ParseImplicitData/craype-C-Cray-9.0-hlist-ad.input
@@ -9,7 +9,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=9.0 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: /home/generic.user/Code/tmp/build/CMakeFiles/CMakeTmp Run Build Command(s):/usr/bin/gmake cmTC_9ceca/fast && /usr/bin/gmake -f CMakeFiles/cmTC_9ceca.dir/build.make CMakeFiles/cmTC_9ceca.dir/build
diff --git a/Tests/RunCMake/ParseImplicitData/craype-C-GNU-7.3.0.input b/Tests/RunCMake/ParseImplicitData/craype-C-GNU-7.3.0.input index 2dc60af..2fe2b6a 100644 --- a/Tests/RunCMake/ParseImplicitData/craype-C-GNU-7.3.0.input +++ b/Tests/RunCMake/ParseImplicitData/craype-C-GNU-7.3.0.input
@@ -9,7 +9,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=7.3.0 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_61245/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/craype-C-Intel-18.0.2.20180210.input b/Tests/RunCMake/ParseImplicitData/craype-C-Intel-18.0.2.20180210.input index 8c68e5b..580cad9 100644 --- a/Tests/RunCMake/ParseImplicitData/craype-C-Intel-18.0.2.20180210.input +++ b/Tests/RunCMake/ParseImplicitData/craype-C-Intel-18.0.2.20180210.input
@@ -9,7 +9,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=18.0.2.20180210 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_96fde/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/craype-CXX-Cray-8.7.input b/Tests/RunCMake/ParseImplicitData/craype-CXX-Cray-8.7.input index 73c9c8a..4bd4fa1 100644 --- a/Tests/RunCMake/ParseImplicitData/craype-CXX-Cray-8.7.input +++ b/Tests/RunCMake/ParseImplicitData/craype-CXX-Cray-8.7.input
@@ -9,7 +9,8 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=8.7 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= +CMAKE_CXX_IMPLICIT_LINK_LIBRARY_stdc++=/usr/lib64/libstdc++.a Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_f3b1f/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/craype-CXX-Cray-9.0-hlist-ad.input b/Tests/RunCMake/ParseImplicitData/craype-CXX-Cray-9.0-hlist-ad.input index 06a4ac9..f632b43 100644 --- a/Tests/RunCMake/ParseImplicitData/craype-CXX-Cray-9.0-hlist-ad.input +++ b/Tests/RunCMake/ParseImplicitData/craype-CXX-Cray-9.0-hlist-ad.input
@@ -9,7 +9,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=9.0 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: /home/generic.user/Code/tmp/build/CMakeFiles/CMakeTmp Run Build Command(s):/usr/bin/gmake cmTC_aa1be/fast && /usr/bin/gmake -f CMakeFiles/cmTC_aa1be.dir/build.make CMakeFiles/cmTC_aa1be.dir/build
diff --git a/Tests/RunCMake/ParseImplicitData/craype-CXX-GNU-7.3.0.input b/Tests/RunCMake/ParseImplicitData/craype-CXX-GNU-7.3.0.input index 50f2859..6f492c6 100644 --- a/Tests/RunCMake/ParseImplicitData/craype-CXX-GNU-7.3.0.input +++ b/Tests/RunCMake/ParseImplicitData/craype-CXX-GNU-7.3.0.input
@@ -9,7 +9,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=7.3.0 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_66e70/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/craype-CXX-Intel-18.0.2.20180210.input b/Tests/RunCMake/ParseImplicitData/craype-CXX-Intel-18.0.2.20180210.input index e25f7cf..aab024a 100644 --- a/Tests/RunCMake/ParseImplicitData/craype-CXX-Intel-18.0.2.20180210.input +++ b/Tests/RunCMake/ParseImplicitData/craype-CXX-Intel-18.0.2.20180210.input
@@ -9,7 +9,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=18.0.2.20180210 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_7f9a2/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/craype-Fortran-Cray-8.7.input b/Tests/RunCMake/ParseImplicitData/craype-Fortran-Cray-8.7.input index 4c4e2f4..bd60487 100644 --- a/Tests/RunCMake/ParseImplicitData/craype-Fortran-Cray-8.7.input +++ b/Tests/RunCMake/ParseImplicitData/craype-Fortran-Cray-8.7.input
@@ -9,7 +9,7 @@ CMAKE_Fortran_COMPILER_RANLIB= CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=8.7 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_9c3ab/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/craype-Fortran-Cray-9.0-hlist-ad.input b/Tests/RunCMake/ParseImplicitData/craype-Fortran-Cray-9.0-hlist-ad.input index 0ba430a..629365f 100644 --- a/Tests/RunCMake/ParseImplicitData/craype-Fortran-Cray-9.0-hlist-ad.input +++ b/Tests/RunCMake/ParseImplicitData/craype-Fortran-Cray-9.0-hlist-ad.input
@@ -9,7 +9,7 @@ CMAKE_Fortran_COMPILER_RANLIB= CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=9.0 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= Change Dir: /home/generic.user/Code/tmp/build/CMakeFiles/CMakeTmp Run Build Command(s):/usr/bin/gmake cmTC_61c1d/fast && /usr/bin/gmake -f CMakeFiles/cmTC_61c1d.dir/build.make CMakeFiles/cmTC_61c1d.dir/build
diff --git a/Tests/RunCMake/ParseImplicitData/craype-Fortran-GNU-7.3.0.input b/Tests/RunCMake/ParseImplicitData/craype-Fortran-GNU-7.3.0.input index bee298c..a4ecfc8 100644 --- a/Tests/RunCMake/ParseImplicitData/craype-Fortran-GNU-7.3.0.input +++ b/Tests/RunCMake/ParseImplicitData/craype-Fortran-GNU-7.3.0.input
@@ -9,7 +9,7 @@ CMAKE_Fortran_COMPILER_RANLIB=/usr/bin/gcc-ranlib CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=7.3.0 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_390ef/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/craype-Fortran-Intel-18.0.2.20180210.input b/Tests/RunCMake/ParseImplicitData/craype-Fortran-Intel-18.0.2.20180210.input index 4cdff74..c043868 100644 --- a/Tests/RunCMake/ParseImplicitData/craype-Fortran-Intel-18.0.2.20180210.input +++ b/Tests/RunCMake/ParseImplicitData/craype-Fortran-Intel-18.0.2.20180210.input
@@ -9,7 +9,7 @@ CMAKE_Fortran_COMPILER_RANLIB= CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=18.0.2.20180210 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_7523d/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/darwin-C-AppleClang-8.0.0.8000042.input b/Tests/RunCMake/ParseImplicitData/darwin-C-AppleClang-8.0.0.8000042.input index 4bc26bc..509b47b 100644 --- a/Tests/RunCMake/ParseImplicitData/darwin-C-AppleClang-8.0.0.8000042.input +++ b/Tests/RunCMake/ParseImplicitData/darwin-C-AppleClang-8.0.0.8000042.input
@@ -9,7 +9,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=8.0.0.8000042 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/make" "cmTC_0c33e/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/darwin-CXX-AppleClang-8.0.0.8000042.input b/Tests/RunCMake/ParseImplicitData/darwin-CXX-AppleClang-8.0.0.8000042.input index 907a92e..707c3d1 100644 --- a/Tests/RunCMake/ParseImplicitData/darwin-CXX-AppleClang-8.0.0.8000042.input +++ b/Tests/RunCMake/ParseImplicitData/darwin-CXX-AppleClang-8.0.0.8000042.input
@@ -9,7 +9,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=8.0.0.8000042 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/make" "cmTC_b7e96/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/darwin_nostdinc-C-AppleClang-8.0.0.8000042.input b/Tests/RunCMake/ParseImplicitData/darwin_nostdinc-C-AppleClang-8.0.0.8000042.input index effaedf..464ebaf 100644 --- a/Tests/RunCMake/ParseImplicitData/darwin_nostdinc-C-AppleClang-8.0.0.8000042.input +++ b/Tests/RunCMake/ParseImplicitData/darwin_nostdinc-C-AppleClang-8.0.0.8000042.input
@@ -9,7 +9,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=8.0.0.8000042 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/make" "cmTC_ba7aa/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/darwin_nostdinc-CXX-AppleClang-8.0.0.8000042.input b/Tests/RunCMake/ParseImplicitData/darwin_nostdinc-CXX-AppleClang-8.0.0.8000042.input index 5504e94..9ba17c6 100644 --- a/Tests/RunCMake/ParseImplicitData/darwin_nostdinc-CXX-AppleClang-8.0.0.8000042.input +++ b/Tests/RunCMake/ParseImplicitData/darwin_nostdinc-CXX-AppleClang-8.0.0.8000042.input
@@ -9,7 +9,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=8.0.0.8000042 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/make" "cmTC_638bd/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/freebsd-C-Clang-3.3.0.input b/Tests/RunCMake/ParseImplicitData/freebsd-C-Clang-3.3.0.input index 81626f9..8cc0e19 100644 --- a/Tests/RunCMake/ParseImplicitData/freebsd-C-Clang-3.3.0.input +++ b/Tests/RunCMake/ParseImplicitData/freebsd-C-Clang-3.3.0.input
@@ -9,7 +9,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=3.3.0 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/local/bin/gmake" "cmTC_0c44b/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/freebsd-CXX-Clang-3.3.0.input b/Tests/RunCMake/ParseImplicitData/freebsd-CXX-Clang-3.3.0.input index 1f7758b..2f9adbd 100644 --- a/Tests/RunCMake/ParseImplicitData/freebsd-CXX-Clang-3.3.0.input +++ b/Tests/RunCMake/ParseImplicitData/freebsd-CXX-Clang-3.3.0.input
@@ -9,7 +9,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=3.3.0 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/local/bin/gmake" "cmTC_c3442/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/freebsd-Fortran-GNU-4.6.4.input b/Tests/RunCMake/ParseImplicitData/freebsd-Fortran-GNU-4.6.4.input index 8a5d741..5b5b1d3 100644 --- a/Tests/RunCMake/ParseImplicitData/freebsd-Fortran-GNU-4.6.4.input +++ b/Tests/RunCMake/ParseImplicitData/freebsd-Fortran-GNU-4.6.4.input
@@ -9,7 +9,7 @@ CMAKE_Fortran_COMPILER_RANLIB= CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=4.6.4 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/local/bin/gmake" "cmTC_9ec75/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/hand-C-empty.input b/Tests/RunCMake/ParseImplicitData/hand-C-empty.input index b27eb02..b265d17 100644 --- a/Tests/RunCMake/ParseImplicitData/hand-C-empty.input +++ b/Tests/RunCMake/ParseImplicitData/hand-C-empty.input
@@ -9,6 +9,6 @@ CMAKE_C_COMPILER_RANLIB=/usr/bin/gcc-ranlib-7 CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=7.3.0 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= This is a test and there is nothing here to parse.
diff --git a/Tests/RunCMake/ParseImplicitData/hand-C-relative.input b/Tests/RunCMake/ParseImplicitData/hand-C-relative.input index dd0c10b..dbaa5a7 100644 --- a/Tests/RunCMake/ParseImplicitData/hand-C-relative.input +++ b/Tests/RunCMake/ParseImplicitData/hand-C-relative.input
@@ -9,7 +9,7 @@ CMAKE_C_COMPILER_RANLIB=/usr/bin/gcc-ranlib-7 CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=7.3.0 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= This is a hand-written test case.
diff --git a/Tests/RunCMake/ParseImplicitData/hand-CXX-empty.input b/Tests/RunCMake/ParseImplicitData/hand-CXX-empty.input index b983d6b..18c8d48 100644 --- a/Tests/RunCMake/ParseImplicitData/hand-CXX-empty.input +++ b/Tests/RunCMake/ParseImplicitData/hand-CXX-empty.input
@@ -9,6 +9,6 @@ CMAKE_CXX_COMPILER_RANLIB=/usr/bin/gcc-ranlib-7 CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=7.3.0 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= This is a test and there is nothing here to parse.
diff --git a/Tests/RunCMake/ParseImplicitData/hand-CXX-relative.input b/Tests/RunCMake/ParseImplicitData/hand-CXX-relative.input index 568933a..0a12ae9 100644 --- a/Tests/RunCMake/ParseImplicitData/hand-CXX-relative.input +++ b/Tests/RunCMake/ParseImplicitData/hand-CXX-relative.input
@@ -9,7 +9,7 @@ CMAKE_CXX_COMPILER_RANLIB=/usr/bin/gcc-ranlib-7 CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=7.3.0 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= This is a hand-written test case.
diff --git a/Tests/RunCMake/ParseImplicitData/linux-C-GNU-10.2.1-static-libgcc.input b/Tests/RunCMake/ParseImplicitData/linux-C-GNU-10.2.1-static-libgcc.input index 0aaf05e..63576e7 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-C-GNU-10.2.1-static-libgcc.input +++ b/Tests/RunCMake/ParseImplicitData/linux-C-GNU-10.2.1-static-libgcc.input
@@ -10,7 +10,7 @@ CMAKE_C_COMPILER_RANLIB=/usr/bin/gcc-ranlib-10 CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=10.2.1 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_2fff5/fast && /usr/bin/gmake -f CMakeFiles/cmTC_2fff5.dir/build.make CMakeFiles/cmTC_2fff5.dir/build
diff --git a/Tests/RunCMake/ParseImplicitData/linux-C-GNU-12.2.0.input b/Tests/RunCMake/ParseImplicitData/linux-C-GNU-12.2.0.input index 7ecf081..2b75825 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-C-GNU-12.2.0.input +++ b/Tests/RunCMake/ParseImplicitData/linux-C-GNU-12.2.0.input
@@ -10,7 +10,7 @@ CMAKE_C_COMPILER_RANLIB=/usr/bin/gcc-ranlib-12 CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=12.2.0 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp' Run Build Command(s): /tmp/cmake/.gitlab/ninja -v cmTC_9e804
diff --git a/Tests/RunCMake/ParseImplicitData/linux-C-GNU-7.3.0.input b/Tests/RunCMake/ParseImplicitData/linux-C-GNU-7.3.0.input index ee296a7..188f4e6 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-C-GNU-7.3.0.input +++ b/Tests/RunCMake/ParseImplicitData/linux-C-GNU-7.3.0.input
@@ -9,7 +9,7 @@ CMAKE_C_COMPILER_RANLIB=/usr/bin/gcc-ranlib-7 CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=7.3.0 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/make" "cmTC_1f304/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/linux-C-Intel-18.0.0.20170811.input b/Tests/RunCMake/ParseImplicitData/linux-C-Intel-18.0.0.20170811.input index 1e6544b..16c9857 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-C-Intel-18.0.0.20170811.input +++ b/Tests/RunCMake/ParseImplicitData/linux-C-Intel-18.0.0.20170811.input
@@ -9,7 +9,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=18.0.0.20170811 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_a5f0a/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/linux-C-Intel-2021.10.0.20230609.input b/Tests/RunCMake/ParseImplicitData/linux-C-Intel-2021.10.0.20230609.input index 60f2017..0251caf 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-C-Intel-2021.10.0.20230609.input +++ b/Tests/RunCMake/ParseImplicitData/linux-C-Intel-2021.10.0.20230609.input
@@ -10,7 +10,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=2021.10.0.20230609 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp' Run Build Command(s): /tmp/cmake/.gitlab/ninja -v cmTC_c7575
diff --git a/Tests/RunCMake/ParseImplicitData/linux-C-IntelLLVM-2023.2.0.input b/Tests/RunCMake/ParseImplicitData/linux-C-IntelLLVM-2023.2.0.input index dd3b227..cdb1b3f 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-C-IntelLLVM-2023.2.0.input +++ b/Tests/RunCMake/ParseImplicitData/linux-C-IntelLLVM-2023.2.0.input
@@ -10,7 +10,7 @@ CMAKE_C_COMPILER_RANLIB=/opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/llvm-ranlib CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=2023.2.0 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp' Run Build Command(s): /tmp/cmake/.gitlab/ninja -v cmTC_0d8c1
diff --git a/Tests/RunCMake/ParseImplicitData/linux-C-NVHPC-21.1.0.input b/Tests/RunCMake/ParseImplicitData/linux-C-NVHPC-21.1.0.input index 93e36ca..852b088 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-C-NVHPC-21.1.0.input +++ b/Tests/RunCMake/ParseImplicitData/linux-C-NVHPC-21.1.0.input
@@ -10,7 +10,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=21.1.0 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: /root/parse_implicit_data/CMakeFiles/CMakeTmp Run Build Command(s):/usr/bin/make -f Makefile cmTC_b8daa/fast && /usr/bin/make -f CMakeFiles/cmTC_b8daa.dir/build.make CMakeFiles/cmTC_b8daa.dir/build
diff --git a/Tests/RunCMake/ParseImplicitData/linux-C-PGI-18.10.1.input b/Tests/RunCMake/ParseImplicitData/linux-C-PGI-18.10.1.input index cfc3e7b..026e1af 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-C-PGI-18.10.1.input +++ b/Tests/RunCMake/ParseImplicitData/linux-C-PGI-18.10.1.input
@@ -9,7 +9,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=18.10.1 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/make" "cmTC_81a12/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/linux-C-XL-12.1.0.input b/Tests/RunCMake/ParseImplicitData/linux-C-XL-12.1.0.input index a6d9e5a..14dede8 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-C-XL-12.1.0.input +++ b/Tests/RunCMake/ParseImplicitData/linux-C-XL-12.1.0.input
@@ -9,7 +9,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=12.1.0 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_79cdf/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/linux-C-XL-16.1.0.0.input b/Tests/RunCMake/ParseImplicitData/linux-C-XL-16.1.0.0.input index 97fa28b..7b6babc 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-C-XL-16.1.0.0.input +++ b/Tests/RunCMake/ParseImplicitData/linux-C-XL-16.1.0.0.input
@@ -9,7 +9,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=16.1.0.0 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_56ad1/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/linux-CUDA-NVIDIA-10.1.168-CLANG.input b/Tests/RunCMake/ParseImplicitData/linux-CUDA-NVIDIA-10.1.168-CLANG.input index 954697d..a3c61fe 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-CUDA-NVIDIA-10.1.168-CLANG.input +++ b/Tests/RunCMake/ParseImplicitData/linux-CUDA-NVIDIA-10.1.168-CLANG.input
@@ -10,7 +10,7 @@ CMAKE_CUDA_COMPILER_RANLIB= CMAKE_CUDA_COMPILER_TARGET= CMAKE_CUDA_COMPILER_VERSION=10.1.168 -CMAKE_CUDA_COMPILER_VERSION_INTERAL= +CMAKE_CUDA_COMPILER_VERSION_INTERNAL= Change Dir: /home/robert/Work/cmake/cuda_clang_compiler_info/CMakeFiles/CMakeTmp Run Build Command(s):/usr/bin/ninja cmTC_e3386 && [1/2] Building CUDA object CMakeFiles/cmTC_e3386.dir/CMakeCUDACompilerABI.cu.o
diff --git a/Tests/RunCMake/ParseImplicitData/linux-CUDA-NVIDIA-10.1.168-XLClang-v.input b/Tests/RunCMake/ParseImplicitData/linux-CUDA-NVIDIA-10.1.168-XLClang-v.input index 7b20288..30e1ec2 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-CUDA-NVIDIA-10.1.168-XLClang-v.input +++ b/Tests/RunCMake/ParseImplicitData/linux-CUDA-NVIDIA-10.1.168-XLClang-v.input
@@ -10,7 +10,7 @@ CMAKE_CUDA_COMPILER_RANLIB= CMAKE_CUDA_COMPILER_TARGET= CMAKE_CUDA_COMPILER_VERSION=10.1.168 -CMAKE_CUDA_COMPILER_VERSION_INTERAL= +CMAKE_CUDA_COMPILER_VERSION_INTERNAL= Change Dir: /ccs/home/rmaynard/cmake/extract_xlc_info/CMakeFiles/CMakeTmp Run Build Command(s):/usr/bin/gmake cmTC_e9f3e/fast && /usr/bin/gmake -f CMakeFiles/cmTC_e9f3e.dir/build.make CMakeFiles/cmTC_e9f3e.dir/build
diff --git a/Tests/RunCMake/ParseImplicitData/linux-CUDA-NVIDIA-9.2.148-GCC.input b/Tests/RunCMake/ParseImplicitData/linux-CUDA-NVIDIA-9.2.148-GCC.input index 98aee98..267abe4 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-CUDA-NVIDIA-9.2.148-GCC.input +++ b/Tests/RunCMake/ParseImplicitData/linux-CUDA-NVIDIA-9.2.148-GCC.input
@@ -10,7 +10,7 @@ CMAKE_CUDA_COMPILER_RANLIB= CMAKE_CUDA_COMPILER_TARGET= CMAKE_CUDA_COMPILER_VERSION=9.2.148 -CMAKE_CUDA_COMPILER_VERSION_INTERAL= +CMAKE_CUDA_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/make" "cmTC_5996d/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/linux-CXX-GNU-10.2.1-static-libstdc++.input b/Tests/RunCMake/ParseImplicitData/linux-CXX-GNU-10.2.1-static-libstdc++.input index 387f149..30fd529 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-CXX-GNU-10.2.1-static-libstdc++.input +++ b/Tests/RunCMake/ParseImplicitData/linux-CXX-GNU-10.2.1-static-libstdc++.input
@@ -10,7 +10,7 @@ CMAKE_CXX_COMPILER_RANLIB=/usr/bin/gcc-ranlib-10 CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=10.2.1 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= CMAKE_CXX_IMPLICIT_LINK_LIBRARY_stdc++=/usr/lib/gcc/x86_64-linux-gnu/10/libstdc++.a Change Dir: /tmp/ii/CMakeFiles/CMakeTmp
diff --git a/Tests/RunCMake/ParseImplicitData/linux-CXX-GNU-12.2.0.input b/Tests/RunCMake/ParseImplicitData/linux-CXX-GNU-12.2.0.input index 134a8e9..885a34a 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-CXX-GNU-12.2.0.input +++ b/Tests/RunCMake/ParseImplicitData/linux-CXX-GNU-12.2.0.input
@@ -10,7 +10,7 @@ CMAKE_CXX_COMPILER_RANLIB=/usr/bin/gcc-ranlib-12 CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=12.2.0 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp' Run Build Command(s): /tmp/cmake/.gitlab/ninja -v cmTC_705d2
diff --git a/Tests/RunCMake/ParseImplicitData/linux-CXX-GNU-7.3.0.input b/Tests/RunCMake/ParseImplicitData/linux-CXX-GNU-7.3.0.input index 633a0ef..6b9f037 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-CXX-GNU-7.3.0.input +++ b/Tests/RunCMake/ParseImplicitData/linux-CXX-GNU-7.3.0.input
@@ -9,7 +9,7 @@ CMAKE_CXX_COMPILER_RANLIB=/usr/bin/gcc-ranlib-7 CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=7.3.0 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/make" "cmTC_63146/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/linux-CXX-Intel-18.0.0.20170811.input b/Tests/RunCMake/ParseImplicitData/linux-CXX-Intel-18.0.0.20170811.input index 22d8715..b663508 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-CXX-Intel-18.0.0.20170811.input +++ b/Tests/RunCMake/ParseImplicitData/linux-CXX-Intel-18.0.0.20170811.input
@@ -9,7 +9,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=18.0.0.20170811 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_d768a/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/linux-CXX-Intel-2021.10.0.20230609.input b/Tests/RunCMake/ParseImplicitData/linux-CXX-Intel-2021.10.0.20230609.input index 8a7ffda..6ca5bbd 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-CXX-Intel-2021.10.0.20230609.input +++ b/Tests/RunCMake/ParseImplicitData/linux-CXX-Intel-2021.10.0.20230609.input
@@ -10,7 +10,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=2021.10.0.20230609 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp' Run Build Command(s): /tmp/cmake/.gitlab/ninja -v cmTC_b5439
diff --git a/Tests/RunCMake/ParseImplicitData/linux-CXX-IntelLLVM-2023.2.0.input b/Tests/RunCMake/ParseImplicitData/linux-CXX-IntelLLVM-2023.2.0.input index 8713d6d..a7eece0 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-CXX-IntelLLVM-2023.2.0.input +++ b/Tests/RunCMake/ParseImplicitData/linux-CXX-IntelLLVM-2023.2.0.input
@@ -10,7 +10,7 @@ CMAKE_CXX_COMPILER_RANLIB=/opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/llvm-ranlib CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=2023.2.0 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp' Run Build Command(s): /tmp/cmake/.gitlab/ninja -v cmTC_05be3
diff --git a/Tests/RunCMake/ParseImplicitData/linux-CXX-NVHPC-21.1.0.input b/Tests/RunCMake/ParseImplicitData/linux-CXX-NVHPC-21.1.0.input index 64781b9..04301db 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-CXX-NVHPC-21.1.0.input +++ b/Tests/RunCMake/ParseImplicitData/linux-CXX-NVHPC-21.1.0.input
@@ -10,7 +10,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=21.1.0 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: /root/parse_implicit_data/CMakeFiles/CMakeTmp Run Build Command(s):/usr/bin/make -f Makefile cmTC_79118/fast && /usr/bin/make -f CMakeFiles/cmTC_79118.dir/build.make CMakeFiles/cmTC_79118.dir/build
diff --git a/Tests/RunCMake/ParseImplicitData/linux-CXX-PGI-18.10.1.input b/Tests/RunCMake/ParseImplicitData/linux-CXX-PGI-18.10.1.input index f95627e..6430c86 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-CXX-PGI-18.10.1.input +++ b/Tests/RunCMake/ParseImplicitData/linux-CXX-PGI-18.10.1.input
@@ -9,7 +9,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=18.10.1 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/make" "cmTC_9932f/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/linux-CXX-XL-12.1.0.input b/Tests/RunCMake/ParseImplicitData/linux-CXX-XL-12.1.0.input index 494b45c..fdd5278 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-CXX-XL-12.1.0.input +++ b/Tests/RunCMake/ParseImplicitData/linux-CXX-XL-12.1.0.input
@@ -9,7 +9,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=12.1.0 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_a9a18/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/linux-CXX-XL-16.1.0.0.input b/Tests/RunCMake/ParseImplicitData/linux-CXX-XL-16.1.0.0.input index 37aa450..fc970d7 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-CXX-XL-16.1.0.0.input +++ b/Tests/RunCMake/ParseImplicitData/linux-CXX-XL-16.1.0.0.input
@@ -9,7 +9,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=16.1.0.0 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_f0c9c/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/linux-Fortran-GNU-10.2.1-static-libgfortran.input b/Tests/RunCMake/ParseImplicitData/linux-Fortran-GNU-10.2.1-static-libgfortran.input index 16b38d2..d33a2b7 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-Fortran-GNU-10.2.1-static-libgfortran.input +++ b/Tests/RunCMake/ParseImplicitData/linux-Fortran-GNU-10.2.1-static-libgfortran.input
@@ -10,7 +10,7 @@ CMAKE_Fortran_COMPILER_RANLIB=/usr/bin/gcc-ranlib-10 CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=10.2.1 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= CMAKE_Fortran_IMPLICIT_LINK_LIBRARY_gfortran=/usr/lib/gcc/x86_64-linux-gnu/10/libgfortran.a Change Dir: /tmp/ii/CMakeFiles/CMakeTmp
diff --git a/Tests/RunCMake/ParseImplicitData/linux-Fortran-GNU-12.2.0.input b/Tests/RunCMake/ParseImplicitData/linux-Fortran-GNU-12.2.0.input index ed4ddcb..321e671 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-Fortran-GNU-12.2.0.input +++ b/Tests/RunCMake/ParseImplicitData/linux-Fortran-GNU-12.2.0.input
@@ -10,7 +10,7 @@ CMAKE_Fortran_COMPILER_RANLIB=/usr/bin/gcc-ranlib-12 CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=12.2.0 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp' Run Build Command(s): /tmp/cmake/.gitlab/ninja -v cmTC_62ee5
diff --git a/Tests/RunCMake/ParseImplicitData/linux-Fortran-GNU-13.3.0-static-libquadmath.input b/Tests/RunCMake/ParseImplicitData/linux-Fortran-GNU-13.3.0-static-libquadmath.input index b1ab2f0..c4854af 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-Fortran-GNU-13.3.0-static-libquadmath.input +++ b/Tests/RunCMake/ParseImplicitData/linux-Fortran-GNU-13.3.0-static-libquadmath.input
@@ -10,7 +10,7 @@ CMAKE_Fortran_COMPILER_RANLIB=/usr/bin/gcc-ranlib-13 CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=13.3.0 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= CMAKE_Fortran_IMPLICIT_LINK_LIBRARY_quadmath=/usr/lib/gcc/x86_64-linux-gnu/13/libquadmath.a Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp'
diff --git a/Tests/RunCMake/ParseImplicitData/linux-Fortran-GNU-7.3.0.input b/Tests/RunCMake/ParseImplicitData/linux-Fortran-GNU-7.3.0.input index 4582433..41fb08f 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-Fortran-GNU-7.3.0.input +++ b/Tests/RunCMake/ParseImplicitData/linux-Fortran-GNU-7.3.0.input
@@ -9,7 +9,7 @@ CMAKE_Fortran_COMPILER_RANLIB=/usr/bin/gcc-ranlib-7 CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=7.3.0 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/make" "cmTC_1cf45/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/linux-Fortran-Intel-2021.10.0.20230609.input b/Tests/RunCMake/ParseImplicitData/linux-Fortran-Intel-2021.10.0.20230609.input index 7379c84..c2e1f59 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-Fortran-Intel-2021.10.0.20230609.input +++ b/Tests/RunCMake/ParseImplicitData/linux-Fortran-Intel-2021.10.0.20230609.input
@@ -10,7 +10,7 @@ CMAKE_Fortran_COMPILER_RANLIB= CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=2021.10.0.20230609 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp' Run Build Command(s): /tmp/cmake/.gitlab/ninja -v cmTC_9370c
diff --git a/Tests/RunCMake/ParseImplicitData/linux-Fortran-IntelLLVM-2023.2.0.input b/Tests/RunCMake/ParseImplicitData/linux-Fortran-IntelLLVM-2023.2.0.input index 53c7e53..e39c027 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-Fortran-IntelLLVM-2023.2.0.input +++ b/Tests/RunCMake/ParseImplicitData/linux-Fortran-IntelLLVM-2023.2.0.input
@@ -10,7 +10,7 @@ CMAKE_Fortran_COMPILER_RANLIB=/opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/llvm-ranlib CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=2023.2.0 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp' Run Build Command(s): /tmp/cmake/.gitlab/ninja -v cmTC_59e9e
diff --git a/Tests/RunCMake/ParseImplicitData/linux-Fortran-LFortran-0.35.0-clang.input b/Tests/RunCMake/ParseImplicitData/linux-Fortran-LFortran-0.35.0-clang.input index f314608..b0776fe 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-Fortran-LFortran-0.35.0-clang.input +++ b/Tests/RunCMake/ParseImplicitData/linux-Fortran-LFortran-0.35.0-clang.input
@@ -10,7 +10,7 @@ CMAKE_Fortran_COMPILER_RANLIB= CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=0.35.0 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp' Run Build Command(s): /tmp/CMake/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_48bf9/fast
diff --git a/Tests/RunCMake/ParseImplicitData/linux-Fortran-LFortran-0.35.0-gcc.input b/Tests/RunCMake/ParseImplicitData/linux-Fortran-LFortran-0.35.0-gcc.input index 7879a3a..003a091 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-Fortran-LFortran-0.35.0-gcc.input +++ b/Tests/RunCMake/ParseImplicitData/linux-Fortran-LFortran-0.35.0-gcc.input
@@ -10,7 +10,7 @@ CMAKE_Fortran_COMPILER_RANLIB= CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=0.35.0 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp' Run Build Command(s): /tmp/CMake/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_48bf9/fast
diff --git a/Tests/RunCMake/ParseImplicitData/linux-Fortran-LFortran-0.41.0-clang.input b/Tests/RunCMake/ParseImplicitData/linux-Fortran-LFortran-0.41.0-clang.input index 7f84f44..11c1ce8 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-Fortran-LFortran-0.41.0-clang.input +++ b/Tests/RunCMake/ParseImplicitData/linux-Fortran-LFortran-0.41.0-clang.input
@@ -10,7 +10,7 @@ CMAKE_Fortran_COMPILER_RANLIB= CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=0.41.0 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp' Run Build Command(s): /tmp/CMake/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_e3038/fast
diff --git a/Tests/RunCMake/ParseImplicitData/linux-Fortran-LFortran-0.41.0-gcc.input b/Tests/RunCMake/ParseImplicitData/linux-Fortran-LFortran-0.41.0-gcc.input index 4a79262..d3caf942 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-Fortran-LFortran-0.41.0-gcc.input +++ b/Tests/RunCMake/ParseImplicitData/linux-Fortran-LFortran-0.41.0-gcc.input
@@ -10,7 +10,7 @@ CMAKE_Fortran_COMPILER_RANLIB= CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=0.41.0 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp' Run Build Command(s): /tmp/CMake/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_fdc77/fast
diff --git a/Tests/RunCMake/ParseImplicitData/linux-Fortran-LLVMFlang-15.0.0.input b/Tests/RunCMake/ParseImplicitData/linux-Fortran-LLVMFlang-15.0.0.input index 5a53c88..cf27d8d 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-Fortran-LLVMFlang-15.0.0.input +++ b/Tests/RunCMake/ParseImplicitData/linux-Fortran-LLVMFlang-15.0.0.input
@@ -10,7 +10,7 @@ CMAKE_Fortran_COMPILER_RANLIB= CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=15.0.0 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_2e9b9/fast && /usr/bin/gmake -f CMakeFiles/cmTC_2e9b9.dir/build.make CMakeFiles/cmTC_2e9b9.dir/build
diff --git a/Tests/RunCMake/ParseImplicitData/linux-Fortran-PGI-18.10.1.input b/Tests/RunCMake/ParseImplicitData/linux-Fortran-PGI-18.10.1.input index fe49bcd..ecf93f9 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-Fortran-PGI-18.10.1.input +++ b/Tests/RunCMake/ParseImplicitData/linux-Fortran-PGI-18.10.1.input
@@ -9,7 +9,7 @@ CMAKE_Fortran_COMPILER_RANLIB= CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=18.10.1 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/make" "cmTC_1e8d2/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/linux-Fortran-XL-14.1.0.input b/Tests/RunCMake/ParseImplicitData/linux-Fortran-XL-14.1.0.input index d80cede..78a76d0 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-Fortran-XL-14.1.0.input +++ b/Tests/RunCMake/ParseImplicitData/linux-Fortran-XL-14.1.0.input
@@ -9,7 +9,7 @@ CMAKE_Fortran_COMPILER_RANLIB= CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=14.1.0 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_d05a9/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/linux-custom_clang-C-Clang-13.0.0.input b/Tests/RunCMake/ParseImplicitData/linux-custom_clang-C-Clang-13.0.0.input index a80592c..03db842 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-custom_clang-C-Clang-13.0.0.input +++ b/Tests/RunCMake/ParseImplicitData/linux-custom_clang-C-Clang-13.0.0.input
@@ -10,7 +10,7 @@ CMAKE_C_COMPILER_RANLIB=/opt/llvm-13/bin/llvm-ranlib CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=13.0.0 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/cmake/Tests/RunCMake/ParseImplicitData/build/CMakeFiles/CMakeTmp Run Build Command(s):/usr/bin/make -f Makefile cmTC_91833/fast && /usr/bin/make -f CMakeFiles/cmTC_91833.dir/build.make CMakeFiles/cmTC_91833.dir/build
diff --git a/Tests/RunCMake/ParseImplicitData/linux-custom_clang-CXX-Clang-13.0.0.input b/Tests/RunCMake/ParseImplicitData/linux-custom_clang-CXX-Clang-13.0.0.input index e656390..0bd4aea 100644 --- a/Tests/RunCMake/ParseImplicitData/linux-custom_clang-CXX-Clang-13.0.0.input +++ b/Tests/RunCMake/ParseImplicitData/linux-custom_clang-CXX-Clang-13.0.0.input
@@ -10,7 +10,7 @@ CMAKE_CXX_COMPILER_RANLIB=/opt/llvm-13/bin/llvm-ranlib CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=13.0.0 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/cmake/Tests/RunCMake/ParseImplicitData/build/CMakeFiles/CMakeTmp Run Build Command(s):/usr/bin/make -f Makefile cmTC_5372b/fast && /usr/bin/make -f CMakeFiles/cmTC_5372b.dir/build.make CMakeFiles/cmTC_5372b.dir/build
diff --git a/Tests/RunCMake/ParseImplicitData/linux_nostdinc-C-PGI-18.10.1.input b/Tests/RunCMake/ParseImplicitData/linux_nostdinc-C-PGI-18.10.1.input index 5e2e49a..415cc74 100644 --- a/Tests/RunCMake/ParseImplicitData/linux_nostdinc-C-PGI-18.10.1.input +++ b/Tests/RunCMake/ParseImplicitData/linux_nostdinc-C-PGI-18.10.1.input
@@ -9,7 +9,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=18.10.1 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/make" "cmTC_a7f0d/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/linux_nostdinc-C-XL-12.1.0.input b/Tests/RunCMake/ParseImplicitData/linux_nostdinc-C-XL-12.1.0.input index 8b1e286..42bea99 100644 --- a/Tests/RunCMake/ParseImplicitData/linux_nostdinc-C-XL-12.1.0.input +++ b/Tests/RunCMake/ParseImplicitData/linux_nostdinc-C-XL-12.1.0.input
@@ -9,7 +9,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=12.1.0 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_b8c4a/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/linux_nostdinc-CXX-PGI-18.10.1.input b/Tests/RunCMake/ParseImplicitData/linux_nostdinc-CXX-PGI-18.10.1.input index dd2b55d..bad422b 100644 --- a/Tests/RunCMake/ParseImplicitData/linux_nostdinc-CXX-PGI-18.10.1.input +++ b/Tests/RunCMake/ParseImplicitData/linux_nostdinc-CXX-PGI-18.10.1.input
@@ -9,7 +9,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=18.10.1 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/make" "cmTC_90855/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/linux_nostdinc-CXX-XL-12.1.0.input b/Tests/RunCMake/ParseImplicitData/linux_nostdinc-CXX-XL-12.1.0.input index f6b5d91..bc72b2c 100644 --- a/Tests/RunCMake/ParseImplicitData/linux_nostdinc-CXX-XL-12.1.0.input +++ b/Tests/RunCMake/ParseImplicitData/linux_nostdinc-CXX-XL-12.1.0.input
@@ -9,7 +9,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=12.1.0 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_98791/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/linux_nostdinc-Fortran-PGI-18.10.1.input b/Tests/RunCMake/ParseImplicitData/linux_nostdinc-Fortran-PGI-18.10.1.input index 12727f0..04d1fd6 100644 --- a/Tests/RunCMake/ParseImplicitData/linux_nostdinc-Fortran-PGI-18.10.1.input +++ b/Tests/RunCMake/ParseImplicitData/linux_nostdinc-Fortran-PGI-18.10.1.input
@@ -9,7 +9,7 @@ CMAKE_Fortran_COMPILER_RANLIB= CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=18.10.1 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/make" "cmTC_b7462/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/linux_nostdinc_i-C-XL-12.1.0.input b/Tests/RunCMake/ParseImplicitData/linux_nostdinc_i-C-XL-12.1.0.input index a552d70..b8da192 100644 --- a/Tests/RunCMake/ParseImplicitData/linux_nostdinc_i-C-XL-12.1.0.input +++ b/Tests/RunCMake/ParseImplicitData/linux_nostdinc_i-C-XL-12.1.0.input
@@ -9,7 +9,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=12.1.0 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_76ec2/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/linux_nostdinc_i-CXX-XL-12.1.0.input b/Tests/RunCMake/ParseImplicitData/linux_nostdinc_i-CXX-XL-12.1.0.input index 4b20f2e..3ed28e0 100644 --- a/Tests/RunCMake/ParseImplicitData/linux_nostdinc_i-CXX-XL-12.1.0.input +++ b/Tests/RunCMake/ParseImplicitData/linux_nostdinc_i-CXX-XL-12.1.0.input
@@ -9,7 +9,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=12.1.0 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_026f6/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/linux_pgf77-Fortran-PGI-18.10.1.input b/Tests/RunCMake/ParseImplicitData/linux_pgf77-Fortran-PGI-18.10.1.input index 01abe8d..9dc5435 100644 --- a/Tests/RunCMake/ParseImplicitData/linux_pgf77-Fortran-PGI-18.10.1.input +++ b/Tests/RunCMake/ParseImplicitData/linux_pgf77-Fortran-PGI-18.10.1.input
@@ -9,7 +9,7 @@ CMAKE_Fortran_COMPILER_RANLIB= CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=18.10.1 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/make" "cmTC_ea063/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/mingw.org-C-GNU-4.9.3.input b/Tests/RunCMake/ParseImplicitData/mingw.org-C-GNU-4.9.3.input index b1c4ce0..ddd5e59 100644 --- a/Tests/RunCMake/ParseImplicitData/mingw.org-C-GNU-4.9.3.input +++ b/Tests/RunCMake/ParseImplicitData/mingw.org-C-GNU-4.9.3.input
@@ -9,7 +9,7 @@ CMAKE_C_COMPILER_RANLIB=C:/DoesNotExist/MinGW/bin/gcc-ranlib.exe CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=4.9.3 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: C:/tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"C:/DoesNotExist/MinGW/bin/mingw32-make.exe" "cmTC_ab097/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/mingw.org-CXX-GNU-4.9.3.input b/Tests/RunCMake/ParseImplicitData/mingw.org-CXX-GNU-4.9.3.input index aae67bb..a0e0849 100644 --- a/Tests/RunCMake/ParseImplicitData/mingw.org-CXX-GNU-4.9.3.input +++ b/Tests/RunCMake/ParseImplicitData/mingw.org-CXX-GNU-4.9.3.input
@@ -9,7 +9,7 @@ CMAKE_CXX_COMPILER_RANLIB=C:/DoesNotExist/MinGW/bin/gcc-ranlib.exe CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=4.9.3 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: C:/tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"C:/DoesNotExist/MinGW/bin/mingw32-make.exe" "cmTC_2b790/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/netbsd-C-GNU-4.8.5.input b/Tests/RunCMake/ParseImplicitData/netbsd-C-GNU-4.8.5.input index b468484..cafecb3 100644 --- a/Tests/RunCMake/ParseImplicitData/netbsd-C-GNU-4.8.5.input +++ b/Tests/RunCMake/ParseImplicitData/netbsd-C-GNU-4.8.5.input
@@ -9,7 +9,7 @@ CMAKE_C_COMPILER_RANLIB=CMAKE_C_COMPILER_RANLIB-NOTFOUND CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=4.8.5 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/pkg/bin/gmake" "cmTC_9a517/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/netbsd-CXX-GNU-4.8.5.input b/Tests/RunCMake/ParseImplicitData/netbsd-CXX-GNU-4.8.5.input index e3c5f72..c5df99c 100644 --- a/Tests/RunCMake/ParseImplicitData/netbsd-CXX-GNU-4.8.5.input +++ b/Tests/RunCMake/ParseImplicitData/netbsd-CXX-GNU-4.8.5.input
@@ -9,7 +9,7 @@ CMAKE_CXX_COMPILER_RANLIB=CMAKE_CXX_COMPILER_RANLIB-NOTFOUND CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=4.8.5 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/pkg/bin/gmake" "cmTC_cca06/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/netbsd_nostdinc-C-GNU-4.8.5.input b/Tests/RunCMake/ParseImplicitData/netbsd_nostdinc-C-GNU-4.8.5.input index cd5845a..2eba3e9 100644 --- a/Tests/RunCMake/ParseImplicitData/netbsd_nostdinc-C-GNU-4.8.5.input +++ b/Tests/RunCMake/ParseImplicitData/netbsd_nostdinc-C-GNU-4.8.5.input
@@ -9,7 +9,7 @@ CMAKE_C_COMPILER_RANLIB=CMAKE_C_COMPILER_RANLIB-NOTFOUND CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=4.8.5 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/pkg/bin/gmake" "cmTC_b8d65/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/netbsd_nostdinc-CXX-GNU-4.8.5.input b/Tests/RunCMake/ParseImplicitData/netbsd_nostdinc-CXX-GNU-4.8.5.input index b9a585c..5505abb 100644 --- a/Tests/RunCMake/ParseImplicitData/netbsd_nostdinc-CXX-GNU-4.8.5.input +++ b/Tests/RunCMake/ParseImplicitData/netbsd_nostdinc-CXX-GNU-4.8.5.input
@@ -9,7 +9,7 @@ CMAKE_CXX_COMPILER_RANLIB=CMAKE_CXX_COMPILER_RANLIB-NOTFOUND CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=4.8.5 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/pkg/bin/gmake" "cmTC_bbb1e/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/openbsd-C-Clang-5.0.1.input b/Tests/RunCMake/ParseImplicitData/openbsd-C-Clang-5.0.1.input index 9f34f3d..60edb38 100644 --- a/Tests/RunCMake/ParseImplicitData/openbsd-C-Clang-5.0.1.input +++ b/Tests/RunCMake/ParseImplicitData/openbsd-C-Clang-5.0.1.input
@@ -9,7 +9,7 @@ CMAKE_C_COMPILER_RANLIB=CMAKE_C_COMPILER_RANLIB-NOTFOUND CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=5.0.1 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/make" "cmTC_f5360/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/openbsd-CXX-Clang-5.0.1.input b/Tests/RunCMake/ParseImplicitData/openbsd-CXX-Clang-5.0.1.input index 93f1a95..4c7c355 100644 --- a/Tests/RunCMake/ParseImplicitData/openbsd-CXX-Clang-5.0.1.input +++ b/Tests/RunCMake/ParseImplicitData/openbsd-CXX-Clang-5.0.1.input
@@ -9,7 +9,7 @@ CMAKE_CXX_COMPILER_RANLIB=CMAKE_CXX_COMPILER_RANLIB-NOTFOUND CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=5.0.1 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/make" "cmTC_a2bf8/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/sunos-C-SunPro-5.13.0.input b/Tests/RunCMake/ParseImplicitData/sunos-C-SunPro-5.13.0.input index b0b504a..3f1c534 100644 --- a/Tests/RunCMake/ParseImplicitData/sunos-C-SunPro-5.13.0.input +++ b/Tests/RunCMake/ParseImplicitData/sunos-C-SunPro-5.13.0.input
@@ -9,7 +9,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=5.13.0 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/opt/csw/bin/gmake" "cmTC_55079/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/sunos-CXX-SunPro-5.13.0.input b/Tests/RunCMake/ParseImplicitData/sunos-CXX-SunPro-5.13.0.input index 9abd06a..8932d12 100644 --- a/Tests/RunCMake/ParseImplicitData/sunos-CXX-SunPro-5.13.0.input +++ b/Tests/RunCMake/ParseImplicitData/sunos-CXX-SunPro-5.13.0.input
@@ -9,7 +9,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=5.13.0 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/opt/csw/bin/gmake" "cmTC_cc4b2/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/sunos-Fortran-SunPro-8.8.0.input b/Tests/RunCMake/ParseImplicitData/sunos-Fortran-SunPro-8.8.0.input index 4a2bedd..1217b9e 100644 --- a/Tests/RunCMake/ParseImplicitData/sunos-Fortran-SunPro-8.8.0.input +++ b/Tests/RunCMake/ParseImplicitData/sunos-Fortran-SunPro-8.8.0.input
@@ -9,7 +9,7 @@ CMAKE_Fortran_COMPILER_RANLIB= CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=8.8.0 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= Change Dir: /tmp/ii/CMakeFiles/CMakeTmp Run Build Command:"/opt/csw/bin/gmake" "cmTC_adcec/fast"
diff --git a/Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-C-GNU-5.5.0.input b/Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-C-GNU-5.5.0.input index 39d9f79..8fd6e5f 100644 --- a/Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-C-GNU-5.5.0.input +++ b/Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-C-GNU-5.5.0.input
@@ -10,7 +10,7 @@ CMAKE_C_COMPILER_RANLIB=/opt/csw/bin/gcc-ranlib-5.5 CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=5.5.0 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp' Run Build Command(s): /tmp/cmake/build/bin/cmake -E env VERBOSE=1 /opt/csw/bin/gmake -f Makefile cmTC_c0ced/fast
diff --git a/Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-CXX-GNU-5.5.0.input b/Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-CXX-GNU-5.5.0.input index dd0799a..a2ceb05 100644 --- a/Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-CXX-GNU-5.5.0.input +++ b/Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-CXX-GNU-5.5.0.input
@@ -10,7 +10,7 @@ CMAKE_CXX_COMPILER_RANLIB=/opt/csw/bin/gcc-ranlib-5.5 CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=5.5.0 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp' Run Build Command(s): /tmp/cmake/build/bin/cmake -E env VERBOSE=1 /opt/csw/bin/gmake -f Makefile cmTC_e6422/fast
diff --git a/Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-Fortran-GNU-5.5.0.input b/Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-Fortran-GNU-5.5.0.input index 9d62b1a..75c6021 100644 --- a/Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-Fortran-GNU-5.5.0.input +++ b/Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-Fortran-GNU-5.5.0.input
@@ -10,7 +10,7 @@ CMAKE_Fortran_COMPILER_RANLIB=/opt/csw/bin/gcc-ranlib-5.5 CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=5.5.0 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp' Run Build Command(s): /tmp/cmake/build/bin/cmake -E env VERBOSE=1 /opt/csw/bin/gmake -f Makefile cmTC_955e5/fast
diff --git a/Tests/RunCMake/ParseImplicitData/sunos5.11_i386-C-GNU-5.5.0.input b/Tests/RunCMake/ParseImplicitData/sunos5.11_i386-C-GNU-5.5.0.input index 0fc6809..dcad2cd 100644 --- a/Tests/RunCMake/ParseImplicitData/sunos5.11_i386-C-GNU-5.5.0.input +++ b/Tests/RunCMake/ParseImplicitData/sunos5.11_i386-C-GNU-5.5.0.input
@@ -10,7 +10,7 @@ CMAKE_C_COMPILER_RANLIB=/opt/csw/bin/gcc-ranlib-5.5 CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=5.5.0 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp' Run Build Command(s): "/tmp/cmake/build/bin/cmake" -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_669bd/fast
diff --git a/Tests/RunCMake/ParseImplicitData/sunos5.11_i386-CXX-GNU-5.5.0.input b/Tests/RunCMake/ParseImplicitData/sunos5.11_i386-CXX-GNU-5.5.0.input index 0f0c712..b931177 100644 --- a/Tests/RunCMake/ParseImplicitData/sunos5.11_i386-CXX-GNU-5.5.0.input +++ b/Tests/RunCMake/ParseImplicitData/sunos5.11_i386-CXX-GNU-5.5.0.input
@@ -10,7 +10,7 @@ CMAKE_CXX_COMPILER_RANLIB=/opt/csw/bin/gcc-ranlib-5.5 CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=5.5.0 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp' Run Build Command(s): "/tmp/cmake/build/bin/cmake" -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_1c2eb/fast
diff --git a/Tests/RunCMake/ParseImplicitData/sunos5.11_i386-Fortran-GNU-5.5.0.input b/Tests/RunCMake/ParseImplicitData/sunos5.11_i386-Fortran-GNU-5.5.0.input index bcd5114..0470803 100644 --- a/Tests/RunCMake/ParseImplicitData/sunos5.11_i386-Fortran-GNU-5.5.0.input +++ b/Tests/RunCMake/ParseImplicitData/sunos5.11_i386-Fortran-GNU-5.5.0.input
@@ -10,7 +10,7 @@ CMAKE_Fortran_COMPILER_RANLIB=/opt/csw/bin/gcc-ranlib-5.5 CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=5.5.0 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp' Run Build Command(s): "/tmp/cmake/build/bin/cmake" -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_437d4/fast
diff --git a/Tests/RunCMake/ParseImplicitData/windows_arm64-C-Clang-17.0.1-MSVC.input b/Tests/RunCMake/ParseImplicitData/windows_arm64-C-Clang-17.0.1-MSVC.input index d28b970..d8c2715 100644 --- a/Tests/RunCMake/ParseImplicitData/windows_arm64-C-Clang-17.0.1-MSVC.input +++ b/Tests/RunCMake/ParseImplicitData/windows_arm64-C-Clang-17.0.1-MSVC.input
@@ -10,7 +10,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=17.0.1 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= CMAKE_C_SIMULATE_ID=MSVC clang version 17.0.1 Target: aarch64-pc-windows-msvc
diff --git a/Tests/RunCMake/ParseImplicitData/windows_arm64-CXX-Clang-17.0.1-MSVC.input b/Tests/RunCMake/ParseImplicitData/windows_arm64-CXX-Clang-17.0.1-MSVC.input index e82a4fa..36819c0 100644 --- a/Tests/RunCMake/ParseImplicitData/windows_arm64-CXX-Clang-17.0.1-MSVC.input +++ b/Tests/RunCMake/ParseImplicitData/windows_arm64-CXX-Clang-17.0.1-MSVC.input
@@ -10,7 +10,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=17.0.1 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= CMAKE_CXX_SIMULATE_ID=MSVC clang version 17.0.1 Target: aarch64-pc-windows-msvc
diff --git a/Tests/RunCMake/ParseImplicitData/windows_arm64-Fortran-LLVMFlang-17.0.1-MSVC.input b/Tests/RunCMake/ParseImplicitData/windows_arm64-Fortran-LLVMFlang-17.0.1-MSVC.input index 4937a41..fd7a1cb 100644 --- a/Tests/RunCMake/ParseImplicitData/windows_arm64-Fortran-LLVMFlang-17.0.1-MSVC.input +++ b/Tests/RunCMake/ParseImplicitData/windows_arm64-Fortran-LLVMFlang-17.0.1-MSVC.input
@@ -10,7 +10,7 @@ CMAKE_Fortran_COMPILER_RANLIB= CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=17.0.1 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= CMAKE_Fortran_SIMULATE_ID=MSVC flang-new version 17.0.1 Target: aarch64-pc-windows-msvc
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-Clang-17.0.1-MSVC.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-Clang-17.0.1-MSVC.input index b823880..2c8c295 100644 --- a/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-Clang-17.0.1-MSVC.input +++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-Clang-17.0.1-MSVC.input
@@ -10,7 +10,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=17.0.1 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= CMAKE_C_SIMULATE_ID=MSVC clang version 17.0.1 Target: x86_64-pc-windows-msvc
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-Intel-2021.9.0.20230302.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-Intel-2021.9.0.20230302.input index a54d54b..ef1cabd 100644 --- a/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-Intel-2021.9.0.20230302.input +++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-Intel-2021.9.0.20230302.input
@@ -10,7 +10,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=2021.9.0.20230302 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= CMAKE_HOST_SYSTEM_NAME=Windows Change Dir: 'C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp'
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-IntelLLVM-2023.1.0.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-IntelLLVM-2023.1.0.input index 710892c..ed2168f 100644 --- a/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-IntelLLVM-2023.1.0.input +++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-IntelLLVM-2023.1.0.input
@@ -10,7 +10,7 @@ CMAKE_C_COMPILER_RANLIB=C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/Llvm/x64/bin/llvm-ranlib.exe CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=2023.1.0 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= CMAKE_HOST_SYSTEM_NAME=Windows Change Dir: 'C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp'
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-MSVC-19.36.32543.0.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-MSVC-19.36.32543.0.input index cc73ff7..37d983a 100644 --- a/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-MSVC-19.36.32543.0.input +++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-MSVC-19.36.32543.0.input
@@ -10,7 +10,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=19.36.32543.0 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= CMAKE_HOST_SYSTEM_NAME=Windows Change Dir: 'C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp'
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-MSVC-19.38.33130.0-VS.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-MSVC-19.38.33130.0-VS.input index 77bae76..a059b01 100644 --- a/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-MSVC-19.38.33130.0-VS.input +++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-MSVC-19.38.33130.0-VS.input
@@ -10,7 +10,7 @@ CMAKE_C_COMPILER_RANLIB= CMAKE_C_COMPILER_TARGET= CMAKE_C_COMPILER_VERSION=19.38.33130.0 -CMAKE_C_COMPILER_VERSION_INTERAL= +CMAKE_C_COMPILER_VERSION_INTERNAL= CMAKE_HOST_SYSTEM_NAME=Windows Change Dir: 'C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp'
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-Clang-17.0.1-MSVC.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-Clang-17.0.1-MSVC.input index 756fd13..d237332 100644 --- a/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-Clang-17.0.1-MSVC.input +++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-Clang-17.0.1-MSVC.input
@@ -10,7 +10,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=17.0.1 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= CMAKE_CXX_SIMULATE_ID=MSVC clang version 17.0.1 Target: x86_64-pc-windows-msvc
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-Intel-2021.9.0.20230302.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-Intel-2021.9.0.20230302.input index ecb3f5c..35ce257 100644 --- a/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-Intel-2021.9.0.20230302.input +++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-Intel-2021.9.0.20230302.input
@@ -10,7 +10,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=2021.9.0.20230302 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= CMAKE_HOST_SYSTEM_NAME=Windows Change Dir: 'C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp'
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-IntelLLVM-2023.1.0.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-IntelLLVM-2023.1.0.input index 2650ba7..354735a 100644 --- a/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-IntelLLVM-2023.1.0.input +++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-IntelLLVM-2023.1.0.input
@@ -10,7 +10,7 @@ CMAKE_CXX_COMPILER_RANLIB=C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/Llvm/x64/bin/llvm-ranlib.exe CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=2023.1.0 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= CMAKE_HOST_SYSTEM_NAME=Windows Change Dir: 'C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp'
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-MSVC-19.36.32543.0.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-MSVC-19.36.32543.0.input index 5575537..f199a28 100644 --- a/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-MSVC-19.36.32543.0.input +++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-MSVC-19.36.32543.0.input
@@ -10,7 +10,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=19.36.32543.0 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= CMAKE_HOST_SYSTEM_NAME=Windows Change Dir: 'C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp'
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-MSVC-19.38.33130.0-VS.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-MSVC-19.38.33130.0-VS.input index 16d1b37..9dd437d 100644 --- a/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-MSVC-19.38.33130.0-VS.input +++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-MSVC-19.38.33130.0-VS.input
@@ -10,7 +10,7 @@ CMAKE_CXX_COMPILER_RANLIB= CMAKE_CXX_COMPILER_TARGET= CMAKE_CXX_COMPILER_VERSION=19.38.33130.0 -CMAKE_CXX_COMPILER_VERSION_INTERAL= +CMAKE_CXX_COMPILER_VERSION_INTERNAL= CMAKE_HOST_SYSTEM_NAME=Windows Change Dir: 'C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp'
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-Intel-2021.9.0.20230302.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-Intel-2021.9.0.20230302.input index 75e49a6..5feb0c3 100644 --- a/Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-Intel-2021.9.0.20230302.input +++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-Intel-2021.9.0.20230302.input
@@ -10,7 +10,7 @@ CMAKE_Fortran_COMPILER_RANLIB= CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=2021.9.0.20230302 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= CMAKE_HOST_SYSTEM_NAME=Windows Change Dir: 'C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp'
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-IntelLLVM-2023.1.0.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-IntelLLVM-2023.1.0.input index e8e0d1a..64dfb0f 100644 --- a/Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-IntelLLVM-2023.1.0.input +++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-IntelLLVM-2023.1.0.input
@@ -10,7 +10,7 @@ CMAKE_Fortran_COMPILER_RANLIB=C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/Llvm/x64/bin/llvm-ranlib.exe CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=2023.1.0 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= CMAKE_HOST_SYSTEM_NAME=Windows Change Dir: 'C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp'
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-LLVMFlang-17.0.1-MSVC.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-LLVMFlang-17.0.1-MSVC.input index fb75b51..fad8d2f 100644 --- a/Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-LLVMFlang-17.0.1-MSVC.input +++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-LLVMFlang-17.0.1-MSVC.input
@@ -10,7 +10,7 @@ CMAKE_Fortran_COMPILER_RANLIB= CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=17.0.1 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= CMAKE_Fortran_SIMULATE_ID=MSVC flang-new version 17.0.1 Target: x86_64-pc-windows-msvc
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-LLVMFlang-18.0.0-MSVC.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-LLVMFlang-18.0.0-MSVC.input index c567f06..fd00314 100644 --- a/Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-LLVMFlang-18.0.0-MSVC.input +++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-LLVMFlang-18.0.0-MSVC.input
@@ -10,7 +10,7 @@ CMAKE_Fortran_COMPILER_RANLIB= CMAKE_Fortran_COMPILER_TARGET= CMAKE_Fortran_COMPILER_VERSION=18.0.0 -CMAKE_Fortran_COMPILER_VERSION_INTERAL= +CMAKE_Fortran_COMPILER_VERSION_INTERNAL= CMAKE_Fortran_SIMULATE_ID=MSVC flang-new version 18.0.0 Target: x86_64-pc-windows-msvc
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-Cray-8.7.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-Cray-8.7.output index 8f68c4c..2258031 100644 --- a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-Cray-8.7.output +++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-Cray-8.7.output
@@ -1,3 +1,3 @@ -libs=AtpSigHandler;AtpSigHCommData;pthread;sci_cray_mpi_mp;m;f;sci_cray_mp;craymp;m;pthread;f;hugetlbfs;mpich_cray;rt;pthread;ugni;pmi;pgas-dmapp;fi;u;rt;dmapp;ugni;udreg;pthread;m;cray-c\+\+-rts;stdc\+\+;xpmem;dmapp;pthread;pmi;pthread;alpslli;pthread;wlm_detect;ugni;pthread;alpsutil;pthread;rca;udreg;quadmath;m;omp;rt;craymp;pthread;rt;dl;cray-c\+\+-rts;stdc\+\+;m;modules;m;rt;fi;m;quadmath;rt;craymath;m;gfortran;quadmath;rt;f;m;pthread;rt;u;rt;dl;cray-c\+\+-rts;stdc\+\+;m;csup;rt;atomic;stdc\+\+;pthread;c;csup;m;gcc +libs=AtpSigHandler;AtpSigHCommData;pthread;sci_cray_mpi_mp;m;f;sci_cray_mp;craymp;m;pthread;f;hugetlbfs;mpich_cray;rt;pthread;ugni;pmi;pgas-dmapp;fi;u;rt;dmapp;ugni;udreg;pthread;m;cray-c\+\+-rts;/usr/lib64/libstdc\+\+\.a;xpmem;dmapp;pthread;pmi;pthread;alpslli;pthread;wlm_detect;ugni;pthread;alpsutil;pthread;rca;udreg;quadmath;m;omp;rt;craymp;pthread;rt;dl;cray-c\+\+-rts;/usr/lib64/libstdc\+\+\.a;m;modules;m;rt;fi;m;quadmath;rt;craymath;m;gfortran;quadmath;rt;f;m;pthread;rt;u;rt;dl;cray-c\+\+-rts;/usr/lib64/libstdc\+\+\.a;m;csup;rt;atomic;/usr/lib64/libstdc\+\+\.a;pthread;c;csup;m;gcc dirs=/opt/gcc/6.1.0/snos/lib64;/opt/cray/pe/libsci/18.07.1/CRAY/8.6/x86_64/lib;/opt/cray/dmapp/default/lib64;/opt/cray/pe/mpt/7.7.3/gni/mpich-cray/8.6/lib;/opt/cray/rca/2.2.16-6.0.5.0_15.34__g5e09e6d.ari/lib64;/opt/cray/alps/6.5.28-6.0.5.0_18.6__g13a91b6.ari/lib64;/opt/cray/xpmem/2.2.4-6.0.5.1_8.26__g35d5e73.ari/lib64;/opt/cray/dmapp/7.1.1-6.0.5.0_49.8__g1125556.ari/lib64;/opt/cray/pe/pmi/5.0.14/lib64;/opt/cray/ugni/6.0.14-6.0.5.0_16.9__g19583bb.ari/lib64;/opt/cray/udreg/2.3.2-6.0.5.0_13.12__ga14955a.ari/lib64;/opt/cray/pe/atp/2.1.3/libApp;/opt/cray/pe/cce/8.7.4/cce/x86_64/lib;/opt/cray/wlm_detect/1.3.2-6.0.5.0_3.1__g388ccd5.ari/lib64;/usr/lib64;/lib64;/opt/gcc/6.1.0/snos/lib/gcc/x86_64-suse-linux/6.1.0;/opt/cray/pe/cce/8.7.4/binutils/x86_64/x86_64-unknown-linux-gnu/lib linker_tool=/opt/cray/pe/cce/8.7.4/binutils/x86_64/x86_64-pc-linux-gnu/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-Cray-8.7.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-Cray-8.7.output index 0b25047..2d2320a 100644 --- a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-Cray-8.7.output +++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-Cray-8.7.output
@@ -1,3 +1,3 @@ -libs=AtpSigHandler;AtpSigHCommData;pthread;sci_cray_mpi_mp;m;f;sci_cray_mp;craymp;m;pthread;f;hugetlbfs;mpichcxx_cray;rt;pthread;ugni;pmi;mpich_cray;rt;pthread;ugni;pmi;pgas-dmapp;fi;u;rt;dmapp;ugni;udreg;pthread;m;cray-c\+\+-rts;stdc\+\+;xpmem;dmapp;pthread;pmi;pthread;alpslli;pthread;wlm_detect;ugni;pthread;alpsutil;pthread;rca;udreg;quadmath;m;omp;rt;craymp;pthread;rt;dl;cray-c\+\+-rts;stdc\+\+;m;modules;m;rt;fi;m;quadmath;rt;craymath;m;gfortran;quadmath;rt;f;m;pthread;rt;u;rt;dl;cray-c\+\+-rts;stdc\+\+;m;csup;rt;atomic;cray-c\+\+-rts;stdc\+\+;supc\+\+;stdc\+\+;pthread;c;csup;m;gcc +libs=AtpSigHandler;AtpSigHCommData;pthread;sci_cray_mpi_mp;m;f;sci_cray_mp;craymp;m;pthread;f;hugetlbfs;mpichcxx_cray;rt;pthread;ugni;pmi;mpich_cray;rt;pthread;ugni;pmi;pgas-dmapp;fi;u;rt;dmapp;ugni;udreg;pthread;m;cray-c\+\+-rts;/usr/lib64/libstdc\+\+\.a;xpmem;dmapp;pthread;pmi;pthread;alpslli;pthread;wlm_detect;ugni;pthread;alpsutil;pthread;rca;udreg;quadmath;m;omp;rt;craymp;pthread;rt;dl;cray-c\+\+-rts;/usr/lib64/libstdc\+\+\.a;m;modules;m;rt;fi;m;quadmath;rt;craymath;m;gfortran;quadmath;rt;f;m;pthread;rt;u;rt;dl;cray-c\+\+-rts;/usr/lib64/libstdc\+\+\.a;m;csup;rt;atomic;cray-c\+\+-rts;/usr/lib64/libstdc\+\+\.a;supc\+\+;/usr/lib64/libstdc\+\+\.a;pthread;c;csup;m;gcc dirs=/opt/gcc/6.1.0/snos/lib64;/opt/cray/pe/libsci/18.07.1/CRAY/8.6/x86_64/lib;/opt/cray/dmapp/default/lib64;/opt/cray/pe/mpt/7.7.3/gni/mpich-cray/8.6/lib;/opt/cray/rca/2.2.16-6.0.5.0_15.34__g5e09e6d.ari/lib64;/opt/cray/alps/6.5.28-6.0.5.0_18.6__g13a91b6.ari/lib64;/opt/cray/xpmem/2.2.4-6.0.5.1_8.26__g35d5e73.ari/lib64;/opt/cray/dmapp/7.1.1-6.0.5.0_49.8__g1125556.ari/lib64;/opt/cray/pe/pmi/5.0.14/lib64;/opt/cray/ugni/6.0.14-6.0.5.0_16.9__g19583bb.ari/lib64;/opt/cray/udreg/2.3.2-6.0.5.0_13.12__ga14955a.ari/lib64;/opt/cray/pe/atp/2.1.3/libApp;/opt/cray/pe/cce/8.7.4/cce/x86_64/lib;/opt/cray/wlm_detect/1.3.2-6.0.5.0_3.1__g388ccd5.ari/lib64;/usr/lib64;/lib64;/opt/gcc/6.1.0/snos/lib/gcc/x86_64-suse-linux/6.1.0;/opt/cray/pe/cce/8.7.4/binutils/x86_64/x86_64-unknown-linux-gnu/lib linker_tool=/opt/cray/pe/cce/8.7.4/binutils/x86_64/x86_64-pc-linux-gnu/bin/ld
diff --git a/Tests/RunCMake/RunCMake.cmake b/Tests/RunCMake/RunCMake.cmake index 3392f39..0729f1b 100644 --- a/Tests/RunCMake/RunCMake.cmake +++ b/Tests/RunCMake/RunCMake.cmake
@@ -197,6 +197,7 @@ "|icp?x: remark: Note that use of .-g. without any optimization-level option will turn off most compiler optimizations" "|ifx: remark #10440: Note that use of a debug option without any optimization-level option will turnoff most compiler optimizations" "|lld-link: warning: procedure symbol record for .* refers to PDB item index [0-9A-Fa-fx]+ which is not a valid function ID record" + "|ld: warning: .* has a LOAD segment with RWX permissions" "|Error kstat returned" "|Hit xcodebuild bug" "|Recompacting log\\.\\.\\."
diff --git a/Tests/RunCMake/XcodeProject/BundlePostBuild.cmake b/Tests/RunCMake/XcodeProject/BundlePostBuild.cmake new file mode 100644 index 0000000..fb5c48b --- /dev/null +++ b/Tests/RunCMake/XcodeProject/BundlePostBuild.cmake
@@ -0,0 +1,15 @@ +enable_language(CXX) +add_executable(app MACOSX_BUNDLE app.cxx) +add_library(fw SHARED fw.cxx) +set_property(TARGET fw PROPERTY FRAMEWORK 1) +foreach(target IN ITEMS app fw) + set_property(TARGET ${target} PROPERTY XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT dwarf-with-dsym) + add_custom_command( + TARGET ${target} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E sha256sum + [["$DWARF_DSYM_FOLDER_PATH/$DWARF_DSYM_FILE_NAME/Contents/Resources/DWARF/$PRODUCT_NAME"]] + [["$DWARF_DSYM_FOLDER_PATH/$DWARF_DSYM_FILE_NAME/Contents/Info.plist"]] + [["$TARGET_BUILD_DIR/$EXECUTABLE_PATH"]] + [["$TARGET_BUILD_DIR/$INFOPLIST_PATH"]] + ) +endforeach()
diff --git a/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake b/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake index 5e22666..0515ec3 100644 --- a/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake +++ b/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake
@@ -91,6 +91,13 @@ XcodeObjectLibsInTwoProjectsMacOS() + block() + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/BundlePostBuild-build) + run_cmake(BundlePostBuild) + set(RunCMake_TEST_NO_CLEAN 1) + run_cmake_command(BundlePostBuild-build ${CMAKE_COMMAND} --build . --config Debug) + endblock() + endif() function(XcodeSchemaGeneration)
diff --git a/Tests/RunCMake/PackageInfo/test.cxx b/Tests/RunCMake/XcodeProject/app.cxx similarity index 100% copy from Tests/RunCMake/PackageInfo/test.cxx copy to Tests/RunCMake/XcodeProject/app.cxx
diff --git a/Tests/RunCMake/XcodeProject/fw.cxx b/Tests/RunCMake/XcodeProject/fw.cxx new file mode 100644 index 0000000..e08ce02 --- /dev/null +++ b/Tests/RunCMake/XcodeProject/fw.cxx
@@ -0,0 +1,4 @@ +int fw() +{ + return 0; +}
diff --git a/Tests/RunCMake/PackageInfo/BadArgs1-result.txt b/Tests/RunCMake/add_dependencies/NoArgs-result.txt similarity index 100% copy from Tests/RunCMake/PackageInfo/BadArgs1-result.txt copy to Tests/RunCMake/add_dependencies/NoArgs-result.txt
diff --git a/Tests/RunCMake/add_dependencies/NoArgs-stderr.txt b/Tests/RunCMake/add_dependencies/NoArgs-stderr.txt new file mode 100644 index 0000000..8af39ab --- /dev/null +++ b/Tests/RunCMake/add_dependencies/NoArgs-stderr.txt
@@ -0,0 +1,4 @@ +CMake Error at NoArgs.cmake:[0-9]+ \(add_dependencies\): + add_dependencies called with incorrect number of arguments +Call Stack \(most recent call first\): + CMakeLists\.txt:[0-9]+ \(include\)
diff --git a/Tests/RunCMake/add_dependencies/NoArgs.cmake b/Tests/RunCMake/add_dependencies/NoArgs.cmake new file mode 100644 index 0000000..6c6da2b --- /dev/null +++ b/Tests/RunCMake/add_dependencies/NoArgs.cmake
@@ -0,0 +1 @@ +add_dependencies()
diff --git a/Tests/RunCMake/add_dependencies/NoDependencies.cmake b/Tests/RunCMake/add_dependencies/NoDependencies.cmake new file mode 100644 index 0000000..21e0b89 --- /dev/null +++ b/Tests/RunCMake/add_dependencies/NoDependencies.cmake
@@ -0,0 +1,3 @@ +enable_language(C) +add_library(a a.c) +add_dependencies(a ${noDependencies})
diff --git a/Tests/RunCMake/add_dependencies/RunCMakeTest.cmake b/Tests/RunCMake/add_dependencies/RunCMakeTest.cmake index 507d43f..502aa7c 100644 --- a/Tests/RunCMake/add_dependencies/RunCMakeTest.cmake +++ b/Tests/RunCMake/add_dependencies/RunCMakeTest.cmake
@@ -1,5 +1,7 @@ include(RunCMake) +run_cmake(NoArgs) run_cmake(NoTarget) +run_cmake(NoDependencies) run_cmake(ReadOnlyProperty) run_cmake(RetrieveDependencies)
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVar-stderr.txt b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVar-stderr.txt new file mode 100644 index 0000000..75d5a7e --- /dev/null +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVar-stderr.txt
@@ -0,0 +1,4 @@ +^CMAKE_POLICY_VERSION_MINIMUM='3\.10' +CMAKE_MINIMUM_REQUIRED_VERSION='3\.1' +CMP0071='NEW' +CMP0072=''$
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVar.cmake b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVar.cmake new file mode 100644 index 0000000..e158354 --- /dev/null +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVar.cmake
@@ -0,0 +1 @@ +include(${CMAKE_CURRENT_LIST_DIR}/PolicyVersionVar.cmake)
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVariableBad-result.txt b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBad-result.txt similarity index 100% rename from Tests/RunCMake/cmake_minimum_required/PolicyVersionVariableBad-result.txt rename to Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBad-result.txt
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBad-stderr.txt b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBad-stderr.txt new file mode 100644 index 0000000..1ddab39 --- /dev/null +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBad-stderr.txt
@@ -0,0 +1,10 @@ +^CMake Error at CMakeLists\.txt:1 \(cmake_minimum_required\): + Invalid CMAKE_POLICY_VERSION_MINIMUM value "\.\.\.3\.10"\. A numeric + major\.minor\[\.patch\[\.tweak\]\] must be given\. ++ +CMake Error at PolicyVersionVarBad\.cmake:1 \(cmake_minimum_required\): + Invalid CMAKE_POLICY_VERSION_MINIMUM value "\.\.\.3\.10"\. A numeric + major\.minor\[\.patch\[\.tweak\]\] must be given\. +Call Stack \(most recent call first\): + PolicyVersionEnvVarBad\.cmake:[0-9]+ \(include\) + CMakeLists\.txt:[0-9]+ \(include\)$
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBad.cmake b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBad.cmake new file mode 100644 index 0000000..8ae5e2a --- /dev/null +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBad.cmake
@@ -0,0 +1 @@ +include(${CMAKE_CURRENT_LIST_DIR}/PolicyVersionVarBad.cmake)
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVariableBad-result.txt b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBadCache-result.txt similarity index 100% copy from Tests/RunCMake/cmake_minimum_required/PolicyVersionVariableBad-result.txt copy to Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBadCache-result.txt
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBadCache-stderr.txt b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBadCache-stderr.txt new file mode 100644 index 0000000..cb46948 --- /dev/null +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBadCache-stderr.txt
@@ -0,0 +1,9 @@ +^CMake Error at PolicyVersionVarBad\.cmake:1 \(cmake_minimum_required\): + Invalid CMAKE_POLICY_VERSION_MINIMUM value "\.\.\.3\.10"\. A numeric + major\.minor\[\.patch\[\.tweak\]\] must be given\. +Call Stack \(most recent call first\): + PolicyVersionEnvVarBad\.cmake:[0-9]+ \(include\) ++ +CMake Error at CMakeLists\.txt:1 \(cmake_minimum_required\): + Invalid CMAKE_POLICY_VERSION_MINIMUM value "\.\.\.3\.10"\. A numeric + major\.minor\[\.patch\[\.tweak\]\] must be given\.$
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBadCache.cmake b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBadCache.cmake new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBadCache.cmake
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVariableBad-result.txt b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBadScript-result.txt similarity index 100% copy from Tests/RunCMake/cmake_minimum_required/PolicyVersionVariableBad-result.txt copy to Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBadScript-result.txt
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBadScript-stderr.txt b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBadScript-stderr.txt new file mode 100644 index 0000000..b808e08 --- /dev/null +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBadScript-stderr.txt
@@ -0,0 +1,7 @@ +^CMake Error at [^ +]*/PolicyVersionVarBad\.cmake:1 \(cmake_minimum_required\): + Invalid CMAKE_POLICY_VERSION_MINIMUM value "\.\.\.3\.10"\. A numeric + major\.minor\[\.patch\[\.tweak\]\] must be given\. +Call Stack \(most recent call first\): + [^ +]*/PolicyVersionEnvVarBadScript\.cmake:[0-9]+ \(include\)$
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBadScript.cmake b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBadScript.cmake new file mode 100644 index 0000000..8ae5e2a --- /dev/null +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarBadScript.cmake
@@ -0,0 +1 @@ +include(${CMAKE_CURRENT_LIST_DIR}/PolicyVersionVarBad.cmake)
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarCache-stderr.txt b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarCache-stderr.txt new file mode 100644 index 0000000..75d5a7e --- /dev/null +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarCache-stderr.txt
@@ -0,0 +1,4 @@ +^CMAKE_POLICY_VERSION_MINIMUM='3\.10' +CMAKE_MINIMUM_REQUIRED_VERSION='3\.1' +CMP0071='NEW' +CMP0072=''$
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarCache.cmake b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarCache.cmake new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarCache.cmake
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarScript-stderr.txt b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarScript-stderr.txt new file mode 100644 index 0000000..75d5a7e --- /dev/null +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarScript-stderr.txt
@@ -0,0 +1,4 @@ +^CMAKE_POLICY_VERSION_MINIMUM='3\.10' +CMAKE_MINIMUM_REQUIRED_VERSION='3\.1' +CMP0071='NEW' +CMP0072=''$
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarScript.cmake b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarScript.cmake new file mode 100644 index 0000000..e158354 --- /dev/null +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionEnvVarScript.cmake
@@ -0,0 +1 @@ +include(${CMAKE_CURRENT_LIST_DIR}/PolicyVersionVar.cmake)
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVar-stderr.txt b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVar-stderr.txt new file mode 100644 index 0000000..75d5a7e --- /dev/null +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVar-stderr.txt
@@ -0,0 +1,4 @@ +^CMAKE_POLICY_VERSION_MINIMUM='3\.10' +CMAKE_MINIMUM_REQUIRED_VERSION='3\.1' +CMP0071='NEW' +CMP0072=''$
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVariable.cmake b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVar.cmake similarity index 76% rename from Tests/RunCMake/cmake_minimum_required/PolicyVersionVariable.cmake rename to Tests/RunCMake/cmake_minimum_required/PolicyVersionVar.cmake index 553fc94..c8975dd 100644 --- a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVariable.cmake +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVar.cmake
@@ -1,4 +1,4 @@ -set(CMAKE_POLICY_VERSION_MINIMUM 3.10) +message("CMAKE_POLICY_VERSION_MINIMUM='${CMAKE_POLICY_VERSION_MINIMUM}'") cmake_minimum_required(VERSION 3.1...3.4) message("CMAKE_MINIMUM_REQUIRED_VERSION='${CMAKE_MINIMUM_REQUIRED_VERSION}'") foreach(policy CMP0071 CMP0072)
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVariableBad-result.txt b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBad-result.txt similarity index 100% copy from Tests/RunCMake/cmake_minimum_required/PolicyVersionVariableBad-result.txt copy to Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBad-result.txt
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBad-stderr.txt b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBad-stderr.txt new file mode 100644 index 0000000..ff6997d --- /dev/null +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBad-stderr.txt
@@ -0,0 +1,9 @@ +^CMake Error at CMakeLists\.txt:1 \(cmake_minimum_required\): + Invalid CMAKE_POLICY_VERSION_MINIMUM value "\.\.\.3\.10"\. A numeric + major\.minor\[\.patch\[\.tweak\]\] must be given\. ++ +CMake Error at PolicyVersionVarBad\.cmake:1 \(cmake_minimum_required\): + Invalid CMAKE_POLICY_VERSION_MINIMUM value "\.\.\.3\.10"\. A numeric + major\.minor\[\.patch\[\.tweak\]\] must be given\. +Call Stack \(most recent call first\): + CMakeLists\.txt:[0-9]+ \(include\)$
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBad.cmake b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBad.cmake new file mode 100644 index 0000000..c602a4a --- /dev/null +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBad.cmake
@@ -0,0 +1 @@ +cmake_minimum_required(VERSION 3.1...3.4)
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVariableBad-result.txt b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBadCache-result.txt similarity index 100% copy from Tests/RunCMake/cmake_minimum_required/PolicyVersionVariableBad-result.txt copy to Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBadCache-result.txt
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBadCache-stderr.txt b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBadCache-stderr.txt new file mode 100644 index 0000000..808a6e1 --- /dev/null +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBadCache-stderr.txt
@@ -0,0 +1,7 @@ +^CMake Error at PolicyVersionVarBad\.cmake:1 \(cmake_minimum_required\): + Invalid CMAKE_POLICY_VERSION_MINIMUM value "\.\.\.3\.10"\. A numeric + major\.minor\[\.patch\[\.tweak\]\] must be given\. ++ +CMake Error at CMakeLists\.txt:1 \(cmake_minimum_required\): + Invalid CMAKE_POLICY_VERSION_MINIMUM value "\.\.\.3\.10"\. A numeric + major\.minor\[\.patch\[\.tweak\]\] must be given\.$
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBadCache.cmake b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBadCache.cmake new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBadCache.cmake
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVariableBad-result.txt b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBadScript-result.txt similarity index 100% copy from Tests/RunCMake/cmake_minimum_required/PolicyVersionVariableBad-result.txt copy to Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBadScript-result.txt
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBadScript-stderr.txt b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBadScript-stderr.txt new file mode 100644 index 0000000..e07ff15 --- /dev/null +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBadScript-stderr.txt
@@ -0,0 +1,7 @@ +^CMake Error at [^ +]*/PolicyVersionVarBad\.cmake:1 \(cmake_minimum_required\): + Invalid CMAKE_POLICY_VERSION_MINIMUM value "\.\.\.3\.10"\. A numeric + major\.minor\[\.patch\[\.tweak\]\] must be given\. +Call Stack \(most recent call first\): + [^ +]*/PolicyVersionVarBadScript\.cmake:1 \(include\)$
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBadScript.cmake b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBadScript.cmake new file mode 100644 index 0000000..8ae5e2a --- /dev/null +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarBadScript.cmake
@@ -0,0 +1 @@ +include(${CMAKE_CURRENT_LIST_DIR}/PolicyVersionVarBad.cmake)
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarCache-stderr.txt b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarCache-stderr.txt new file mode 100644 index 0000000..75d5a7e --- /dev/null +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarCache-stderr.txt
@@ -0,0 +1,4 @@ +^CMAKE_POLICY_VERSION_MINIMUM='3\.10' +CMAKE_MINIMUM_REQUIRED_VERSION='3\.1' +CMP0071='NEW' +CMP0072=''$
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarCache.cmake b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarCache.cmake new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarCache.cmake
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarScript-stderr.txt b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarScript-stderr.txt new file mode 100644 index 0000000..75d5a7e --- /dev/null +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarScript-stderr.txt
@@ -0,0 +1,4 @@ +^CMAKE_POLICY_VERSION_MINIMUM='3\.10' +CMAKE_MINIMUM_REQUIRED_VERSION='3\.1' +CMP0071='NEW' +CMP0072=''$
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarScript.cmake b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarScript.cmake new file mode 100644 index 0000000..e158354 --- /dev/null +++ b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVarScript.cmake
@@ -0,0 +1 @@ +include(${CMAKE_CURRENT_LIST_DIR}/PolicyVersionVar.cmake)
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVariable-stderr.txt b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVariable-stderr.txt deleted file mode 100644 index 4f161bf..0000000 --- a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVariable-stderr.txt +++ /dev/null
@@ -1,3 +0,0 @@ -^CMAKE_MINIMUM_REQUIRED_VERSION='3\.1' -CMP0071='NEW' -CMP0072=''$
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVariableBad-stderr.txt b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVariableBad-stderr.txt deleted file mode 100644 index 3a59bb7..0000000 --- a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVariableBad-stderr.txt +++ /dev/null
@@ -1,5 +0,0 @@ -^CMake Error at PolicyVersionVariableBad\.cmake:2 \(cmake_minimum_required\): - Invalid CMAKE_POLICY_VERSION_MINIMUM value "\.\.\.3\.10"\. A numeric - major\.minor\[\.patch\[\.tweak\]\] must be given\. -Call Stack \(most recent call first\): - CMakeLists\.txt:[0-9]+ \(include\)$
diff --git a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVariableBad.cmake b/Tests/RunCMake/cmake_minimum_required/PolicyVersionVariableBad.cmake deleted file mode 100644 index 763997b..0000000 --- a/Tests/RunCMake/cmake_minimum_required/PolicyVersionVariableBad.cmake +++ /dev/null
@@ -1,2 +0,0 @@ -set(CMAKE_POLICY_VERSION_MINIMUM ...3.10) -cmake_minimum_required(VERSION 3.1...3.4)
diff --git a/Tests/RunCMake/cmake_minimum_required/RunCMakeTest.cmake b/Tests/RunCMake/cmake_minimum_required/RunCMakeTest.cmake index d91f171..8871447 100644 --- a/Tests/RunCMake/cmake_minimum_required/RunCMakeTest.cmake +++ b/Tests/RunCMake/cmake_minimum_required/RunCMakeTest.cmake
@@ -7,5 +7,20 @@ run_cmake(Range) run_cmake(RangeBad) run_cmake(Unknown) -run_cmake(PolicyVersionVariable) -run_cmake(PolicyVersionVariableBad) + +run_cmake_with_options(PolicyVersionVar -DCMAKE_POLICY_VERSION_MINIMUM=3.10) +run_cmake_with_options(PolicyVersionVarCache -DCMAKE_POLICY_VERSION_MINIMUM=3.10 -C ${CMAKE_CURRENT_LIST_DIR}/PolicyVersionVar.cmake) +run_cmake_script(PolicyVersionVarScript -DCMAKE_POLICY_VERSION_MINIMUM=3.10) +run_cmake_with_options(PolicyVersionVarBad -DCMAKE_POLICY_VERSION_MINIMUM=...3.10) +run_cmake_with_options(PolicyVersionVarBadCache -DCMAKE_POLICY_VERSION_MINIMUM=...3.10 -C ${CMAKE_CURRENT_LIST_DIR}/PolicyVersionVarBad.cmake) +run_cmake_script(PolicyVersionVarBadScript -DCMAKE_POLICY_VERSION_MINIMUM=...3.10) + +set(ENV{CMAKE_POLICY_VERSION_MINIMUM} 3.10) +run_cmake(PolicyVersionEnvVar) +run_cmake_with_options(PolicyVersionEnvVarCache -C ${CMAKE_CURRENT_LIST_DIR}/PolicyVersionEnvVar.cmake) +run_cmake_script(PolicyVersionEnvVarScript) +set(ENV{CMAKE_POLICY_VERSION_MINIMUM} ...3.10) +run_cmake(PolicyVersionEnvVarBad) +run_cmake_with_options(PolicyVersionEnvVarBadCache -C ${CMAKE_CURRENT_LIST_DIR}/PolicyVersionEnvVarBad.cmake) +run_cmake_script(PolicyVersionEnvVarBadScript) +unset(ENV{CMAKE_POLICY_VERSION_MINIMUM})
diff --git a/Tests/RunCMake/export/DependOnDoubleExport-result.txt b/Tests/RunCMake/export/DependOnDifferentNamespaceExport-result.txt similarity index 100% copy from Tests/RunCMake/export/DependOnDoubleExport-result.txt copy to Tests/RunCMake/export/DependOnDifferentNamespaceExport-result.txt
diff --git a/Tests/RunCMake/export/DependOnDifferentNamespaceExport-stderr.txt b/Tests/RunCMake/export/DependOnDifferentNamespaceExport-stderr.txt new file mode 100644 index 0000000..b116088 --- /dev/null +++ b/Tests/RunCMake/export/DependOnDifferentNamespaceExport-stderr.txt
@@ -0,0 +1,13 @@ +CMake Error in CMakeLists.txt: + export called with target "exported" which requires target "doubleexported" + that is not in this export set, but in another export set which is exported + multiple times with different namespaces:.* + .*/Tests/RunCMake/export/DependOnDifferentNamespaceExport-build/export1.cmake,.* + .*/Tests/RunCMake/export/DependOnDifferentNamespaceExport-build/export2.cmake. ++ + An exported target cannot depend upon another target which is exported in + more than one export set or with more than one namespace. Consider + consolidating the exports of the "doubleexported" target to a single + export. ++ +CMake Generate step failed. Build files cannot be regenerated correctly.
diff --git a/Tests/RunCMake/export/DependOnDifferentNamespaceExport.cmake b/Tests/RunCMake/export/DependOnDifferentNamespaceExport.cmake new file mode 100644 index 0000000..5f9cb69 --- /dev/null +++ b/Tests/RunCMake/export/DependOnDifferentNamespaceExport.cmake
@@ -0,0 +1,9 @@ +add_library(doubleexported INTERFACE) +install(TARGETS doubleexported EXPORT exportset) +export(EXPORT exportset + FILE "${CMAKE_CURRENT_BINARY_DIR}/export1.cmake") +export(EXPORT exportset NAMESPACE test:: + FILE "${CMAKE_CURRENT_BINARY_DIR}/export2.cmake") +add_library(exported INTERFACE) +target_link_libraries(exported INTERFACE doubleexported) +export(TARGETS exported FILE "${CMAKE_CURRENT_BINARY_DIR}/exports.cmake")
diff --git a/Tests/RunCMake/export/DependOnDoubleExport-result.txt b/Tests/RunCMake/export/DependOnDifferentSetExport-result.txt similarity index 100% rename from Tests/RunCMake/export/DependOnDoubleExport-result.txt rename to Tests/RunCMake/export/DependOnDifferentSetExport-result.txt
diff --git a/Tests/RunCMake/export/DependOnDoubleExport-stderr.txt b/Tests/RunCMake/export/DependOnDifferentSetExport-stderr.txt similarity index 75% rename from Tests/RunCMake/export/DependOnDoubleExport-stderr.txt rename to Tests/RunCMake/export/DependOnDifferentSetExport-stderr.txt index c79b74e..499ffa9 100644 --- a/Tests/RunCMake/export/DependOnDoubleExport-stderr.txt +++ b/Tests/RunCMake/export/DependOnDifferentSetExport-stderr.txt
@@ -1,13 +1,12 @@ CMake Error in CMakeLists.txt: export called with target "exported" which requires target "doubleexported" that is not in this export set, but in multiple other export sets:.* - .*/Tests/RunCMake/export/DependOnDoubleExport-build/exportset.cmake,.* - .*/Tests/RunCMake/export/DependOnDoubleExport-build/manual.cmake. + .*/Tests/RunCMake/export/DependOnDifferentSetExport-build/exportset.cmake,.* + .*/Tests/RunCMake/export/DependOnDifferentSetExport-build/manual.cmake. + An exported target cannot depend upon another target which is exported in more than one export set or with more than one namespace. Consider consolidating the exports of the "doubleexported" target to a single export. - - ++ CMake Generate step failed. Build files cannot be regenerated correctly.
diff --git a/Tests/RunCMake/export/DependOnDifferentSetExport.cmake b/Tests/RunCMake/export/DependOnDifferentSetExport.cmake new file mode 100644 index 0000000..8d108d7 --- /dev/null +++ b/Tests/RunCMake/export/DependOnDifferentSetExport.cmake
@@ -0,0 +1,7 @@ +add_library(doubleexported INTERFACE) +install(TARGETS doubleexported EXPORT exportset) +export(TARGETS doubleexported FILE "${CMAKE_CURRENT_BINARY_DIR}/manual.cmake") +export(EXPORT exportset FILE "${CMAKE_CURRENT_BINARY_DIR}/exportset.cmake") +add_library(exported INTERFACE) +target_link_libraries(exported INTERFACE doubleexported) +export(TARGETS exported FILE "${CMAKE_CURRENT_BINARY_DIR}/exports.cmake")
diff --git a/Tests/RunCMake/export/DependOnDoubleExport.cmake b/Tests/RunCMake/export/DependOnDoubleExport.cmake index 8d108d7..e126b3a 100644 --- a/Tests/RunCMake/export/DependOnDoubleExport.cmake +++ b/Tests/RunCMake/export/DependOnDoubleExport.cmake
@@ -1,7 +1,7 @@ add_library(doubleexported INTERFACE) install(TARGETS doubleexported EXPORT exportset) -export(TARGETS doubleexported FILE "${CMAKE_CURRENT_BINARY_DIR}/manual.cmake") -export(EXPORT exportset FILE "${CMAKE_CURRENT_BINARY_DIR}/exportset.cmake") +export(EXPORT exportset FILE "${CMAKE_CURRENT_BINARY_DIR}/export1.cmake") +export(EXPORT exportset FILE "${CMAKE_CURRENT_BINARY_DIR}/export2.cmake") add_library(exported INTERFACE) target_link_libraries(exported INTERFACE doubleexported) export(TARGETS exported FILE "${CMAKE_CURRENT_BINARY_DIR}/exports.cmake")
diff --git a/Tests/RunCMake/export/RunCMakeTest.cmake b/Tests/RunCMake/export/RunCMakeTest.cmake index 2dcd146..8dcea7f 100644 --- a/Tests/RunCMake/export/RunCMakeTest.cmake +++ b/Tests/RunCMake/export/RunCMakeTest.cmake
@@ -15,6 +15,8 @@ run_cmake(ExportPropertiesUndefined) run_cmake(DependOnNotExport) run_cmake(DependOnDoubleExport) +run_cmake(DependOnDifferentSetExport) +run_cmake(DependOnDifferentNamespaceExport) run_cmake(UnknownExport) run_cmake(NamelinkOnlyExport) run_cmake(SeparateNamelinkExport)
diff --git a/Tests/RunCMake/string/RunCMakeTest.cmake b/Tests/RunCMake/string/RunCMakeTest.cmake index 91a03da..5b395e1 100644 --- a/Tests/RunCMake/string/RunCMakeTest.cmake +++ b/Tests/RunCMake/string/RunCMakeTest.cmake
@@ -21,6 +21,14 @@ run_cmake(JoinNoVar) run_cmake(Timestamp) +if(NOT CMAKE_SYSTEM_NAME STREQUAL "AIX" # FIXME: Needs 64-bit build + AND NOT CMAKE_SYSTEM_NAME STREQUAL "SunOS" # FIXME: Needs 64-bit build + AND NOT (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND + CMAKE_SYSTEM_PROCESSOR MATCHES "^(hppa|parisc64|sparc|sparc64)$" # FIXME: 32-bit time_t? + ) + ) + run_cmake(Timestamp2038) +endif() run_cmake(TimestampEmpty) run_cmake(TimestampInvalid) run_cmake(TimestampInvalid2)
diff --git a/Tests/RunCMake/string/Timestamp2038-stderr.txt b/Tests/RunCMake/string/Timestamp2038-stderr.txt new file mode 100644 index 0000000..4a2eb50 --- /dev/null +++ b/Tests/RunCMake/string/Timestamp2038-stderr.txt
@@ -0,0 +1 @@ +^RESULT=2038-01-20 05:00:00.000000 Wednesday=Wed January=Jan 38 day=020 wd=3 week=03 w_iso=03 %I=05 epoch=2147576400 TZ=GMT tz=\+0000$
diff --git a/Tests/RunCMake/string/Timestamp2038.cmake b/Tests/RunCMake/string/Timestamp2038.cmake new file mode 100644 index 0000000..adbc910 --- /dev/null +++ b/Tests/RunCMake/string/Timestamp2038.cmake
@@ -0,0 +1,3 @@ +set(ENV{SOURCE_DATE_EPOCH} "2147576400") +string(TIMESTAMP RESULT "%Y-%m-%d %H:%M:%S.%f %A=%a %B=%b %y day=%j wd=%w week=%U w_iso=%V %%I=%I epoch=%s TZ=%Z tz=%z" UTC) +message("RESULT=${RESULT}")
diff --git a/Utilities/CMakeLists.txt b/Utilities/CMakeLists.txt index 5e6ef0a..e377733 100644 --- a/Utilities/CMakeLists.txt +++ b/Utilities/CMakeLists.txt
@@ -17,5 +17,7 @@ add_subdirectory(Release/WiX) endif() -# Make sure generated files use the same clang-tidy checks (none). -configure_file(.clang-tidy .clang-tidy COPYONLY) +if(CMake_RUN_CLANG_TIDY) + # Make sure generated files use the same clang-tidy checks (none). + configure_file(.clang-tidy .clang-tidy COPYONLY) +endif()
diff --git a/Utilities/Release/files-v1.json.in b/Utilities/Release/files-v1.json.in index 05561c7..55f68cc 100644 --- a/Utilities/Release/files-v1.json.in +++ b/Utilities/Release/files-v1.json.in
@@ -61,27 +61,27 @@ }, { "os": ["sunos", "SunOS"], - "architecture": ["i386"], + "architecture": ["x86_64"], "class": "installer", - "name": "cmake-@version@-sunos-i386.sh" + "name": "cmake-@version@-sunos-x86_64.sh" }, { "os": ["sunos", "SunOS"], - "architecture": ["i386"], + "architecture": ["x86_64"], "class": "archive", - "name": "cmake-@version@-sunos-i386.tar.gz" + "name": "cmake-@version@-sunos-x86_64.tar.gz" }, { "os": ["sunos", "SunOS"], - "architecture": ["sparc"], + "architecture": ["sparc64"], "class": "installer", - "name": "cmake-@version@-sunos-sparc.sh" + "name": "cmake-@version@-sunos-sparc64.sh" }, { "os": ["sunos", "SunOS"], - "architecture": ["sparc"], + "architecture": ["sparc64"], "class": "archive", - "name": "cmake-@version@-sunos-sparc.tar.gz" + "name": "cmake-@version@-sunos-sparc64.tar.gz" }, { "os": ["windows", "Windows"],
diff --git a/Utilities/Release/files-v1.rst b/Utilities/Release/files-v1.rst index b8dbe6f..0ed3170 100644 --- a/Utilities/Release/files-v1.rst +++ b/Utilities/Release/files-v1.rst
@@ -82,7 +82,7 @@ On Windows, architecture names include ``x86_64``, ``i386``, and ``arm64``. On macOS, universal binary packages list all architectures, e.g. ``["arm64","x86_64"]``. - On SunOS, architecture names include ``i386`` and ``sparc``. + On SunOS, architecture names include ``x86_64`` and ``sparc64``. ``class`` A JSON string naming the class of package. The value is one of:
diff --git a/Utilities/Release/sunos/docker/Dockerfile b/Utilities/Release/sunos/docker/Dockerfile index 626dff4..1c300b3 100644 --- a/Utilities/Release/sunos/docker/Dockerfile +++ b/Utilities/Release/sunos/docker/Dockerfile
@@ -14,7 +14,7 @@ && apt-get --download-only -y install $(grep -h '^[^#]\+$' /root/*.lst) FROM ${BASE_IMAGE} AS base -ARG ARCH=sparc +ARG ARCH=sparc64 RUN --mount=type=bind,source=base.lst,target=/root/base.lst \ --mount=type=bind,source=docker-clean,target=/etc/apt/apt.conf.d/docker-clean \ --mount=type=cache,from=apt-cache,source=/var/lib/apt/lists,target=/var/lib/apt/lists \
diff --git a/Utilities/Release/sunos/docker/base.bash b/Utilities/Release/sunos/docker/base.bash index 0c707d0..ddc6d47 100755 --- a/Utilities/Release/sunos/docker/base.bash +++ b/Utilities/Release/sunos/docker/base.bash
@@ -6,13 +6,13 @@ readonly arch case "$arch" in - i386) - tarball="gcc-9.5.0-linux-x86_64-cross-sunos-i386.tar.xz" - sha256sum="3cd3c989483051e741dd9f39170842d22e5c43cd25628d2b0c57890a3f235883" + x86_64) + tarball="gcc-9.5.0-linux-x86_64-cross-sunos-x86_64.tar.xz" + sha256sum="0632342dc20445a798148548376f986f3a09dc2e4f433fa9100e4a5371a14860" ;; - sparc) - tarball="gcc-9.5.0-linux-x86_64-cross-sunos-sparc.tar.xz" - sha256sum="853454ef4e787895786fdb21e56a3ba9c121ffe6116467a75f2c3eb09f3c88b4" + sparc64) + tarball="gcc-9.5.0-linux-x86_64-cross-sunos-sparc64.tar.xz" + sha256sum="ea3c3deecdd94823edd7241aa4b79a0dc4e7fb5a8dc9d101cc2d6a72beab7ced" ;; *) echo >&2 "Unknown architecture: $arch" @@ -24,7 +24,7 @@ cd /tmp -curl -OL "https://gitlab.kitware.com/api/v4/projects/6955/packages/generic/gcc-solaris/v9.5.0-20250212.0/$tarball" +curl -OL "https://gitlab.kitware.com/api/v4/projects/6955/packages/generic/gcc-solaris/v9.5.0-20250227.0/$tarball" echo "$sha256sum $tarball" > gcc.sha256sum sha256sum --check gcc.sha256sum
diff --git a/Utilities/Release/sunos/docker/openssl.bash b/Utilities/Release/sunos/docker/openssl.bash index 86f9ad8..ea3b6b4 100755 --- a/Utilities/Release/sunos/docker/openssl.bash +++ b/Utilities/Release/sunos/docker/openssl.bash
@@ -6,15 +6,15 @@ readonly arch case "$arch" in - i386) - target=i386-pc-solaris2.10 - openssl_target=solaris-x86-gcc + x86_64) + target=x86_64-pc-solaris2.10 + openssl_target=solaris64-x86_64-gcc ldlibs= ;; - sparc) - target=sparc-sun-solaris2.10 - openssl_target=solaris-sparcv8-gcc - ldlibs=-latomic + sparc64) + target=sparc64-sun-solaris2.10 + openssl_target=solaris64-sparcv9-gcc + ldlibs= ;; *) echo >&2 "Unknown architecture: $arch" @@ -59,4 +59,4 @@ exit 1 fi -tar czf /root/openssl.tar.gz -C / "$prefix" +tar czf /root/openssl.tar.gz -C / "${prefix#/}"
diff --git a/Utilities/Release/sunos/docker/sysroot.bash b/Utilities/Release/sunos/docker/sysroot.bash index 87ec01e..a556f1c 100755 --- a/Utilities/Release/sunos/docker/sysroot.bash +++ b/Utilities/Release/sunos/docker/sysroot.bash
@@ -6,13 +6,13 @@ readonly arch case "$arch" in - i386) - tarball="sysroot-i386-pc-solaris2.10-sunos5.10-1.tar.xz" - sha256sum="1b9251699f4e412ba5b0fde9c0fb96ceef6b8a1f47f0c1f2146ba0ba9da458b8" + x86_64) + tarball="sysroot-x86_64-pc-solaris2.10-sunos5.10-1.tar.xz" + sha256sum="bea632b3ae755f89a1c0e64775437a9b29001a3fc3a3c2c6247b921776059231" ;; - sparc) - tarball="sysroot-sparc-sun-solaris2.10-sunos5.10-1.tar.xz" - sha256sum="e6c668a63dc00de443d07cbe2be779335642ffe1b818ba85d23ab543982aaf23" + sparc64) + tarball="sysroot-sparc64-sun-solaris2.10-sunos5.10-1.tar.xz" + sha256sum="fd60cc1be951ae314ff2b4246ac055c8e5b21c39b4cd41b23ebcec709451d90f" ;; *) echo >&2 "Unknown architecture: $arch" @@ -23,8 +23,8 @@ # --build-arg SYSROOT_URL=... # --build-arg SYSROOT_SHA256SUM=... # The tarball must contain one of: -# sysroot/i386-pc-solaris2.10/{lib,usr/lib,usr/include} -# sysroot/sparc-sun-solaris2.10/{lib,usr/lib,usr/include} +# sysroot/x86_64-pc-solaris2.10/{lib,usr/lib,usr/include} +# sysroot/sparc64-sun-solaris2.10/{lib,usr/lib,usr/include} # The content may be retrieved from a real Solaris host. if test -n "$SYSROOT_URL"; then url="$SYSROOT_URL"
diff --git a/Utilities/Release/sunos/i386/toolchain.cmake b/Utilities/Release/sunos/i386/toolchain.cmake deleted file mode 100644 index 59ce6b5..0000000 --- a/Utilities/Release/sunos/i386/toolchain.cmake +++ /dev/null
@@ -1,6 +0,0 @@ -set(CMAKE_SYSTEM_NAME SunOS) -set(CMAKE_SYSTEM_VERSION 5.10) -set(CMAKE_SYSTEM_PROCESSOR i386) -set(CMAKE_SYSROOT /opt/cross/sysroot/i386-pc-solaris2.10) -set(CMAKE_C_COMPILER /opt/cross/bin/i386-pc-solaris2.10-gcc) -set(CMAKE_CXX_COMPILER /opt/cross/bin/i386-pc-solaris2.10-g++)
diff --git a/Utilities/Release/sunos/sparc/cache.txt b/Utilities/Release/sunos/sparc/cache.txt deleted file mode 100644 index eb12c14..0000000 --- a/Utilities/Release/sunos/sparc/cache.txt +++ /dev/null
@@ -1,26 +0,0 @@ -CMAKE_BUILD_TYPE:STRING=Release - -# Link C++ library statically. -CMAKE_EXE_LINKER_FLAGS:STRING=-static-libstdc++ -static-libgcc -Wl,-z,noexecstack - -# Enable ssl support in curl -CMAKE_USE_OPENSSL:BOOL=ON -OPENSSL_USE_STATIC_LIBS:BOOL=ON -OpenSSL_ROOT:PATH=/opt/cross/openssl/sparc-sun-solaris2.10 -_OPENSSL_STATIC_LIBRARIES:STRING=/opt/cross/sparc-sun-solaris2.10/lib/libatomic.a - -# Enable ccmake -BUILD_CursesDialog:BOOL=ON - -# Disable cmake-gui -BUILD_QtDialog:BOOL=OFF - -# Disable tests. -BUILD_TESTING:BOOL=OFF -CMake_TEST_INSTALL:BOOL=OFF - -# Disable unnecessary dependency. -CMAKE_SKIP_INSTALL_ALL_DEPENDENCY:BOOL=ON - -# CPack package file name component for this platform. -CPACK_SYSTEM_NAME:STRING=sunos-sparc
diff --git a/Utilities/Release/sunos/sparc/toolchain.cmake b/Utilities/Release/sunos/sparc/toolchain.cmake deleted file mode 100644 index 789df8d..0000000 --- a/Utilities/Release/sunos/sparc/toolchain.cmake +++ /dev/null
@@ -1,6 +0,0 @@ -set(CMAKE_SYSTEM_NAME SunOS) -set(CMAKE_SYSTEM_VERSION 5.10) -set(CMAKE_SYSTEM_PROCESSOR sparc) -set(CMAKE_SYSROOT /opt/cross/sysroot/sparc-sun-solaris2.10) -set(CMAKE_C_COMPILER /opt/cross/bin/sparc-sun-solaris2.10-gcc) -set(CMAKE_CXX_COMPILER /opt/cross/bin/sparc-sun-solaris2.10-g++)
diff --git a/Utilities/Release/sunos/i386/cache.txt b/Utilities/Release/sunos/sparc64/cache.txt similarity index 83% copy from Utilities/Release/sunos/i386/cache.txt copy to Utilities/Release/sunos/sparc64/cache.txt index 6bb2c27..a904dac 100644 --- a/Utilities/Release/sunos/i386/cache.txt +++ b/Utilities/Release/sunos/sparc64/cache.txt
@@ -6,7 +6,7 @@ # Enable ssl support in curl CMAKE_USE_OPENSSL:BOOL=ON OPENSSL_USE_STATIC_LIBS:BOOL=ON -OpenSSL_ROOT:PATH=/opt/cross/openssl/i386-pc-solaris2.10 +OpenSSL_ROOT:PATH=/opt/cross/openssl/sparc64-sun-solaris2.10 # Enable ccmake BUILD_CursesDialog:BOOL=ON @@ -22,4 +22,4 @@ CMAKE_SKIP_INSTALL_ALL_DEPENDENCY:BOOL=ON # CPack package file name component for this platform. -CPACK_SYSTEM_NAME:STRING=sunos-i386 +CPACK_SYSTEM_NAME:STRING=sunos-sparc64
diff --git a/Utilities/Release/sunos/sparc64/toolchain.cmake b/Utilities/Release/sunos/sparc64/toolchain.cmake new file mode 100644 index 0000000..94471fe --- /dev/null +++ b/Utilities/Release/sunos/sparc64/toolchain.cmake
@@ -0,0 +1,6 @@ +set(CMAKE_SYSTEM_NAME SunOS) +set(CMAKE_SYSTEM_VERSION 5.10) +set(CMAKE_SYSTEM_PROCESSOR sparc64) +set(CMAKE_SYSROOT /opt/cross/sysroot/sparc64-sun-solaris2.10) +set(CMAKE_C_COMPILER /opt/cross/bin/sparc64-sun-solaris2.10-gcc) +set(CMAKE_CXX_COMPILER /opt/cross/bin/sparc64-sun-solaris2.10-g++)
diff --git a/Utilities/Release/sunos/i386/cache.txt b/Utilities/Release/sunos/x86_64/cache.txt similarity index 84% rename from Utilities/Release/sunos/i386/cache.txt rename to Utilities/Release/sunos/x86_64/cache.txt index 6bb2c27..33f9914 100644 --- a/Utilities/Release/sunos/i386/cache.txt +++ b/Utilities/Release/sunos/x86_64/cache.txt
@@ -6,7 +6,7 @@ # Enable ssl support in curl CMAKE_USE_OPENSSL:BOOL=ON OPENSSL_USE_STATIC_LIBS:BOOL=ON -OpenSSL_ROOT:PATH=/opt/cross/openssl/i386-pc-solaris2.10 +OpenSSL_ROOT:PATH=/opt/cross/openssl/x86_64-pc-solaris2.10 # Enable ccmake BUILD_CursesDialog:BOOL=ON @@ -22,4 +22,4 @@ CMAKE_SKIP_INSTALL_ALL_DEPENDENCY:BOOL=ON # CPack package file name component for this platform. -CPACK_SYSTEM_NAME:STRING=sunos-i386 +CPACK_SYSTEM_NAME:STRING=sunos-x86_64
diff --git a/Utilities/Release/sunos/x86_64/toolchain.cmake b/Utilities/Release/sunos/x86_64/toolchain.cmake new file mode 100644 index 0000000..0954291 --- /dev/null +++ b/Utilities/Release/sunos/x86_64/toolchain.cmake
@@ -0,0 +1,6 @@ +set(CMAKE_SYSTEM_NAME SunOS) +set(CMAKE_SYSTEM_VERSION 5.10) +set(CMAKE_SYSTEM_PROCESSOR x86_64) +set(CMAKE_SYSROOT /opt/cross/sysroot/x86_64-pc-solaris2.10) +set(CMAKE_C_COMPILER /opt/cross/bin/x86_64-pc-solaris2.10-gcc) +set(CMAKE_CXX_COMPILER /opt/cross/bin/x86_64-pc-solaris2.10-g++)
diff --git a/Utilities/Scripts/update-jsoncpp.bash b/Utilities/Scripts/update-jsoncpp.bash index a05dcb8..5e97f9e 100755 --- a/Utilities/Scripts/update-jsoncpp.bash +++ b/Utilities/Scripts/update-jsoncpp.bash
@@ -8,7 +8,7 @@ readonly ownership="JsonCpp Upstream <kwrobot@kitware.com>" readonly subtree="Utilities/cmjsoncpp" readonly repo="https://github.com/open-source-parsers/jsoncpp.git" -readonly tag="42e892d96e47b1f6e29844cc705e148ec4856448" +readonly tag="1.9.6" readonly shortlog=false readonly paths=" LICENSE
diff --git a/Utilities/Sphinx/conf.py.in b/Utilities/Sphinx/conf.py.in index d6df5a1..e71f850 100644 --- a/Utilities/Sphinx/conf.py.in +++ b/Utilities/Sphinx/conf.py.in
@@ -100,6 +100,7 @@ r'https://cdash\.org': r'https://www\.cdash\.org/', r'https://cmake.org/get-involved/': r'https://cmake.org/documentation/', r'https://docs\.nvidia\.com/cuda/': r'https://docs\.nvidia\.com/cuda/index\.html', + r'https://learn\.microsoft\.com/en-us/cpp/build/reference/export-exports-a-function': r'https://learn\.microsoft\.com/en-us/cpp/build/reference/export-exports-a-function\?.*', r'https://learn\.microsoft\.com/en-us/cpp/build/reference/openmp-enable-openmp-2-0-support': r'https://learn\.microsoft\.com/en-us/cpp/build/reference/openmp-enable-openmp-2-0-support\?.*', r'https://learn\.microsoft\.com/en-us/cpp/c-language/parsing-c-command-line-arguments': r'https://learn\.microsoft\.com/en-us/cpp/c-language/parsing-c-command-line-arguments\?.*', r'https://openjdk\.java\.net/jeps/313': r'https://openjdk\.org:443/jeps/313',
diff --git a/Utilities/cmjsoncpp/include/json/allocator.h b/Utilities/cmjsoncpp/include/json/allocator.h index 3718df1..eda2677 100644 --- a/Utilities/cmjsoncpp/include/json/allocator.h +++ b/Utilities/cmjsoncpp/include/json/allocator.h
@@ -71,7 +71,9 @@ // Boilerplate SecureAllocator() {} template <typename U> SecureAllocator(const SecureAllocator<U>&) {} - template <typename U> struct rebind { using other = SecureAllocator<U>; }; + template <typename U> struct rebind { + using other = SecureAllocator<U>; + }; }; template <typename T, typename U>
diff --git a/Utilities/cmjsoncpp/include/json/reader.h b/Utilities/cmjsoncpp/include/json/reader.h index 0d444ad..a79d0ea 100644 --- a/Utilities/cmjsoncpp/include/json/reader.h +++ b/Utilities/cmjsoncpp/include/json/reader.h
@@ -53,12 +53,12 @@ }; /** \brief Constructs a Reader allowing all features for parsing. - * deprecated Use CharReader and CharReaderBuilder. + * deprecated Use CharReader and CharReaderBuilder. */ Reader(); /** \brief Constructs a Reader allowing the specified feature set for parsing. - * deprecated Use CharReader and CharReaderBuilder. + * deprecated Use CharReader and CharReaderBuilder. */ Reader(const Features& features); @@ -192,6 +192,7 @@ using Errors = std::deque<ErrorInfo>; bool readToken(Token& token); + bool readTokenSkippingComments(Token& token); void skipSpaces(); bool match(const Char* pattern, int patternLength); bool readComment(); @@ -223,7 +224,6 @@ int& column) const; String getLocationLineAndColumn(Location location) const; void addComment(Location begin, Location end, CommentPlacement placement); - void skipCommentTokens(Token& token); static bool containsNewLine(Location begin, Location end); static String normalizeEOL(Location begin, Location end); @@ -246,6 +246,12 @@ */ class JSON_API CharReader { public: + struct JSON_API StructuredError { + ptrdiff_t offset_start; + ptrdiff_t offset_limit; + String message; + }; + virtual ~CharReader() = default; /** \brief Read a Value from a <a HREF="http://www.json.org">JSON</a> * document. The document must be a UTF-8 encoded string containing the @@ -264,7 +270,12 @@ * error occurred. */ virtual bool parse(char const* beginDoc, char const* endDoc, Value* root, - String* errs) = 0; + String* errs); + + /** \brief Returns a vector of structured errors encountered while parsing. + * Each parse call resets the stored list of errors. + */ + std::vector<StructuredError> getStructuredErrors() const; class JSON_API Factory { public: @@ -274,7 +285,21 @@ */ virtual CharReader* newCharReader() const = 0; }; // Factory -}; // CharReader + +protected: + class Impl { + public: + virtual ~Impl() = default; + virtual bool parse(char const* beginDoc, char const* endDoc, Value* root, + String* errs) = 0; + virtual std::vector<StructuredError> getStructuredErrors() const = 0; + }; + + explicit CharReader(std::unique_ptr<Impl> impl) : _impl(std::move(impl)) {} + +private: + std::unique_ptr<Impl> _impl; +}; // CharReader /** \brief Build a CharReader implementation. * @@ -362,6 +387,12 @@ * snippet src/lib_json/json_reader.cpp CharReaderBuilderStrictMode */ static void strictMode(Json::Value* settings); + /** ECMA-404 mode. + * \pre 'settings' != NULL (but Json::null is fine) + * \remark Defaults: + * \snippet src/lib_json/json_reader.cpp CharReaderBuilderECMA404Mode + */ + static void ecma404Mode(Json::Value* settings); }; /** Consume entire stream and use its begin/end.
diff --git a/Utilities/cmjsoncpp/include/json/value.h b/Utilities/cmjsoncpp/include/json/value.h index 421fef8..da78869 100644 --- a/Utilities/cmjsoncpp/include/json/value.h +++ b/Utilities/cmjsoncpp/include/json/value.h
@@ -3,8 +3,8 @@ // recognized in your jurisdiction. // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE -#ifndef JSON_H_INCLUDED -#define JSON_H_INCLUDED +#ifndef JSON_VALUE_H_INCLUDED +#define JSON_VALUE_H_INCLUDED #if !defined(JSON_IS_AMALGAMATION) #include "forwards.h" @@ -443,7 +443,7 @@ /// \post type() is arrayValue void resize(ArrayIndex newSize); - //@{ + ///@{ /// Access an array element (zero based index). If the array contains less /// than index element, then null value are inserted in the array so that /// its size is index+1. @@ -451,15 +451,15 @@ /// this from the operator[] which takes a string.) Value& operator[](ArrayIndex index); Value& operator[](int index); - //@} + ///@} - //@{ + ///@{ /// Access an array element (zero based index). /// (You may need to say 'value[0u]' to get your compiler to distinguish /// this from the operator[] which takes a string.) const Value& operator[](ArrayIndex index) const; const Value& operator[](int index) const; - //@} + ///@} /// If the array contains at least index+1 elements, returns the element /// value, otherwise returns defaultValue. @@ -519,6 +519,9 @@ /// and operator[]const /// \note As stated elsewhere, behavior is undefined if (end-begin) >= 2^30 Value const* find(char const* begin, char const* end) const; + /// Most general and efficient version of isMember()const, get()const, + /// and operator[]const + Value const* find(const String& key) const; /// Most general and efficient version of object-mutators. /// \note As stated elsewhere, behavior is undefined if (end-begin) >= 2^30 /// \return non-zero, but JSON_ASSERT if this is neither object nor nullValue. @@ -591,6 +594,26 @@ iterator begin(); iterator end(); + /// \brief Returns a reference to the first element in the `Value`. + /// Requires that this value holds an array or json object, with at least one + /// element. + const Value& front() const; + + /// \brief Returns a reference to the first element in the `Value`. + /// Requires that this value holds an array or json object, with at least one + /// element. + Value& front(); + + /// \brief Returns a reference to the last element in the `Value`. + /// Requires that value holds an array or json object, with at least one + /// element. + const Value& back() const; + + /// \brief Returns a reference to the last element in the `Value`. + /// Requires that this value holds an array or json object, with at least one + /// element. + Value& back(); + // Accessors for the [start, limit) range of bytes within the JSON text from // which this value was parsed, if any. void setOffsetStart(ptrdiff_t start); @@ -931,6 +954,14 @@ inline void swap(Value& a, Value& b) { a.swap(b); } +inline const Value& Value::front() const { return *begin(); } + +inline Value& Value::front() { return *begin(); } + +inline const Value& Value::back() const { return *(--end()); } + +inline Value& Value::back() { return *(--end()); } + } // namespace Json #if !defined(__SUNPRO_CC)
diff --git a/Utilities/cmjsoncpp/include/json/version.h b/Utilities/cmjsoncpp/include/json/version.h index e931d03..38faedf 100644 --- a/Utilities/cmjsoncpp/include/json/version.h +++ b/Utilities/cmjsoncpp/include/json/version.h
@@ -9,19 +9,18 @@ // 3. /CMakeLists.txt // IMPORTANT: also update the SOVERSION!! -#define JSONCPP_VERSION_STRING "1.9.5" +#define JSONCPP_VERSION_STRING "1.9.6" #define JSONCPP_VERSION_MAJOR 1 #define JSONCPP_VERSION_MINOR 9 -#define JSONCPP_VERSION_PATCH 5 +#define JSONCPP_VERSION_PATCH 6 #define JSONCPP_VERSION_QUALIFIER #define JSONCPP_VERSION_HEXA \ ((JSONCPP_VERSION_MAJOR << 24) | (JSONCPP_VERSION_MINOR << 16) | \ (JSONCPP_VERSION_PATCH << 8)) -#ifdef JSONCPP_USING_SECURE_MEMORY -#undef JSONCPP_USING_SECURE_MEMORY -#endif +#if !defined(JSONCPP_USE_SECURE_MEMORY) #define JSONCPP_USING_SECURE_MEMORY 0 +#endif // If non-zero, the library zeroes any memory that it has allocated before // it frees its memory.
diff --git a/Utilities/cmjsoncpp/include/json/writer.h b/Utilities/cmjsoncpp/include/json/writer.h index 2a47d5e..fac86c7 100644 --- a/Utilities/cmjsoncpp/include/json/writer.h +++ b/Utilities/cmjsoncpp/include/json/writer.h
@@ -66,7 +66,7 @@ */ virtual StreamWriter* newStreamWriter() const = 0; }; // Factory -}; // StreamWriter +}; // StreamWriter /** \brief Write into stringstream, then return string, for convenience. * A StreamWriter will be created from the factory, used, and then deleted. @@ -170,8 +170,7 @@ #pragma warning(push) #pragma warning(disable : 4996) // Deriving from deprecated class #endif -class JSON_API FastWriter - : public Writer { +class JSON_API FastWriter : public Writer { public: FastWriter(); ~FastWriter() override = default; @@ -230,8 +229,7 @@ #pragma warning(push) #pragma warning(disable : 4996) // Deriving from deprecated class #endif -class JSON_API - StyledWriter : public Writer { +class JSON_API StyledWriter : public Writer { public: StyledWriter(); ~StyledWriter() override = default; @@ -299,8 +297,7 @@ #pragma warning(push) #pragma warning(disable : 4996) // Deriving from deprecated class #endif -class JSON_API - StyledStreamWriter { +class JSON_API StyledStreamWriter { public: /** * \param indentation Each level will be indented by this amount extra. @@ -356,6 +353,7 @@ PrecisionType precisionType = PrecisionType::significantDigits); String JSON_API valueToString(bool value); String JSON_API valueToQuotedString(const char* value); +String JSON_API valueToQuotedString(const char* value, size_t length); /// \brief Output using the StyledStreamWriter. /// \see Json::operator>>()
diff --git a/Utilities/cmjsoncpp/src/lib_json/json_reader.cpp b/Utilities/cmjsoncpp/src/lib_json/json_reader.cpp index 5cc718d..c504bfb 100644 --- a/Utilities/cmjsoncpp/src/lib_json/json_reader.cpp +++ b/Utilities/cmjsoncpp/src/lib_json/json_reader.cpp
@@ -129,7 +129,7 @@ bool successful = readValue(); Token token; - skipCommentTokens(token); + readTokenSkippingComments(token); if (collectComments_ && !commentsBefore_.empty()) root.setComment(commentsBefore_, commentAfter); if (features_.strictRoot_) { @@ -157,7 +157,7 @@ throwRuntimeError("Exceeded stackLimit in readValue()."); Token token; - skipCommentTokens(token); + readTokenSkippingComments(token); bool successful = true; if (collectComments_ && !commentsBefore_.empty()) { @@ -225,14 +225,14 @@ return successful; } -void Reader::skipCommentTokens(Token& token) { +bool Reader::readTokenSkippingComments(Token& token) { + bool success = readToken(token); if (features_.allowComments_) { - do { - readToken(token); - } while (token.type_ == tokenComment); - } else { - readToken(token); + while (success && token.type_ == tokenComment) { + success = readToken(token); + } } + return success; } bool Reader::readToken(Token& token) { @@ -446,12 +446,7 @@ Value init(objectValue); currentValue().swapPayload(init); currentValue().setOffsetStart(token.start_ - begin_); - while (readToken(tokenName)) { - bool initialTokenOk = true; - while (tokenName.type_ == tokenComment && initialTokenOk) - initialTokenOk = readToken(tokenName); - if (!initialTokenOk) - break; + while (readTokenSkippingComments(tokenName)) { if (tokenName.type_ == tokenObjectEnd && name.empty()) // empty object return true; name.clear(); @@ -480,15 +475,11 @@ return recoverFromError(tokenObjectEnd); Token comma; - if (!readToken(comma) || - (comma.type_ != tokenObjectEnd && comma.type_ != tokenArraySeparator && - comma.type_ != tokenComment)) { + if (!readTokenSkippingComments(comma) || + (comma.type_ != tokenObjectEnd && comma.type_ != tokenArraySeparator)) { return addErrorAndRecover("Missing ',' or '}' in object declaration", comma, tokenObjectEnd); } - bool finalizeTokenOk = true; - while (comma.type_ == tokenComment && finalizeTokenOk) - finalizeTokenOk = readToken(comma); if (comma.type_ == tokenObjectEnd) return true; } @@ -518,10 +509,7 @@ Token currentToken; // Accept Comment after last item in the array. - ok = readToken(currentToken); - while (currentToken.type_ == tokenComment && ok) { - ok = readToken(currentToken); - } + ok = readTokenSkippingComments(currentToken); bool badTokenType = (currentToken.type_ != tokenArraySeparator && currentToken.type_ != tokenArrayEnd); if (!ok || badTokenType) { @@ -599,8 +587,7 @@ bool Reader::decodeDouble(Token& token, Value& decoded) { double value = 0; - String buffer(token.start_, token.end_); - IStringStream is(buffer); + IStringStream is(String(token.start_, token.end_)); if (!(is >> value)) { if (value == std::numeric_limits<double>::max()) value = std::numeric_limits<double>::infinity(); @@ -608,7 +595,7 @@ value = -std::numeric_limits<double>::infinity(); else if (!std::isinf(value)) return addError( - "'" + String(token.start_, token.end_) + "' is not a number.", token); + "'" + String(token.start_, token.end_) + "' is not a number.", token); } decoded = value; return true; @@ -773,7 +760,7 @@ while (current < location && current != end_) { Char c = *current++; if (c == '\r') { - if (*current == '\n') + if (current != end_ && *current == '\n') ++current; lastLineStart = current; ++line; @@ -890,17 +877,12 @@ public: using Char = char; using Location = const Char*; - struct StructuredError { - ptrdiff_t offset_start; - ptrdiff_t offset_limit; - String message; - }; explicit OurReader(OurFeatures const& features); bool parse(const char* beginDoc, const char* endDoc, Value& root, bool collectComments = true); String getFormattedErrorMessages() const; - std::vector<StructuredError> getStructuredErrors() const; + std::vector<CharReader::StructuredError> getStructuredErrors() const; private: OurReader(OurReader const&); // no impl @@ -943,6 +925,7 @@ using Errors = std::deque<ErrorInfo>; bool readToken(Token& token); + bool readTokenSkippingComments(Token& token); void skipSpaces(); void skipBom(bool skipBom); bool match(const Char* pattern, int patternLength); @@ -976,7 +959,6 @@ int& column) const; String getLocationLineAndColumn(Location location) const; void addComment(Location begin, Location end, CommentPlacement placement); - void skipCommentTokens(Token& token); static String normalizeEOL(Location begin, Location end); static bool containsNewLine(Location begin, Location end); @@ -1030,7 +1012,7 @@ bool successful = readValue(); nodes_.pop(); Token token; - skipCommentTokens(token); + readTokenSkippingComments(token); if (features_.failIfExtra_ && (token.type_ != tokenEndOfStream)) { addError("Extra non-whitespace after JSON value.", token); return false; @@ -1058,7 +1040,7 @@ if (nodes_.size() > features_.stackLimit_) throwRuntimeError("Exceeded stackLimit in readValue()."); Token token; - skipCommentTokens(token); + readTokenSkippingComments(token); bool successful = true; if (collectComments_ && !commentsBefore_.empty()) { @@ -1145,14 +1127,14 @@ return successful; } -void OurReader::skipCommentTokens(Token& token) { +bool OurReader::readTokenSkippingComments(Token& token) { + bool success = readToken(token); if (features_.allowComments_) { - do { - readToken(token); - } while (token.type_ == tokenComment); - } else { - readToken(token); + while (success && token.type_ == tokenComment) { + success = readToken(token); + } } + return success; } bool OurReader::readToken(Token& token) { @@ -1449,12 +1431,7 @@ Value init(objectValue); currentValue().swapPayload(init); currentValue().setOffsetStart(token.start_ - begin_); - while (readToken(tokenName)) { - bool initialTokenOk = true; - while (tokenName.type_ == tokenComment && initialTokenOk) - initialTokenOk = readToken(tokenName); - if (!initialTokenOk) - break; + while (readTokenSkippingComments(tokenName)) { if (tokenName.type_ == tokenObjectEnd && (name.empty() || features_.allowTrailingCommas_)) // empty object or trailing comma @@ -1491,15 +1468,11 @@ return recoverFromError(tokenObjectEnd); Token comma; - if (!readToken(comma) || - (comma.type_ != tokenObjectEnd && comma.type_ != tokenArraySeparator && - comma.type_ != tokenComment)) { + if (!readTokenSkippingComments(comma) || + (comma.type_ != tokenObjectEnd && comma.type_ != tokenArraySeparator)) { return addErrorAndRecover("Missing ',' or '}' in object declaration", comma, tokenObjectEnd); } - bool finalizeTokenOk = true; - while (comma.type_ == tokenComment && finalizeTokenOk) - finalizeTokenOk = readToken(comma); if (comma.type_ == tokenObjectEnd) return true; } @@ -1533,10 +1506,7 @@ Token currentToken; // Accept Comment after last item in the array. - ok = readToken(currentToken); - while (currentToken.type_ == tokenComment && ok) { - ok = readToken(currentToken); - } + ok = readTokenSkippingComments(currentToken); bool badTokenType = (currentToken.type_ != tokenArraySeparator && currentToken.type_ != tokenArrayEnd); if (!ok || badTokenType) { @@ -1651,8 +1621,7 @@ bool OurReader::decodeDouble(Token& token, Value& decoded) { double value = 0; - const String buffer(token.start_, token.end_); - IStringStream is(buffer); + IStringStream is(String(token.start_, token.end_)); if (!(is >> value)) { if (value == std::numeric_limits<double>::max()) value = std::numeric_limits<double>::infinity(); @@ -1660,7 +1629,7 @@ value = -std::numeric_limits<double>::infinity(); else if (!std::isinf(value)) return addError( - "'" + String(token.start_, token.end_) + "' is not a number.", token); + "'" + String(token.start_, token.end_) + "' is not a number.", token); } decoded = value; return true; @@ -1826,7 +1795,7 @@ while (current < location && current != end_) { Char c = *current++; if (c == '\r') { - if (*current == '\n') + if (current != end_ && *current == '\n') ++current; lastLineStart = current; ++line; @@ -1861,10 +1830,11 @@ return formattedMessage; } -std::vector<OurReader::StructuredError> OurReader::getStructuredErrors() const { - std::vector<OurReader::StructuredError> allErrors; +std::vector<CharReader::StructuredError> +OurReader::getStructuredErrors() const { + std::vector<CharReader::StructuredError> allErrors; for (const auto& error : errors_) { - OurReader::StructuredError structured; + CharReader::StructuredError structured; structured.offset_start = error.token_.start_ - begin_; structured.offset_limit = error.token_.end_ - begin_; structured.message = error.message_; @@ -1874,20 +1844,36 @@ } class OurCharReader : public CharReader { - bool const collectComments_; - OurReader reader_; public: OurCharReader(bool collectComments, OurFeatures const& features) - : collectComments_(collectComments), reader_(features) {} - bool parse(char const* beginDoc, char const* endDoc, Value* root, - String* errs) override { - bool ok = reader_.parse(beginDoc, endDoc, *root, collectComments_); - if (errs) { - *errs = reader_.getFormattedErrorMessages(); + : CharReader( + std::unique_ptr<OurImpl>(new OurImpl(collectComments, features))) {} + +protected: + class OurImpl : public Impl { + public: + OurImpl(bool collectComments, OurFeatures const& features) + : collectComments_(collectComments), reader_(features) {} + + bool parse(char const* beginDoc, char const* endDoc, Value* root, + String* errs) override { + bool ok = reader_.parse(beginDoc, endDoc, *root, collectComments_); + if (errs) { + *errs = reader_.getFormattedErrorMessages(); + } + return ok; } - return ok; - } + + std::vector<CharReader::StructuredError> + getStructuredErrors() const override { + return reader_.getStructuredErrors(); + } + + private: + bool const collectComments_; + OurReader reader_; + }; }; CharReaderBuilder::CharReaderBuilder() { setDefaults(&settings_); } @@ -1976,6 +1962,32 @@ (*settings)["skipBom"] = true; //! [CharReaderBuilderDefaults] } +// static +void CharReaderBuilder::ecma404Mode(Json::Value* settings) { + //! [CharReaderBuilderECMA404Mode] + (*settings)["allowComments"] = false; + (*settings)["allowTrailingCommas"] = false; + (*settings)["strictRoot"] = false; + (*settings)["allowDroppedNullPlaceholders"] = false; + (*settings)["allowNumericKeys"] = false; + (*settings)["allowSingleQuotes"] = false; + (*settings)["stackLimit"] = 1000; + (*settings)["failIfExtra"] = true; + (*settings)["rejectDupKeys"] = false; + (*settings)["allowSpecialFloats"] = false; + (*settings)["skipBom"] = false; + //! [CharReaderBuilderECMA404Mode] +} + +std::vector<CharReader::StructuredError> +CharReader::getStructuredErrors() const { + return _impl->getStructuredErrors(); +} + +bool CharReader::parse(char const* beginDoc, char const* endDoc, Value* root, + String* errs) { + return _impl->parse(beginDoc, endDoc, root, errs); +} ////////////////////////////////// // global functions @@ -1984,7 +1996,7 @@ String* errs) { OStringStream ssin; ssin << sin.rdbuf(); - String doc = ssin.str(); + String doc = std::move(ssin).str(); char const* begin = doc.data(); char const* end = begin + doc.size(); // Note that we do not actually need a null-terminator.
diff --git a/Utilities/cmjsoncpp/src/lib_json/json_value.cpp b/Utilities/cmjsoncpp/src/lib_json/json_value.cpp index b496ddf..ec7ae70 100644 --- a/Utilities/cmjsoncpp/src/lib_json/json_value.cpp +++ b/Utilities/cmjsoncpp/src/lib_json/json_value.cpp
@@ -1092,6 +1092,9 @@ return nullptr; return &(*it).second; } +Value const* Value::find(const String& key) const { + return find(key.data(), key.data() + key.length()); +} Value* Value::demand(char const* begin, char const* end) { JSON_ASSERT_MESSAGE(type() == nullValue || type() == objectValue, "in Json::Value::demand(begin, end): requires " @@ -1105,7 +1108,7 @@ return *found; } Value const& Value::operator[](const String& key) const { - Value const* found = find(key.data(), key.data() + key.length()); + Value const* found = find(key); if (!found) return nullSingleton(); return *found; @@ -1205,7 +1208,7 @@ return false; } if (removed) - *removed = it->second; + *removed = std::move(it->second); ArrayIndex oldSize = size(); // shift left all items left, into the place of the "removed" for (ArrayIndex i = index; i < (oldSize - 1); ++i) { @@ -1410,9 +1413,8 @@ // Always discard trailing newline, to aid indentation. comment.pop_back(); } - JSON_ASSERT(!comment.empty()); JSON_ASSERT_MESSAGE( - comment[0] == '\0' || comment[0] == '/', + comment.empty() || comment[0] == '/', "in Json::Value::setComment(): Comments must start with /"); comments_.set(placement, std::move(comment)); }
diff --git a/Utilities/cmjsoncpp/src/lib_json/json_writer.cpp b/Utilities/cmjsoncpp/src/lib_json/json_writer.cpp index 0dd160e..ee45c43 100644 --- a/Utilities/cmjsoncpp/src/lib_json/json_writer.cpp +++ b/Utilities/cmjsoncpp/src/lib_json/json_writer.cpp
@@ -132,8 +132,9 @@ if (!isfinite(value)) { static const char* const reps[2][3] = {{"NaN", "-Infinity", "Infinity"}, {"null", "-1e+9999", "1e+9999"}}; - return reps[useSpecialFloats ? 0 : 1] - [isnan(value) ? 0 : (value < 0) ? 1 : 2]; + return reps[useSpecialFloats ? 0 : 1][isnan(value) ? 0 + : (value < 0) ? 1 + : 2]; } String buffer(size_t(36), '\0'); @@ -353,6 +354,10 @@ return valueToQuotedStringN(value, strlen(value)); } +String valueToQuotedString(const char* value, size_t length) { + return valueToQuotedStringN(value, length); +} + // Class Writer // ////////////////////////////////////////////////////////////////// Writer::~Writer() = default; @@ -490,7 +495,7 @@ const String& name = *it; const Value& childValue = value[name]; writeCommentBeforeValue(childValue); - writeWithIndent(valueToQuotedString(name.c_str())); + writeWithIndent(valueToQuotedString(name.c_str(), name.size())); document_ += " : "; writeValue(childValue); if (++it == members.end()) { @@ -708,7 +713,7 @@ const String& name = *it; const Value& childValue = value[name]; writeCommentBeforeValue(childValue); - writeWithIndent(valueToQuotedString(name.c_str())); + writeWithIndent(valueToQuotedString(name.c_str(), name.size())); *document_ << " : "; writeValue(childValue); if (++it == members.end()) { @@ -1246,7 +1251,7 @@ OStringStream sout; StreamWriterPtr const writer(factory.newStreamWriter()); writer->write(root, &sout); - return sout.str(); + return std::move(sout).str(); } OStream& operator<<(OStream& sout, Value const& root) {
diff --git a/Utilities/cmlibuv/CMakeLists.txt b/Utilities/cmlibuv/CMakeLists.txt index 8773e56..c00145e 100644 --- a/Utilities/cmlibuv/CMakeLists.txt +++ b/Utilities/cmlibuv/CMakeLists.txt
@@ -219,7 +219,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") list(APPEND uv_libraries - kvm ) list(APPEND uv_headers include/uv/bsd.h @@ -236,7 +235,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "kFreeBSD") list(APPEND uv_libraries freebsd-glue - kvm ) list(APPEND uv_headers include/uv/bsd.h @@ -268,7 +266,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") list(APPEND uv_libraries - kvm ) list(APPEND uv_headers include/uv/bsd.h @@ -302,7 +299,7 @@ endif() if(CMAKE_SYSTEM_VERSION STREQUAL "5.10") list(APPEND uv_defines SUNOS_NO_IFADDRS) - if(CMAKE_SYSTEM_PROCESSOR STREQUAL "i386") + if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i386|x86_64)$") list(APPEND uv_defines CMAKE_NO_MKDTEMP) endif() endif()
diff --git a/bootstrap b/bootstrap index a1ab850..644260b 100755 --- a/bootstrap +++ b/bootstrap
@@ -1783,10 +1783,12 @@ libs="${libs} -ldl -lrt" ;; *kFreeBSD*) - libs="${libs} -lkvm -lfreebsd-glue" + libs="${libs} -lfreebsd-glue" + ;; + *NetBSD*) + libs="${libs} -lkvm" ;; *BSD*) - libs="${libs} -lkvm" ;; *SunOS*) uv_c_flags="${uv_c_flags} -D__EXTENSIONS__ -D_XOPEN_SOURCE=600"