Commit Graph

5276 Commits

Author SHA1 Message Date
Brad King 35fa80a498 Merge topic 'clang-cl-showIncludes'
0d933fc0d9 Ninja: Update showIncludes prefix detection for clang-cl 18
a88acb0a41 Tests/RunCMake/Ninja: Rename showIncludes case for clang-cl <= 17

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9229
2024-02-08 09:40:54 -05:00
Martin Storsjö 0d933fc0d9 Ninja: Update showIncludes prefix detection for clang-cl 18
Since commit LLVM/Clang commit `5523fefb01c2` ([clang][lex] Use
preferred path separator in includer-relative lookup, 2023-09-08), part
of the upcoming 18.x release, the output format of the showIncludes flag
has changed, where it now prints paths with double backslashes:

    Note: including file: .\\foo.h

Previously, we expected to see the path name in the form "./foo.h".

Extend the regex to match a path name starting with `.\`, in addition to
the existing matched patterns.
2024-02-07 09:38:14 -05:00
Brad King a88acb0a41 Tests/RunCMake/Ninja: Rename showIncludes case for clang-cl <= 17
Make room for a new case for clang-cl 18.
2024-02-07 09:31:42 -05:00
Brad King 9c5e981e60 Add deprecation warnings for policies CMP0128 and below
The OLD behaviors of all policies are deprecated, but only by
documentation.  Add an explicit deprecation diagnostic for policies
introduced in CMake 3.22 and below to encourage projects to port
away from setting policies to OLD.
2024-02-06 17:07:09 -05:00
Brad King 278ee265a1 Merge topic 'findopengl-glu-include-dir'
aebebf72df FindOpenGL: Add support for a separate GLU include directory

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Alex <leha-bot@yandex.ru>
Merge-request: !9216
2024-02-06 08:53:20 -05:00
Jordan Williams aebebf72df FindOpenGL: Add support for a separate GLU include directory
Add a OPENGL_GLU_INCLUDE_DIR cache variable for `GL/glu.h` and attach it
as an include directory to the `OpenGL::GLU` target.  Also add a
`OPENGL_INCLUDE_DIRS` result variable to list all include directories.
Account for the GLU header when deciding whether GLU is found.

Fixes: #25627
2024-02-05 14:06:06 -05:00
Brad King 64e5105312 Tests/RunCMake: Add copyright and license notices to test infrastructure 2024-02-05 12:39:56 -05:00
Brad King 666d2e6451 Merge topic 'restore-pch-with-unity'
30829da506 Unity: Clarify source comments on unity build transformation
87bf1c6c33 Merge branch 'unity-after-compile-features' into restore-pch-with-unity
df08c37a42 cmGlobalGenerator: Add unity/pch sources after computing compile features
004c3c3986 Tests: Add case covering PCH in a unity build

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !9215
2024-02-05 09:57:19 -05:00
Brad King cc0c31e79f Merge topic 'GoogleTest-test-launcher'
f875c479f5 GoogleTest: Honor TEST_LAUNCHER in gtest_discover_tests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9174
2024-02-02 10:57:55 -05:00
Brad King 1bbec7927d Merge topic 'update-curl'
01a9325027 Tests: Match curl 8.6.0 error in RunCMake.ctest_submit FailDrop-https case
e28ea90c1b Merge branch 'upstream-curl' into update-curl
851cc904a0 curl 2024-01-31 (5ce164e0)
692463d271 curl: Update script to get curl 8.6.0

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9207
2024-02-02 10:41:04 -05:00
Brad King 87bf1c6c33 Merge branch 'unity-after-compile-features' into restore-pch-with-unity
Replace commit 76b5383123 (cmGlobalGenerator: add unity sources after
computing target compile features, 2024-01-01, v3.28.2~17^2~1) with an
alternative change.  This merge commit resolves conflicts such that
future `git blame` calls will follow the second parent for the relevant
lines and pretend the replaced commit never existed.

Fixes: #25650
2024-02-02 09:43:15 -05:00
Brad King 004c3c3986 Tests: Add case covering PCH in a unity build
Issue: #25650
2024-02-02 08:14:21 -05:00
Brad King 01a9325027 Tests: Match curl 8.6.0 error in RunCMake.ctest_submit FailDrop-https case 2024-02-01 08:09:21 -05:00
Brad King 0a5d29159e Tests: Add "Fortran" test label
With this, `ctest -L Fortran` will run only tests covering Fortran.
2024-01-31 11:27:53 -05:00
Brad King 16b1f0c3e9 Merge topic 'env-cmake-install-prefix'
06af18b9db cmake: Allow CMAKE_INSTALL_PREFIX to be set by environment variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9200
2024-01-31 09:03:21 -05:00
Ralf Habacker f875c479f5 GoogleTest: Honor TEST_LAUNCHER in gtest_discover_tests
We run test executables to discover tests.  Use the same launchers that
are used to run the tests.  We already handle `CROSSCOMPILING_EMULATOR`.
Update the logic to account for the `TEST_LAUNCHER` property added by
commit 1ec0372ed4 (add_test: Optionally use a launcher for tests running
in-project targets, 2023-11-11), and for the `CROSSCOMPILING_EMULATOR`
behavior change in commit ca5a300d7f (add_test: Honor
CROSSCOMPILING_EMULATOR only when cross-compiling, 2023-11-02).

Fixes: #25603
Co-authored-by: Brad King <brad.king@kitware.com>
Signed-off-by: Ralf Habacker <ralf.habacker@freenet.de>
2024-01-31 08:33:15 -05:00
Silvio Traversaro 06af18b9db cmake: Allow CMAKE_INSTALL_PREFIX to be set by environment variable
Fixes: #25023
2024-01-30 11:44:45 -05:00
Brad King 03206842ff Merge topic 'test-define-prop'
6c3311d53b Help: Document property redefinition semantics
7aacae4e0e Tests: Add unit tests for property redefinition

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9136
2024-01-30 11:31:10 -05:00
Brad King 622a498477 Merge topic 'test-launcher-emulator-genex'
13ece67a58 Add genex support to TEST_LAUNCHER and CROSSCOMPILING_EMULATOR
b9ad73fcb2 cmTestGenerator: De-duplicate TEST_LAUNCHER and CROSSCOMPILING_EMULATOR impl

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9198
2024-01-29 10:50:34 -05:00
Brad King d377ccbf67 Merge topic 'productbuild-domains-policy'
339ae33e55 CPack: Change CPACK_PRODUCTBUILD_DOMAINS default to true (CMP0161)
4e7f2397e4 CPack: Clear temporary variable after it is no longer needed

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9197
2024-01-29 10:36:22 -05:00
Brad King 13ece67a58 Add genex support to TEST_LAUNCHER and CROSSCOMPILING_EMULATOR
Evaluate generator expressions in these properties, as they apply to
`add_test`, `add_custom_command`, and `add_custom_target`.

The `CMAKE_CROSSCOMPILING_EMULATOR` variable's `try_run` behavior occurs
at configure time and so cannot support generator expressions.
2024-01-29 10:30:24 -05:00
FeRD (Frank Dana) 7aacae4e0e Tests: Add unit tests for property redefinition
From reading `Source/cmDefinePropertyCommand.cxx` and
`Source/cmPropertyDefinition.cxx`, attempts to use `define_property()`
to redefine an existing property will be silently ignored.
Once a property is defined, it cannot be redefined.

Add some unit tests to confirm this behavior of `define_property()`
remains as expected based on the current implementation.
2024-01-29 05:23:37 -05:00
Brad King f434d650ee Merge topic 'test-launcher-emulator'
fb766ff638 Tests: Improve RunCMake.add_test TEST_LAUNCHER coverage
c5b58b0842 Tests: Improve RunCMake.add_test error formatting
b440e0af3f Tests: Improve RunCMake.CrosscompilingEmulator coverage
54edf3471e Tests: Improve RunCMake.CrosscompilingEmulator error formatting
2b5447d4a8 Tests: Shorten RunCMake.CrosscompilingEmulator executable names
10f906106e Tests: Teach pseudo_emulator helper to pass by default

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9192
2024-01-28 09:49:08 -05:00
Craig Scott 339ae33e55 CPack: Change CPACK_PRODUCTBUILD_DOMAINS default to true (CMP0161)
Fixes: #23351
2024-01-28 21:09:12 +11:00
Brad King fb766ff638 Tests: Improve RunCMake.add_test TEST_LAUNCHER coverage
Verify that ctest actually runs the test command lines as expected.
2024-01-27 11:34:35 -05:00
Brad King c5b58b0842 Tests: Improve RunCMake.add_test error formatting 2024-01-27 11:34:35 -05:00
Brad King b440e0af3f Tests: Improve RunCMake.CrosscompilingEmulator coverage
Verify that ctest actually runs the test command lines as expected.
2024-01-27 11:34:35 -05:00
Brad King 54edf3471e Tests: Improve RunCMake.CrosscompilingEmulator error formatting 2024-01-27 10:01:18 -05:00
Brad King 2b5447d4a8 Tests: Shorten RunCMake.CrosscompilingEmulator executable names
Also switch to pure C.
2024-01-27 09:57:48 -05:00
Brad King 10f906106e Tests: Teach pseudo_emulator helper to pass by default 2024-01-27 09:50:43 -05:00
Brad King d9b9f63083 Merge topic 'ctest-tests-from-file'
701029726f ctest_test: add options INCLUDE_FROM_FILE and EXCLUDE_FROM_FILE
dbacc1d5a8 ctest: add command line option to exclude tests listed in a given file
022f20f663 ctest: add command line option to run the tests listed in a given file

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Alex <leha-bot@yandex.ru>
Merge-request: !9128
2024-01-26 10:14:58 -05:00
Alex Neundorf 701029726f ctest_test: add options INCLUDE_FROM_FILE and EXCLUDE_FROM_FILE
These options can be used to specify files which can be used
to restrict the set of tests that will be executed.

Fixes: #25455
2024-01-25 12:38:04 -05:00
Alex Neundorf dbacc1d5a8 ctest: add command line option to exclude tests listed in a given file
Add `--exclude-from-file <filename>` to exclude the tests listed in the
given file.

Issue: #25455
2024-01-25 12:37:56 -05:00
Alex Neundorf 022f20f663 ctest: add command line option to run the tests listed in a given file
Add `--tests-from-file <filename>` to run only the tests listed in the
given file.  The test names must match exactly, no regexps or something.
The listed tests can still be filtered with a regexp using -R.

Issue: #25455
2024-01-25 12:37:16 -05:00
Brad King 35246ed9c4 Merge topic 'swift-windows'
b2129a14f4 Tests: Fix SwiftMix tests' runtime library selection on Windows
4f49f7fc0b Tests: Fix SwiftOnly test on Windows
2dec0c0308 Tests: Fix RunCMake.Swift expected output on Windows
79f1f509b1 Tests: Fix RunCMake.Swift's build output checks

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Jeremy Day <jadaytime@gmail.com>
Merge-request: !9169
2024-01-25 10:15:28 -05:00
Evan Wilde 2dec0c0308 Tests: Fix RunCMake.Swift expected output on Windows
Artifact file extensions differ.

Issue: #25573
2024-01-24 14:42:52 -05:00
Brad King 79f1f509b1 Tests: Fix RunCMake.Swift's build output checks 2024-01-24 14:41:35 -05:00
Brad King 73b76563fb Merge topic 'validate_read-only_target_properties'
0cfd8fe8ad cmTarget: Don't allow setting read-only properties

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9133
2024-01-24 08:39:09 -05:00
Brad King 4571ce5f1a Merge topic 'cuda-clang-windows'
88c740462c CUDA/Clang: Add support for MSVC ABI on Windows using GNU-like frontend

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !9172
2024-01-23 14:56:16 -05:00
Robert Maynard 0cfd8fe8ad cmTarget: Don't allow setting read-only properties
Ensure that all documented read-only target properties now produce
errors when trying to set.
2024-01-23 08:50:38 -05:00
Brad King 88c740462c CUDA/Clang: Add support for MSVC ABI on Windows using GNU-like frontend
Fixes: #20776
2024-01-22 09:33:54 -05:00
Brad King c6efbd78d8 MSVC: Teach find_library to consider the 'libfoo.a' naming convention
When targeting the GNU ABI, we consider `.a` libraries first but also
accept `.lib`.  For symmetry, when targeting the MSVC ABI, we now
consider `.lib` first but also accept `.a`.

This adds support for meson-generated static libraries, which are named
with the pattern `lib${foo}.a`:

* https://mesonbuild.com/FAQ.html#why-does-building-my-project-with-msvc-output-static-libraries-called-libfooa

Note that this was previously attempted by

* commit be848a71b0 (MSVC: Teach find_library to consider the 'libfoo.a'
                     naming convention, 2022-09-19, v3.25.0-rc1~111^2)

but was reverted by

* commit 955d6245c1 (MSVC: Revert "Teach find_library to consider the
                     'libfoo.a' naming convention", 2022-11-28, v3.25.1~6^2)

due to problems finding GNU ABI libraries in PATH-derived prefixes.
Since then,

* commit 0a81110b84 (find_(library|file|path): Drop PATH-derived search
                     prefixes, 2023-09-14, v3.28.0-rc1~91^2)

removed the problematic search paths, so we can restore this change.

Fixes: #23975
2024-01-19 17:12:36 -05:00
Brad King 4cd153afe3 Merge branch 'backport-cxxmodules-export-file-collisions' 2024-01-18 17:45:07 -05:00
Ben Boeckel d791f3a180 cxxmodules: make export trampoline script files unique
Include the name of the `EXPORT` in the filename when generating export
information for C++ modules. This allows the same directory to be used
for multiple sets of C++ module-using targets.

For `export(TARGETS)` uses, generate a name based on the hash of the
concatenation of the target names involved with the `export()` call.

Fixes: #25609
2024-01-18 17:40:44 -05:00
Brad King c75047709f Merge topic 'autogen-exe-per-config'
596e84b0d5 NinjaMultiConfig: Update tests for the new dependency change
7c39dabdbc Autogen: AUTO*_EXECUTABLE: add support for per-config values

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8919
2024-01-18 09:01:17 -05:00
Orkun Tokdemir 596e84b0d5 NinjaMultiConfig: Update tests for the new dependency change
* Tests were updated for the cases both `AUTOGEN_BETTER_GRAPH_MULTI_CONFIG` is ON and OFF

This commit reimplements e454314daa
2024-01-17 16:02:58 +01:00
Orkun Tokdemir 7c39dabdbc Autogen: AUTO*_EXECUTABLE: add support for per-config values
* Per-config values were added to `AUTO*_EXECUTABLE`.
* Dependency order was refactored for `cmake_autogen` and `cmake_autorcc` to avoid unnecessary rebuilds.
* A new parameter was added for `cmake_autogen` and `cmake_autorcc` to specify the config name of the `auto*_executable` to be used.
* Add `AUTOGEN_BETTER_GRAPH_MULTI_CONFIG` target property to change the behavior of the dependency graph.
* The timestamp target is split into three targets for per-config to avoid redundant `mocs_compilation` builds when `AUTOGEN_BETTER_GRAPH_MULTI_CONFIG`	 is ON
* Per-config `DEP_FILE_RULE_NAME` values were added to `AutogenInfo.json` for `Multi-Config` usage.
* Some functions were refactored to avoid code duplication.

This commit reimplements fddd0f0443

Fixes: #20074
2024-01-17 16:02:58 +01:00
Brad King fa4a499238 Merge topic 'cmake-language-exit-code'
1bb1769235 cmake_language: Add EXIT subcommand
4f160f7906 cmakemain: Return the SCRIPT_MODE exit code if it was set
b62dcbf5d2 cmMakefile: check cmake script mode exit code after command
3d9d504646 cmMakefile: Store the exit code from cmExecutionStatus to cmake instance
9f6c937408 Source/cmake.h: Add ScriptModeExitCode for proper storing exit code
1082b9cb9a cmExecutionStatus: Add ability to set optional custom exit code

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Leonid Pospelov <pospelovlm@yandex.ru>
Acked-by: NoMaY (a user of Renesas Rulz Japanese Forum) <nomay-jp@outlook.com>
Merge-request: !8228
2024-01-17 09:53:46 -05:00
Brad King c7ebec770f Merge topic 'lcc-updates-2024-01'
202f4b3161 Tests: Exclude some tests on broken libc on Elbrus
9dd0ab9c88 LCC: Make CMake build without warnings on LCC 1.21
1dbb31cea2 libarchive: avoid lchmod not implemented warning on old LCC
83af26d9ad LCC: Don't enable debugger on LCC that don't have <future>
fa764ce311 liblzma: Make cmliblzma buildable on LCC 1.21
77e046b47c jsoncpp: fix missing template deletion support on LCC < 1.23
67de0c197b cmcurl: fix X509_STORE_up_ref issue not just on LCC 1.23, but on LCC <= 1.23
9bc2aba3b4 LCC: get rid of ambiguous assignments of {} for LCC
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9157
2024-01-17 09:51:13 -05:00
Brad King 5394d79b35 Merge topic 'cxxmodules-obj-lib'
c09f8d27cd cxxmodules: compute link information for C++ module-consuming targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !9154
2024-01-17 09:36:45 -05:00