Commit Graph

4866 Commits

Author SHA1 Message Date
Ben Boeckel bc318ceb7f Tests/RunCMake/property_init: test 'non_imported' properties 2023-07-29 09:35:21 -04:00
Ben Boeckel 0b56e3fedd Tests/RunCMake/property_init: test 'normal_non_imported' properties 2023-07-29 09:35:20 -04:00
Ben Boeckel c1ff120e42 Tests/RunCMake/property_init: test 'linkable' properties 2023-07-29 09:35:20 -04:00
Ben Boeckel 313c6a9c74 Tests/RunCMake/property_init: test 'library_with_artifact' properties 2023-07-29 09:35:20 -04:00
Ben Boeckel bb469aef2d Tests/RunCMake/property_init: add per_config table builder helper 2023-07-29 09:35:20 -04:00
Ben Boeckel a048be7e3a Tests/RunCMake/property_init: test 'imported' properties 2023-07-29 09:35:20 -04:00
Ben Boeckel a6ebd68aa7 Tests/RunCMake/property_init: test 'executable' properties 2023-07-29 09:35:20 -04:00
Ben Boeckel 5bad24935c Tests/RunCMake/property_init: test 'can_compile' properties 2023-07-29 09:35:20 -04:00
Ben Boeckel 82507e80eb Tests/RunCMake/property_init: test 'always' properties
All targets get these targets initialized.
2023-07-29 09:35:20 -04:00
Ben Boeckel 721f1b608c Tests/RunCMake/property_init: add a function to test properties
This function consumes a property table and tests against every kind of
target: those for which the initialization happens and those that should
ignore them.

Also add a function that can build the pairs of target type lists
required.
2023-07-29 09:35:20 -04:00
Ben Boeckel 1c0963e9f2 Tests/RunCMake/property_init: add functions to make example targets 2023-07-29 09:35:20 -04:00
Ben Boeckel 7b9378be43 Tests/RunCMake/property_init: add a function to parse property tables
The tables will be triples of property / value / alias value. Parsing is
a bit tricky, but is easier when `foreach (IN ZIP_LISTS)` with the
values in their distinct list.
2023-07-29 09:35:20 -04:00
Ben Boeckel 16c24cce47 Tests/RunCMake/property_init: add a function to check a property 2023-07-29 09:35:20 -04:00
Ben Boeckel f81351607c Tests/RunCMake/property_init: add skeleton for testing 2023-07-29 09:35:20 -04:00
Kyle Edwards 9bf8f7de06 find_library(): Add support for .xcframework
Issue: #21752
2023-07-28 14:41:45 -04:00
Kyle Edwards 07ac0c0ae0 Merge topic 'xcframework-target-link-libraries'
7050ac56a1 macOS: Add support for linking against .xcframework folders
93ed53790c bootstrap: Unconditionally build libjsoncpp

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8619
2023-07-27 10:06:22 -04:00
Kyle Edwards 7050ac56a1 macOS: Add support for linking against .xcframework folders
Issue: #21752
2023-07-26 17:00:01 -04:00
Brad King 5a164f1649 Merge topic 'jobserver-fix'
3825d6ec98 add_custom_{command,target}: Teach JOB_SERVER_AWARE about WORKING_DIRECTORY

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8644
2023-07-26 10:19:46 -04:00
Chris Mahoney 3825d6ec98 add_custom_{command,target}: Teach JOB_SERVER_AWARE about WORKING_DIRECTORY
Issue: #16273
2023-07-25 11:34:22 -04:00
Kyle Edwards ff12a57d5e exec_program(): Remove by policy CMP0153 2023-07-25 11:09:56 -04:00
Brad King 13362ff138 Merge topic 'fix-ctest-timeout-regression'
0e8584c89c CTest: Fix regression in calculating test timeout

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8647
2023-07-25 09:21:11 -04:00
Kyle Edwards 0e8584c89c CTest: Fix regression in calculating test timeout
Fixes: #25120
2023-07-24 19:29:54 -04:00
Brad King 6194193a8a Merge topic 'file-REAL_PATH-relative'
6b5f2dbbfe file(REAL_PATH): resolve symlinks before '..' components

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8605
2023-07-24 08:43:19 -04:00
Brad King f8c3fd0c45 Merge topic 'dyndep-module-info-objlib-dependency'
b665966933 cmComputeLinkInformation: track OBJECT library dependencies
a99b87a628 Tests/RunCMake/CXXModules: add a test for issue #25112
2870a67540 Tests/FortranOnly: add a test case for issue #25112

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8645
2023-07-24 08:31:53 -04:00
Ben Boeckel a99b87a628 Tests/RunCMake/CXXModules: add a test for issue #25112
Add a test case for C++ `OBJECT` libraries providing modules to
consumers.
2023-07-22 06:53:38 -04:00
Robert Maynard 6b5f2dbbfe file(REAL_PATH): resolve symlinks before '..' components
Previously REAL_PATH would collapse paths before resolving any symlinks
so if `..` crossed a symlink the output from `REAL_PATH` would be wrong.

It looked like REAL_PATH did this by mistake since it was a side-effect
of ensuring we had an absolute path before resolving symlinks.
2023-07-20 17:02:58 -04:00
Brad King 88c6dc75ba Merge topic 'command-job-server-aware'
95941fd990 add_custom_{target,command}: Add argument JOB_SERVER_AWARE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8547
2023-07-20 10:23:31 -04:00
Brad King b0054dd65c Merge topic 'imported-implib-only'
7351d590ee cmTarget: Add a way to represent imported shared library stubs
83574a4772 GeneratorExpression: Expand testing of imported location resolution
b75ff51947 Testing: Map RelWithDebInfo config in GeneratorExpression test

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Jason Juang <jasjuang@gmail.com>
Merge-request: !8582
2023-07-19 10:55:30 -04:00
Chris Mahoney 95941fd990 add_custom_{target,command}: Add argument JOB_SERVER_AWARE
Issue: #16273
2023-07-19 10:45:33 -04:00
Robert Maynard 7351d590ee cmTarget: Add a way to represent imported shared library stubs
Shared library stubs can be used for linking, but not at runtime.
Their role is similar to import libraries on Windows, so represent
their location with the `IMPORTED_IMPLIB` target property.

Fixes: #24940
2023-07-18 13:21:01 -04:00
Marc Chevrier 3c685a578a LINK_OPTIONS: ensure correct dollar escaping
Ensure correct escaping for Ninja and Makefile generators.

Fixes: #25049
2023-07-17 15:55:58 +02:00
Brad King 802a0aefd5 Merge topic 'find_library-simplify-regex'
f60e921262 find_library: Improve regex readability in --debug-find output

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8618
2023-07-14 08:42:11 -04:00
Thomas Schenker f60e921262 find_library: Improve regex readability in --debug-find output
If there is only one possible library prefix/suffix, omit the capture
group around it in the debug output.
2023-07-13 09:48:35 -04:00
Ben Boeckel 57ef353d22 cmExperimental: refresh the C++ modules UUID
The transitive support for Clang is a change in support for the
ecosystem.
2023-07-13 08:40:22 -04:00
Ben Boeckel 71f1483aac Tests/RunCMake/CXXModules: require transitive usages
Clang 17 is in a transition where it warns about transitive usages. Turn
it into an error if the flag is available to make sure we're testing the
feature properly.
2023-07-13 08:40:22 -04:00
Brad King a0056a96d5 Merge topic 'genex-REMOVE_DUPLICATES-empty'
861dd60ecf Genex: Restore REMOVE_DUPLICATES preservation of empty elements

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8623
2023-07-13 08:34:22 -04:00
Brad King 861dd60ecf Genex: Restore REMOVE_DUPLICATES preservation of empty elements
Refactoring in commit 72d116ee68 (GenEx: list oriented genexes use
cmList class, 2023-03-29, v3.27.0-rc1~205^2) accidentally caused
empty elements to be dropped by the `REMOVE_DUPLICATES` genex.
Fix it and add a test case.

Fixes: #25080
2023-07-12 11:49:21 -04:00
Brad King 27302fa005 Merge topic 'compile-commands-modules'
677b28dc7b Ninja: include module mapper flags in `compile_commands.json`

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8611
2023-07-12 10:02:53 -04:00
Gregor Jasny 25977e177b apple: add preliminary visionOS support 2023-07-11 20:20:25 +02:00
Ben Boeckel 677b28dc7b Ninja: include module mapper flags in compile_commands.json
Fixes: #24618
2023-07-09 11:04:29 -04:00
Brad King 807d9165fb Merge topic 'FetchContent-unparsed-arguments'
9ede4cab2b FetchContent: Protect ExternalProject keywords from unknown arguments

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Craig Scott <craig.scott@crascit.com>
Merge-request: !8598
2023-06-30 09:29:28 -04:00
Brad King 1ac0dea4c8 Merge topic 'FetchContent-unparsed-arguments' into release-3.27
9ede4cab2b FetchContent: Protect ExternalProject keywords from unknown arguments

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Craig Scott <craig.scott@crascit.com>
Merge-request: !8598
2023-06-30 09:29:27 -04:00
Brad King 4938a0cbdd Merge topic 'vs-cxxmodules-same-src-name'
b9c99830c5 VS: Fix C++ modules in source files with the same name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8596
2023-06-30 09:28:20 -04:00
Brad King 67cf379354 Merge topic 'vs-cxxmodules-same-src-name' into release-3.27
b9c99830c5 VS: Fix C++ modules in source files with the same name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8596
2023-06-30 09:28:19 -04:00
Brad King 9ede4cab2b FetchContent: Protect ExternalProject keywords from unknown arguments
`ExternalProject_Add` treats all keyword arguments as multi-valued.
FetchContent re-orders some keyword arguments w.r.t. unparsed arguments.
Add an internal keyword argument to separate the keyword values from
following unparsed arguments.

This was exposed by commit 550f63447d (ExternalProject/FetchContent:
Support relative remote URLs, 2023-04-21, v3.27.0-rc1~156^2) by adding
`GIT_REPOSITORY` to the set of re-ordered keyword arguments.  This
caused its value to absorb following unparsed arguments.

Fixes: #25029
2023-06-29 09:49:51 -04:00
Brad King b9c99830c5 VS: Fix C++ modules in source files with the same name
When multiple source files in a single target have the same name, we
already set `ObjectFileName` explicitly to avoid a `.obj` collision. For
C++ module sources, set `Module{Output,Dependencies}File` to avoid
`.ifc` and `.module.json` collisions.

Fixes: #25038
2023-06-28 06:43:10 -04:00
Brad King 75b573a628 Deprecate Visual Studio 12 2013 generator
Update documentation to mark the generator deprecated.  Add a warning at
the end of generation plus an option to turn off the warning.
2023-06-26 12:41:18 -04:00
Brad King 61bb728c0c Merge topic 'imported-target-framework-path'
d605f728f7 macOS: Allow IMPORTED_LOCATION to be a framework folder

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8586
2023-06-26 09:47:30 -04:00
Brad King d599c9e92e Merge topic 'support_nvhpc_versions_without_isystem'
f73ae7c510 NVHPC: Support nvfortran versions that don't support isystem

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8588
2023-06-26 09:44:57 -04:00
Brad King b7810bfb18 Merge topic 'support_nvhpc_versions_without_isystem' into release-3.27
f73ae7c510 NVHPC: Support nvfortran versions that don't support isystem

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8588
2023-06-26 09:44:56 -04:00