Commit Graph

4888 Commits

Author SHA1 Message Date
Brad King 70623f3bbf Tests: Fix RunCMake.BuildDepends Fortran case with Intel compiler on Windows
The test regularly fails updating the `vc*.pdb` compiler-generated
PDB file.  Add the `/Z7` flag as the compiler suggests for this.
2023-08-10 10:22:59 -04:00
Brad King 1233da9f4a Merge topic 'OPTIMIZE_DEPENDENCIES-runtime-targets'
84eae7aeda OPTIMIZE_DEPENDENCIES: Skip order-only deps for non-linking targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8685
2023-08-10 08:58:34 -04:00
Brad King f16bbea383 Merge topic 'test-cxxmodules-generated-fix'
1e9ec93f48 Tests/RunCMake/CXXModules: actually generate the source at build time

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8693
2023-08-10 08:56:29 -04:00
Craig Scott 84eae7aeda OPTIMIZE_DEPENDENCIES: Skip order-only deps for non-linking targets
Fixes: #21517
2023-08-10 09:17:56 +10:00
Brad King c05d06c6ed Merge topic 'file-GENERATE-arg-parsing'
88f90a72f1 file(GENERATE): Restore INPUT|CONTENT parse checking

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8694
2023-08-08 10:06:39 -04:00
Evan Wilde 88f90a72f1 file(GENERATE): Restore INPUT|CONTENT parse checking
Refactoring in commit bff468c988 (cmFileCommand: Use cm::optional for
keyword argument presence, 2022-06-30, v3.25.0-rc1~512^2) accidentally
broke the check that the input argument is either `INPUT` or `CONTENT`.

The check is supposed to fail when arguments are passed in the wrong
order.  For example:

    file(GENERATE OUTPUT ...
         TARGET <target>
         CONTENT <content>)

Prior to this fix, the input method would be CONTENT, but because the
first parsed keyword is not `CONTENT`, `inputIsContent` would be false.
The first parsed keyword isn't INPUT either, so we would not continue
into the error condition. CMake would then try to handle this as an
input file, when there isn't one, resulting in uninitialized memory
usage and segfaults or corruption later on.

Fixes: #25169
2023-08-07 19:17:29 -04:00
Ben Boeckel 1e9ec93f48 Tests/RunCMake/CXXModules: actually generate the source at build time
This tests what is intended to be tested (sources that do not exist
until after the configure has run).
2023-08-07 19:14:45 -04:00
Brad King efb21962fb Merge topic 'cxxmodules-try-compile'
be53c75852 cmExperimental: recycle the C++ modules API UUID
deb1c3cbd5 cmCoreTryCompile: forward module-related binutils variables
b768d293c5 cmCoreTryCompile: use the source type context for source files
93993c7ad4 cmArgumentParser: support storing a context value with parsing
c9ca5f6326 cmCoreTryCompile: parse `SOURCES_TYPE` argument
07551f35de cmCoreTryCompile: use `target_sources` for `try_compile` targets
aad9033b56 cmExperimental: support forwarding associated variables to `try_compile`
f6cf433256 cmExperimental: only forward C++ module support to non-ABI checks
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8639
2023-08-07 11:57:00 -04:00
Brad King ade507f64c Merge topic 'set-CACHE-diagnostics'
20c23518d9 set: Improve diagnostics for CACHE mode

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8679
2023-08-07 11:53:39 -04:00
Brad King 1972a7b6e3 Merge branch 'backport-revert-vs-show-cmake-files' 2023-08-02 12:11:11 -04:00
Brad King 0d1529000d VS: Revert "Add CMake input files to ZERO_CHECK"
Since commit df58dbb0e9 (VS: Add CMake input files to ZERO_CHECK,
2023-03-19, v3.27.0-rc1~157^2), projects that specify the same file both
as input to `configure_file` and as the `MAIN_DEPENDENCY` of a custom
command fail to configure.  Revert the change pending further
investigation.  Add a test case demonstrating the problem.

Issue: #24557
Fixes: #25149
2023-08-02 11:53:48 -04:00
Jeremy 20c23518d9 set: Improve diagnostics for CACHE mode
Improve `set()` diagnostics to be more specific than

    given invalid arguments for CACHE mode
2023-08-02 10:07:56 -04:00
Brad King 17dcd9424a Merge topic 'xcode-embed-resources'
e40d2cb3af Xcode: Add embed resources support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Acked-by: Deal <halx99@live.com>
Merge-request: !8632
2023-08-01 09:33:15 -04:00
Ben Boeckel be53c75852 cmExperimental: recycle the C++ modules API UUID
`try_compile` and `try_run` now support C++ modules.
2023-07-31 11:59:50 -04:00
Ben Boeckel b768d293c5 cmCoreTryCompile: use the source type context for source files
Also add a test to `RunCMake/CXXModules` to test `try_compile` with C++
modules.

Fixes: #25097
2023-07-31 11:59:47 -04:00
halx99 e40d2cb3af Xcode: Add embed resources support 2023-07-31 09:08:10 +08:00
Ben Boeckel b66c494ca4 Tests/RunCMake/property_init: test 'with_exports' properties 2023-07-29 09:35:21 -04:00
Ben Boeckel efad4391e5 Tests/RunCMake/property_init: test 'with_commands' properties 2023-07-29 09:35:21 -04:00
Ben Boeckel 5f1bf85f84 Tests/RunCMake/property_init: test 'with_artifact' properties 2023-07-29 09:35:21 -04:00
Ben Boeckel 02972ed9e8 Tests/RunCMake/property_init: test 'shared_library' properties 2023-07-29 09:35:21 -04:00
Ben Boeckel 653a32aa72 Tests/RunCMake/property_init: test 'pic_targets' properties 2023-07-29 09:35:21 -04:00
Ben Boeckel 141049cf16 Tests/RunCMake/property_init: test 'normal' properties 2023-07-29 09:35:21 -04:00
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