summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml14
-rw-r--r--.gitlab/ci/configure_windows_vs_common.cmake1
-rw-r--r--.gitlab/ci/configure_windows_vs_common_ninja.cmake1
-rw-r--r--.gitlab/os-windows.yml4
-rw-r--r--Help/dev/maint.rst4
-rw-r--r--Help/manual/cmake.1.rst120
-rw-r--r--Help/release/dev/0-sample-topic.rst7
-rw-r--r--Help/release/index.rst2
-rw-r--r--Modules/GoogleTestAddTests.cmake9
-rw-r--r--Source/CMakeVersion.cmake6
-rw-r--r--Source/cmExportFileGenerator.cxx3
-rw-r--r--Tests/CMakeLists.txt104
-rw-r--r--Tests/RunCMake/CMakeLists.txt1
-rw-r--r--Tests/RunCMake/GoogleTest/GoogleTest-test1-stdout.txt4
-rw-r--r--Tests/RunCMake/GoogleTest/GoogleTest-test2-stdout.txt4
-rw-r--r--Tests/RunCMake/GoogleTest/fake_gtest.cpp1
-rw-r--r--Tests/RunCMake/PrecompileHeaders/RunCMakeTest.cmake3
-rw-r--r--Tests/RunCMake/pseudo_llvm-rc.c4
-rw-r--r--Utilities/Release/win/x86/cache-i386.txt3
-rw-r--r--Utilities/Release/win/x86/cache-x86_64.txt3
-rwxr-xr-xUtilities/Release/win/x86/test/test-ninja.bat1
-rwxr-xr-xUtilities/Release/win/x86/test/test-nmake.bat1
22 files changed, 147 insertions, 153 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d8d3a3626b..08fc107517 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -59,7 +59,7 @@ p:doc-package:
- .cmake_doc_artifacts
- .run_only_for_package
-u:source-package:
+.u:source-package:
extends:
- .rsync_upload_binary
- .run_only_for_package
@@ -77,7 +77,7 @@ b:help:master:
- .cmake_org_help
- .run_only_for_continuous_master
-u:help:master:
+.u:help:master:
extends:
- .rsync_upload_help
- .run_only_for_continuous_master
@@ -93,7 +93,7 @@ b:help:stage:
- .cmake_org_help
- .run_only_for_continuous_stage
-u:help:stage:
+.u:help:stage:
extends:
- .rsync_upload_help
- .run_only_for_continuous_stage
@@ -529,7 +529,7 @@ b:linux-x86_64-package:
needs:
- p:doc-package
-u:linux-x86_64-package:
+.u:linux-x86_64-package:
extends:
- .rsync_upload_binary
- .run_only_for_package
@@ -553,7 +553,7 @@ b:linux-aarch64-package:
needs:
- p:doc-package
-u:linux-aarch64-package:
+.u:linux-aarch64-package:
extends:
- .rsync_upload_binary
- .run_only_for_package
@@ -694,7 +694,7 @@ b:macos-package:
needs:
- p:doc-package
-u:macos-package:
+.u:macos-package:
extends:
- .rsync_upload_binary
- .run_only_for_package
@@ -717,7 +717,7 @@ b:macos10.10-package:
needs:
- p:doc-package
-u:macos10.10-package:
+.u:macos10.10-package:
extends:
- .rsync_upload_binary
- .run_only_for_package
diff --git a/.gitlab/ci/configure_windows_vs_common.cmake b/.gitlab/ci/configure_windows_vs_common.cmake
index 703f5348e4..962f03db9f 100644
--- a/.gitlab/ci/configure_windows_vs_common.cmake
+++ b/.gitlab/ci/configure_windows_vs_common.cmake
@@ -5,5 +5,6 @@ set(CMake_TEST_FindOpenMP_C "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenMP_CXX "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenMP_Fortran "OFF" CACHE BOOL "")
set(CMake_TEST_Java OFF CACHE BOOL "")
+set(CMake_TEST_MFC "ON" CACHE BOOL "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")
diff --git a/.gitlab/ci/configure_windows_vs_common_ninja.cmake b/.gitlab/ci/configure_windows_vs_common_ninja.cmake
index ae73f8352c..1ae1a66bd4 100644
--- a/.gitlab/ci/configure_windows_vs_common_ninja.cmake
+++ b/.gitlab/ci/configure_windows_vs_common_ninja.cmake
@@ -8,5 +8,6 @@ set(CMake_TEST_FindOpenMP_CXX "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenMP_Fortran "OFF" CACHE BOOL "")
set(CMake_TEST_IPO_WORKS_C "ON" CACHE BOOL "")
set(CMake_TEST_IPO_WORKS_CXX "ON" CACHE BOOL "")
+set(CMake_TEST_MFC "ON" CACHE BOOL "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_common.cmake")
diff --git a/.gitlab/os-windows.yml b/.gitlab/os-windows.yml
index e15bbe9e8f..2bce8c876e 100644
--- a/.gitlab/os-windows.yml
+++ b/.gitlab/os-windows.yml
@@ -21,7 +21,7 @@
# could run at the same time, so we drop it.
GIT_CLONE_PATH: "$CI_BUILDS_DIR\\cmake ci"
-.windows_ninja:
+.windows_build_ninja:
extends: .windows_build
variables:
@@ -39,7 +39,7 @@
.windows_vs2022_x64_ninja:
extends:
- - .windows_ninja
+ - .windows_build_ninja
- .windows_vcvarsall_vs2022_x64
variables:
diff --git a/Help/dev/maint.rst b/Help/dev/maint.rst
index 54d627dd52..151ea5a1b2 100644
--- a/Help/dev/maint.rst
+++ b/Help/dev/maint.rst
@@ -270,8 +270,8 @@ Update ``Source/CMakeVersion.cmake`` to set the version to
set(CMake_VERSION_PATCH 0)
set(CMake_VERSION_RC 0)
-Update uses of ``DEVEL_CMAKE_VERSION`` in the source tree to mention the
-actual version number:
+Replace uses of ``DEVEL_CMAKE_VERSION`` in the source tree with
+the literal release version number string ``"$major.$minor.0"``:
.. code-block:: shell
diff --git a/Help/manual/cmake.1.rst b/Help/manual/cmake.1.rst
index 1463f0a23f..c2b4d68e7b 100644
--- a/Help/manual/cmake.1.rst
+++ b/Help/manual/cmake.1.rst
@@ -585,6 +585,8 @@ Run ``cmake -E`` or ``cmake -E help`` for a summary of commands.
Available commands are:
``capabilities``
+ .. versionadded:: 3.7
+
Report cmake capabilities in JSON format. The output is a JSON object
with the following keys:
@@ -645,6 +647,8 @@ Available commands are:
Always false since CMake 3.20.
``cat <files>...``
+ .. versionadded:: 3.18
+
Concatenate files and print on the standard output.
``chdir <dir> <cmd> [<arg>...]``
@@ -653,8 +657,11 @@ Available commands are:
``compare_files [--ignore-eol] <file1> <file2>``
Check if ``<file1>`` is same as ``<file2>``. If files are the same,
then returns ``0``, if not it returns ``1``. In case of invalid
- arguments, it returns 2. The ``--ignore-eol`` option
- implies line-wise comparison and ignores LF/CRLF differences.
+ arguments, it returns 2.
+
+ .. versionadded:: 3.14
+ The ``--ignore-eol`` option implies line-wise comparison and ignores
+ LF/CRLF differences.
``copy <file>... <destination>``
Copy files to ``<destination>`` (either file or directory).
@@ -663,11 +670,21 @@ Available commands are:
``copy`` does follow symlinks. That means it does not copy symlinks,
but the files or directories it point to.
+ .. versionadded:: 3.5
+ Support for multiple input files.
+
``copy_directory <dir>... <destination>``
Copy content of ``<dir>...`` directories to ``<destination>`` directory.
If ``<destination>`` directory does not exist it will be created.
``copy_directory`` does follow symlinks.
+ .. versionadded:: 3.5
+ Support for multiple input directories.
+
+ .. versionadded:: 3.15
+ The command now fails when the source directory does not exist.
+ Previously it succeeded by creating an empty destination directory.
+
``copy_if_different <file>... <destination>``
Copy files to ``<destination>`` (either file or directory) if
they have changed.
@@ -675,13 +692,21 @@ Available commands are:
directory and it must exist.
``copy_if_different`` does follow symlinks.
+ .. versionadded:: 3.5
+ Support for multiple input files.
+
``create_symlink <old> <new>``
Create a symbolic link ``<new>`` naming ``<old>``.
+ .. versionadded:: 3.13
+ Support for creating symlinks on Windows.
+
.. note::
Path to where ``<new>`` symbolic link will be created has to exist beforehand.
``create_hardlink <old> <new>``
+ .. versionadded:: 3.19
+
Create a hard link ``<new>`` naming ``<old>``.
.. note::
@@ -695,12 +720,16 @@ Available commands are:
Displays arguments as text but no new line.
``env [--unset=NAME]... [NAME=VALUE]... COMMAND [ARG]...``
+ .. versionadded:: 3.1
+
Run command in a modified environment.
``environment``
Display the current environment variables.
``false``
+ .. versionadded:: 3.16
+
Do nothing, with an exit code of 1.
``make_directory <dir>...``
@@ -708,6 +737,9 @@ Available commands are:
directories too. If a directory already exists it will be
silently ignored.
+ .. versionadded:: 3.5
+ Support for multiple input directories.
+
``md5sum <file>...``
Create MD5 checksum of files in ``md5sum`` compatible format::
@@ -715,30 +747,40 @@ Available commands are:
052f86c15bbde68af55c7f7b340ab639 file2.txt
``sha1sum <file>...``
+ .. versionadded:: 3.10
+
Create SHA1 checksum of files in ``sha1sum`` compatible format::
4bb7932a29e6f73c97bb9272f2bdc393122f86e0 file1.txt
1df4c8f318665f9a5f2ed38f55adadb7ef9f559c file2.txt
``sha224sum <file>...``
+ .. versionadded:: 3.10
+
Create SHA224 checksum of files in ``sha224sum`` compatible format::
b9b9346bc8437bbda630b0b7ddfc5ea9ca157546dbbf4c613192f930 file1.txt
6dfbe55f4d2edc5fe5c9197bca51ceaaf824e48eba0cc453088aee24 file2.txt
``sha256sum <file>...``
+ .. versionadded:: 3.10
+
Create SHA256 checksum of files in ``sha256sum`` compatible format::
76713b23615d31680afeb0e9efe94d47d3d4229191198bb46d7485f9cb191acc file1.txt
15b682ead6c12dedb1baf91231e1e89cfc7974b3787c1e2e01b986bffadae0ea file2.txt
``sha384sum <file>...``
+ .. versionadded:: 3.10
+
Create SHA384 checksum of files in ``sha384sum`` compatible format::
acc049fedc091a22f5f2ce39a43b9057fd93c910e9afd76a6411a28a8f2b8a12c73d7129e292f94fc0329c309df49434 file1.txt
668ddeb108710d271ee21c0f3acbd6a7517e2b78f9181c6a2ff3b8943af92b0195dcb7cce48aa3e17893173c0a39e23d file2.txt
``sha512sum <file>...``
+ .. versionadded:: 3.10
+
Create SHA512 checksum of files in ``sha512sum`` compatible format::
2a78d7a6c5328cfb1467c63beac8ff21794213901eaadafd48e7800289afbc08e5fb3e86aa31116c945ee3d7bf2a6194489ec6101051083d1108defc8e1dba89 file1.txt
@@ -761,16 +803,24 @@ Available commands are:
.. deprecated:: 3.17
Remove ``<dir>`` directories and their contents. If a directory does
- not exist it will be silently ignored. If ``<dir>`` is a symlink to
- a directory, just the symlink will be removed.
+ not exist it will be silently ignored.
Use ``rm`` instead.
+ .. versionadded:: 3.15
+ Support for multiple directories.
+
+ .. versionadded:: 3.16
+ If ``<dir>`` is a symlink to a directory, just the symlink will be removed.
+
``rename <oldname> <newname>``
Rename a file or directory (on one volume). If file with the ``<newname>`` name
already exists, then it will be silently replaced.
``rm [-rRf] <file> <dir>...``
- Remove the files ``<file>`` or directories ``dir``.
+ .. versionadded:: 3.17
+
+ Remove the files ``<file>`` or directories ``<dir>``.
+
Use ``-r`` or ``-R`` to remove directories and their contents recursively.
If any of the listed files/directories do not exist, the command returns a
non-zero exit code, but no message is logged. The ``-f`` option changes
@@ -781,6 +831,8 @@ Available commands are:
Launch :manual:`cmake-server(7)` mode.
``sleep <number>...``
+ .. versionadded:: 3.0
+
Sleep for given number of seconds.
``tar [cxt][vf][zjJ] file.tar [<options>] [--] [<pathname>...]``
@@ -789,45 +841,85 @@ Available commands are:
``c``
Create a new archive containing the specified files.
If used, the ``<pathname>...`` argument is mandatory.
+
``x``
Extract to disk from the archive.
- The ``<pathname>...`` argument could be used to extract only selected files
- or directories.
- When extracting selected files or directories, you must provide their exact
- names including the path, as printed by list (``-t``).
+
+ .. versionadded:: 3.15
+ The ``<pathname>...`` argument could be used to extract only selected files
+ or directories.
+ When extracting selected files or directories, you must provide their exact
+ names including the path, as printed by list (``-t``).
+
``t``
List archive contents.
- The ``<pathname>...`` argument could be used to list only selected files
- or directories.
+
+ .. versionadded:: 3.15
+ The ``<pathname>...`` argument could be used to list only selected files
+ or directories.
+
``v``
Produce verbose output.
+
``z``
Compress the resulting archive with gzip.
+
``j``
Compress the resulting archive with bzip2.
+
``J``
+ .. versionadded:: 3.1
+
Compress the resulting archive with XZ.
+
``--zstd``
+ .. versionadded:: 3.15
+
Compress the resulting archive with Zstandard.
+
``--files-from=<file>``
+ .. versionadded:: 3.1
+
Read file names from the given file, one per line.
Blank lines are ignored. Lines may not start in ``-``
except for ``--add-file=<name>`` to add files whose
names start in ``-``.
+
``--format=<format>``
+ .. versionadded:: 3.3
+
Specify the format of the archive to be created.
Supported formats are: ``7zip``, ``gnutar``, ``pax``,
``paxr`` (restricted pax, default), and ``zip``.
+
``--mtime=<date>``
+ .. versionadded:: 3.1
+
Specify modification time recorded in tarball entries.
+
``--``
+ .. versionadded:: 3.1
+
Stop interpreting options and treat all remaining arguments
as file names, even if they start with ``-``.
+ .. versionadded:: 3.1
+ LZMA (7zip) support.
+
+ .. versionadded:: 3.15
+ The command now continues adding files to an archive even if some of the
+ files are not readable. This behavior is more consistent with the classic
+ ``tar`` tool. The command now also parses all flags, and if an invalid flag
+ was provided, a warning is issued.
``time <command> [<args>...]``
Run command and display elapsed time.
+ .. versionadded:: 3.5
+ The command now properly passes arguments with spaces or special characters
+ through to the child process. This may break scripts that worked around the
+ bug with their own extra quoting or escaping.
+
``touch <file>...``
Creates ``<file>`` if file do not exist.
If ``<file>`` exists, it is changing ``<file>`` access and modification times.
@@ -837,6 +929,8 @@ Available commands are:
not exist it will be silently ignored.
``true``
+ .. versionadded:: 3.16
+
Do nothing, with an exit code of 0.
Windows-specific Command-Line Tools
@@ -848,10 +942,14 @@ The following ``cmake -E`` commands are available only on Windows:
Delete Windows registry value.
``env_vs8_wince <sdkname>``
+ .. versionadded:: 3.2
+
Displays a batch file which sets the environment for the provided
Windows CE SDK installed in VS2005.
``env_vs9_wince <sdkname>``
+ .. versionadded:: 3.2
+
Displays a batch file which sets the environment for the provided
Windows CE SDK installed in VS2008.
diff --git a/Help/release/dev/0-sample-topic.rst b/Help/release/dev/0-sample-topic.rst
deleted file mode 100644
index e4cc01e23f..0000000000
--- a/Help/release/dev/0-sample-topic.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-0-sample-topic
---------------
-
-* This is a sample release note for the change in a topic.
- Developers should add similar notes for each topic branch
- making a noteworthy change. Each document should be named
- and titled to match the topic name to avoid merge conflicts.
diff --git a/Help/release/index.rst b/Help/release/index.rst
index ad33705371..ee677a363f 100644
--- a/Help/release/index.rst
+++ b/Help/release/index.rst
@@ -7,8 +7,6 @@ CMake Release Notes
This file should include the adjacent "dev.txt" file
in development versions but not in release versions.
-.. include:: dev.txt
-
Releases
========
diff --git a/Modules/GoogleTestAddTests.cmake b/Modules/GoogleTestAddTests.cmake
index 7043b2b5cd..a10b5d09bc 100644
--- a/Modules/GoogleTestAddTests.cmake
+++ b/Modules/GoogleTestAddTests.cmake
@@ -142,15 +142,14 @@ function(gtest_discover_tests_impl)
endif()
string(REGEX REPLACE "^DISABLED_" "" pretty_suite "${pretty_suite}")
else()
- # Test name; strip spaces and comments to get just the name...
- string(REGEX REPLACE " +" "" test "${line}")
+ string(STRIP "${line}" test)
if(test MATCHES "#" AND NOT _NO_PRETTY_VALUES)
- string(REGEX REPLACE "/[0-9]+#GetParam..=" "/" pretty_test "${test}")
+ string(REGEX REPLACE "/[0-9]+[ #]+GetParam\\(\\) = " "/" pretty_test "${test}")
else()
- string(REGEX REPLACE "#.*" "" pretty_test "${test}")
+ string(REGEX REPLACE " +#.*" "" pretty_test "${test}")
endif()
string(REGEX REPLACE "^DISABLED_" "" pretty_test "${pretty_test}")
- string(REGEX REPLACE "#.*" "" test "${test}")
+ string(REGEX REPLACE " +#.*" "" test "${test}")
if(NOT "${_TEST_XML_OUTPUT_DIR}" STREQUAL "")
set(TEST_XML_OUTPUT_PARAM "--gtest_output=xml:${_TEST_XML_OUTPUT_DIR}/${prefix}${suite}.${test}${suffix}.xml")
else()
diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake
index 3fc3a66a82..c599863df1 100644
--- a/Source/CMakeVersion.cmake
+++ b/Source/CMakeVersion.cmake
@@ -1,8 +1,8 @@
# CMake version number components.
set(CMake_VERSION_MAJOR 3)
-set(CMake_VERSION_MINOR 22)
-set(CMake_VERSION_PATCH 20220203)
-#set(CMake_VERSION_RC 0)
+set(CMake_VERSION_MINOR 23)
+set(CMake_VERSION_PATCH 0)
+set(CMake_VERSION_RC 0)
set(CMake_VERSION_IS_DIRTY 0)
# Start with the full version number used in tags. It has no dev info.
diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx
index 412d1040fd..2d80f0ed8b 100644
--- a/Source/cmExportFileGenerator.cxx
+++ b/Source/cmExportFileGenerator.cxx
@@ -1272,8 +1272,7 @@ void cmExportFileGenerator::GenerateTargetFileSets(cmGeneratorTarget* gte,
auto interfaceFileSets = gte->Target->GetAllInterfaceFileSets();
if (!interfaceFileSets.empty()) {
std::string targetName = cmStrCat(this->Namespace, gte->GetExportName());
- os << "if(NOT CMAKE_VERSION VERSION_LESS \"" << DEVEL_CMAKE_VERSION(3, 23)
- << "\")\n"
+ os << "if(NOT CMAKE_VERSION VERSION_LESS \"3.23.0\")\n"
" target_sources("
<< targetName << "\n";
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index da6219e763..6946ffbb86 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -2107,109 +2107,7 @@ if(BUILD_TESTING)
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/MakeClean")
endif()
- if(NOT DEFINED CTEST_RUN_MFC)
- set(CTEST_RUN_MFC OFF)
-
- if(MSVC)
- set(CTEST_RUN_MFC ON)
-
- # Look for evidence that this is a VCExpress build. If so, avoid
- # the MFC test by default.
- string(TOLOWER "${CMAKE_MAKE_PROGRAM}" mkprog)
- if(mkprog MATCHES "vcexpress")
- message(STATUS
- "CMAKE_MAKE_PROGRAM indicates vcexpress, avoiding MFC test")
- set(CTEST_RUN_MFC OFF)
- endif()
-
- # Since MSBuild might also be the "makeprogram" for a VCExpress
- # build tree, use one more heuristic, too. The string representing
- # the .vcproj file type contains "VCExpress" on machines where an
- # express edition of VS was installed last:
- if(CTEST_RUN_MFC)
- execute_process(COMMAND cmd /c assoc .vcproj
- OUTPUT_STRIP_TRAILING_WHITESPACE
- OUTPUT_VARIABLE ov)
- if(ov MATCHES "VCExpress")
- message(STATUS
- ".vcproj file association indicates VCExpress, avoiding MFC test")
- set(CTEST_RUN_MFC OFF)
- elseif( NOT ov )
- message(STATUS
- ".vcproj has no file association, avoiding MFC test")
- set(CTEST_RUN_MFC OFF)
- endif()
- endif()
-
- if(CTEST_RUN_MFC)
- # For the Watcom WMake generator, avoid the MFC test by default.
- if("${CMAKE_GENERATOR}" MATCHES "WMake")
- message(STATUS
- "using the Watcom WMake generator, avoiding MFC test")
- set(CTEST_RUN_MFC OFF)
- elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "IntelLLVM")
- # clang-cl cannot deal with implicit dependencies in UTF16 files
- # (see #18311). IntelLLVM inherits this behavior from Clang.
- # TODO: maybe clang should also skip the MFC test
- message(STATUS
- "using generator other than Visual Studio with clang-cl, avoiding MFC test")
- set(CTEST_RUN_MFC OFF)
- endif()
- endif()
-
- # Last resort, after quick checks are done. Do a try_compile, and avoid
- # the MFC test if the simplest possible MFC app cannot be compiled.
- if(CTEST_RUN_MFC AND NOT DEFINED HAVE_MFC)
- configure_file(
- ${CMAKE_CURRENT_SOURCE_DIR}/MFC/try_compile/CMakeLists.txt
- ${CMAKE_CURRENT_BINARY_DIR}/MFC/try_compile/CMakeLists.txt
- COPYONLY
- )
- configure_file(
- ${CMAKE_CURRENT_SOURCE_DIR}/MFC/mfc1/stdafx.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/MFC/try_compile/stdafx.cpp
- COPYONLY
- )
- configure_file(
- ${CMAKE_CURRENT_SOURCE_DIR}/MFC/mfc1/stdafx.h
- ${CMAKE_CURRENT_BINARY_DIR}/MFC/try_compile/stdafx.h
- COPYONLY
- )
-
- message(STATUS "Looking for MFC")
-
- try_compile(HAVE_MFC
- ${CMAKE_CURRENT_BINARY_DIR}/MFC/try_compile/build
- ${CMAKE_CURRENT_BINARY_DIR}/MFC/try_compile
- try_compile_mfc
- OUTPUT_VARIABLE HAVE_MFC_OUTPUT)
-
- if(HAVE_MFC)
- message(STATUS "Looking for MFC - found")
- set(HAVE_MFC 1 CACHE INTERNAL "Have MFC")
- file(APPEND
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if MFC exists passed with the following output:\n"
- "${HAVE_MFC_OUTPUT}\n\n")
- else()
- message(STATUS "Looking for MFC - not found")
- set(HAVE_MFC "" CACHE INTERNAL "Have MFC")
- file(APPEND
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if MFC exists failed with the following output:\n"
- "${HAVE_MFC_OUTPUT}\n\n")
- endif()
- endif()
-
- if(CTEST_RUN_MFC AND NOT HAVE_MFC)
- message(STATUS
- "cannot compile simplest ever MFC app, avoiding MFC test")
- set(CTEST_RUN_MFC OFF)
- endif()
- endif()
- endif()
-
- if(CTEST_RUN_MFC)
+ if(CMake_TEST_MFC)
add_test(MFC ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/MFC"
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index e12ffba0e4..1d7e632a1e 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -913,6 +913,7 @@ endif()
add_RunCMake_test("CTestCommandExpandLists")
add_RunCMake_test(PrecompileHeaders -DCMAKE_C_COMPILER_ID=${CMAKE_C_COMPILER_ID}
+ -DCMAKE_C_SIMULATE_ID=${CMAKE_C_SIMULATE_ID}
-DCMAKE_C_COMPILER_VERSION=${CMAKE_C_COMPILER_VERSION})
add_RunCMake_test("UnityBuild")
diff --git a/Tests/RunCMake/GoogleTest/GoogleTest-test1-stdout.txt b/Tests/RunCMake/GoogleTest/GoogleTest-test1-stdout.txt
index 9c0b77533f..01b39c3585 100644
--- a/Tests/RunCMake/GoogleTest/GoogleTest-test1-stdout.txt
+++ b/Tests/RunCMake/GoogleTest/GoogleTest-test1-stdout.txt
@@ -49,6 +49,8 @@ Test project .*
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:param/special\.case/"__osbtext"!1 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:param/special\.case/"__csb___text"!1
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:param/special\.case/"__csb___text"!1 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:param/special\.case/"S o m e "!1
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:param/special\.case/"S o m e "!1 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.param/special\.case/"semicolon;"!1
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.param/special\.case/"semicolon;"!1 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.param/special\.case/"backslash\\"!1
@@ -63,6 +65,8 @@ Test project .*
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.param/special\.case/"__osbtext"!1 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.param/special\.case/"__csb___text"!1
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.param/special\.case/"__csb___text"!1 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:ns\.param/special\.case/"S o m e "!1
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.param/special\.case/"S o m e "!1 \.+ +Passed +[0-9.]+ sec
100% tests passed, 0 tests failed out of [0-9]+
diff --git a/Tests/RunCMake/GoogleTest/GoogleTest-test2-stdout.txt b/Tests/RunCMake/GoogleTest/GoogleTest-test2-stdout.txt
index b0210c650c..796e20c4e8 100644
--- a/Tests/RunCMake/GoogleTest/GoogleTest-test2-stdout.txt
+++ b/Tests/RunCMake/GoogleTest/GoogleTest-test2-stdout.txt
@@ -49,6 +49,8 @@ Test project .*
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:param/special\.case/"__osbtext"!2 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:param/special\.case/"__csb___text"!2
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:param/special\.case/"__csb___text"!2 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:param/special\.case/"S o m e "!2
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:param/special\.case/"S o m e "!2 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.param/special\.case/"semicolon;"!2
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.param/special\.case/"semicolon;"!2 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.param/special\.case/"backslash\\"!2
@@ -63,6 +65,8 @@ Test project .*
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.param/special\.case/"__osbtext"!2 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:ns\.param/special\.case/"__csb___text"!2
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.param/special\.case/"__csb___text"!2 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:ns\.param/special\.case/"S o m e "!2
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.param/special\.case/"S o m e "!2 \.+ +Passed +[0-9.]+ sec
100% tests passed, 0 tests failed out of [0-9]+
diff --git a/Tests/RunCMake/GoogleTest/fake_gtest.cpp b/Tests/RunCMake/GoogleTest/fake_gtest.cpp
index aa6468ccd5..183e1062e8 100644
--- a/Tests/RunCMake/GoogleTest/fake_gtest.cpp
+++ b/Tests/RunCMake/GoogleTest/fake_gtest.cpp
@@ -61,6 +61,7 @@ int main(int argc, char** argv)
std::cout << " case/4 # GetParam() = \"]]=]\"" << std::endl;
std::cout << " case/5 # GetParam() = \"__osbtext\"" << std::endl;
std::cout << " case/6 # GetParam() = \"__csb___text\"" << std::endl;
+ std::cout << " case/7 # GetParam() = \"S o m e \"" << std::endl;
}
}
return 0;
diff --git a/Tests/RunCMake/PrecompileHeaders/RunCMakeTest.cmake b/Tests/RunCMake/PrecompileHeaders/RunCMakeTest.cmake
index ca5b52e87c..a7b3126fda 100644
--- a/Tests/RunCMake/PrecompileHeaders/RunCMakeTest.cmake
+++ b/Tests/RunCMake/PrecompileHeaders/RunCMakeTest.cmake
@@ -23,7 +23,8 @@ if(RunCMake_GENERATOR MATCHES "Make|Ninja")
run_cmake(PchWarnInvalid)
if(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND
- CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 11.0.0)
+ CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 11.0.0 AND
+ NOT CMAKE_C_SIMULATE_ID STREQUAL "MSVC")
run_cmake(PchInstantiateTemplates)
endif()
endif()
diff --git a/Tests/RunCMake/pseudo_llvm-rc.c b/Tests/RunCMake/pseudo_llvm-rc.c
index 7acb2a3cfe..65f0a9e12a 100644
--- a/Tests/RunCMake/pseudo_llvm-rc.c
+++ b/Tests/RunCMake/pseudo_llvm-rc.c
@@ -1,3 +1,7 @@
+#ifndef _CRT_SECURE_NO_WARNINGS
+# define _CRT_SECURE_NO_WARNINGS
+#endif
+
#include <stdio.h>
#include <string.h>
diff --git a/Utilities/Release/win/x86/cache-i386.txt b/Utilities/Release/win/x86/cache-i386.txt
index 54a45d8fc4..2dcd4dd3a3 100644
--- a/Utilities/Release/win/x86/cache-i386.txt
+++ b/Utilities/Release/win/x86/cache-i386.txt
@@ -29,9 +29,6 @@ QCOLLECTIONGENERATOR_EXECUTABLE:PATH=C:/qt-i386/bin/qhelpgenerator.exe
# No bootstrap with MSVC tools.
CMAKE_SKIP_BOOTSTRAP_TEST:STRING=TRUE
-# No MFC in base image.
-CTEST_RUN_MFC:BOOL=OFF
-
# No Fortran compiler.
CMAKE_Fortran_COMPILER:FILEPATH=FALSE
diff --git a/Utilities/Release/win/x86/cache-x86_64.txt b/Utilities/Release/win/x86/cache-x86_64.txt
index 0b78c72b9c..3c5593e15b 100644
--- a/Utilities/Release/win/x86/cache-x86_64.txt
+++ b/Utilities/Release/win/x86/cache-x86_64.txt
@@ -29,9 +29,6 @@ QCOLLECTIONGENERATOR_EXECUTABLE:PATH=C:/qt-x86_64/bin/qhelpgenerator.exe
# No bootstrap with MSVC tools.
CMAKE_SKIP_BOOTSTRAP_TEST:STRING=TRUE
-# No MFC in base image.
-CTEST_RUN_MFC:BOOL=OFF
-
# No Fortran compiler.
CMAKE_Fortran_COMPILER:FILEPATH=FALSE
diff --git a/Utilities/Release/win/x86/test/test-ninja.bat b/Utilities/Release/win/x86/test/test-ninja.bat
index b8347efc62..fb43589128 100755
--- a/Utilities/Release/win/x86/test/test-ninja.bat
+++ b/Utilities/Release/win/x86/test/test-ninja.bat
@@ -12,7 +12,6 @@ cd \cmake\src\cmake-ninja && ^
@echo CMake_TEST_IPO_WORKS_C:BOOL=ON
@echo CMake_TEST_IPO_WORKS_CXX:BOOL=ON
@echo CMake_TEST_NO_NETWORK:BOOL=ON
- @echo CTEST_RUN_MFC:BOOL=OFF
) && ^
cmake ..\cmake -DCMake_TEST_HOST_CMAKE=1 -G "Ninja" && ^
ninja && ^
diff --git a/Utilities/Release/win/x86/test/test-nmake.bat b/Utilities/Release/win/x86/test/test-nmake.bat
index 5008711ac4..9d7e447891 100755
--- a/Utilities/Release/win/x86/test/test-nmake.bat
+++ b/Utilities/Release/win/x86/test/test-nmake.bat
@@ -12,7 +12,6 @@ cd \cmake\src\cmake-nmake && ^
@echo CMake_TEST_IPO_WORKS_C:BOOL=ON
@echo CMake_TEST_IPO_WORKS_CXX:BOOL=ON
@echo CMake_TEST_NO_NETWORK:BOOL=ON
- @echo CTEST_RUN_MFC:BOOL=OFF
) && ^
cmake ..\cmake -DCMake_TEST_HOST_CMAKE=1 -G "NMake Makefiles" && ^
nmake && ^