Commit Graph

64500 Commits

Author SHA1 Message Date
makise-homura
3377141c8f Tests: With lfortran < 1.24 skip cases broken by incorrect filename handling
`lfortran` < 1.24 uses `fccn`, a Fortran-to-C converter that
incorrectly handles long filenames that are more than 128 characters
long; so to check if Fortran can compile something, CMake must be
run in binary directory that has a name of less that 35 characters long.
It is ok for typical runs line `cmake -S . -B build` or `cmake ..`,
but does not work with usual CDash dashboard testing paths.

All this is not a problem for modern LCC >= 1.24.
2024-01-08 15:25:57 -05:00
makise-homura
020e80d825 LCC: Add missing C/CXX compiler version checks for -std options 2024-01-08 15:25:57 -05:00
makise-homura
76a0a67026 GetPrerequisites: Tolerate multiple leading '/' in system library paths
On OS Elbrus 8.x, we see a dependency on `//usr/lib/libpcre2-8.so.0``
in the Qt4Deploy test.  Recognize it as a system path.
2024-01-08 15:25:57 -05:00
Brad King
a3f76a4e4d Merge topic 'link-stubs-transitively'
2c6ec6de15 Link to transitive dependencies on stub libraries only on some linkers
dd4a6dff92 Link explicitly to private transitive dependencies on stub libraries
5f1bbdb3b3 Tests: Enable RunCMake.RuntimePath test on more platforms

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9050
2024-01-08 09:47:15 -05:00
Brad King
2cc792ba29 Merge topic 'fix-isspace-usage-for-signed-char'
5e8c176e2a cmExecuteProcessCommand: Cast c to unsigned char before cast to int

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9132
2024-01-08 09:44:30 -05:00
Brad King
ddb608b1d9 Merge topic 'fix-tutorial'
6d48bd21ac Tutorial: Clarify the expected change to target_include_directories
4d56db038d Tutorial: Make `INSTALL_DESTINATION` consistent with installed destination
da22b269b2 Tutorial: Add missing `$` in generator expression

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9120
2024-01-08 09:43:29 -05:00
Brad King
827a98657e Merge topic 'add_test-CROSSCOMPILING_EMULATOR-exclusive'
63e20653f8 add_test: Fix version of CMake introducing CMP0158 (to 3.29)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9134
2024-01-08 09:42:39 -05:00
Brad King
4a4d639334 Merge topic 'cmake-gui_better_text_with_preset'
9d13674337 cmake-gui: Hint that the preset compilers will be used

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Alex <leha-bot@yandex.ru>
Merge-request: !9125
2024-01-08 09:34:07 -05:00
Brad King
16f88908a6 Merge topic 'cmake-gui_support_preset_toolchain'
370370364b cmake-gui: Add support for preset toolchain entry

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Alex <leha-bot@yandex.ru>
Merge-request: !9126
2024-01-08 09:33:03 -05:00
Brad King
5b6385f717 Merge branch 'release-3.28' 2024-01-08 09:30:56 -05:00
Brad King
639a5998c7 Merge topic 'fix-openbsd'
1fafe35e81 Source: Restore compilation on OpenBSD

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9085
2024-01-08 09:30:56 -05:00
Brad King
67ba114875 Merge topic 'fix-openbsd' into release-3.28
1fafe35e81 Source: Restore compilation on OpenBSD

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9085
2024-01-08 09:30:55 -05:00
Kitware Robot
733d2b6063 CMake Nightly Date Stamp 2024-01-08 00:01:18 -05:00
Kitware Robot
56718903bb CMake Nightly Date Stamp 2024-01-07 00:01:05 -05:00
Kitware Robot
a8c09ab5f5 CMake Nightly Date Stamp 2024-01-06 00:01:08 -05:00
Robert Maynard
63e20653f8 add_test: Fix version of CMake introducing CMP0158 (to 3.29)
This was missed in commit ca5a300d7f (add_test: Honor
CROSSCOMPILING_EMULATOR only when cross-compiling, 2023-11-02) when it
slipped from the 3.28 release.
2024-01-05 17:01:01 -05:00
Rafael Sadowski
1fafe35e81 Source: Restore compilation on OpenBSD
We cannot use `OpenBSD` as a name, it is defined in `sys/param.h`.
2024-01-05 15:36:44 -05:00
leha-bot
5e8c176e2a cmExecuteProcessCommand: Cast c to unsigned char before cast to int
As the 'char' type may be either signed, or unsigned, there are some
clashes between C Standard library functions and actual characters while
casting it to int directly. In case the 'char' type was signed, the
casted to int result value may be extended to full negative digit which
may be out of range of isspace() function (e.g. , for MSVC
implementation, which checks it for '> -1', and throwing an assertion
failure on fail).

Fixes: #25561
2024-01-05 14:36:43 -05:00
Brad King
1f66051983 Merge topic 'FindPkgConfig-caching'
e50aaf8547 FindPkgConfig: Update cache variables after isystem extraction
8fe6196714 FindPkgConfig: Update cache variables after framework extraction

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9109
2024-01-05 13:31:58 -05:00
Brad King
ac9fd4f009 Merge topic 'swift-always-restat'
1161ad76ac Swift/Ninja: Always restat swift build commands

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9076
2024-01-05 13:31:09 -05:00
Brad King
7058d715b4 Merge topic 'swift-compile-commands'
44f29a4291 Swift/Ninja: Fix multifile module compile commands

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9095
2024-01-05 13:30:15 -05:00
Kevin Albertson
6d48bd21ac Tutorial: Clarify the expected change to target_include_directories
The expectation is to modify the existing `target_include_directories`,
not add add a new `target_include_directories` command.
2024-01-05 13:22:39 -05:00
Kevin Albertson
4d56db038d Tutorial: Make INSTALL_DESTINATION consistent with installed destination 2024-01-05 13:21:08 -05:00
Kevin Albertson
da22b269b2 Tutorial: Add missing $ in generator expression 2024-01-05 13:21:08 -05:00
Robert Maynard
9d13674337 cmake-gui: Hint that the preset compilers will be used
Instead of stating that the default is the native compilers,
say we will use the compilers from the preset. This makes it
more clear that the preset is working as expected.
2024-01-05 12:04:12 -05:00
Robert Maynard
370370364b cmake-gui: Add support for preset toolchain entry
Previously the toolchain field was ignored when passing a preset
to cmake-gui.

Fixes: #24034
2024-01-05 12:01:44 -05:00
Brad King
601e16c7c5 Merge topic 'ccmake_support_preset_toolchain'
d20c21a678 ccmake: Now supports the preset toolchain entry

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Alex <leha-bot@yandex.ru>
Merge-request: !9127
2024-01-05 10:20:39 -05:00
Brad King
02eb4c0a2a Merge topic 'test-RunCMake.ExternalProject'
3253bc306e Tests: Optionally run RunCMake.ExternalProject serially

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9129
2024-01-05 10:19:51 -05:00
Brad King
2c7e01b078 Merge branch 'release-3.28' 2024-01-05 10:18:43 -05:00
Brad King
951656385d Merge topic 'doc-get-properties-inherited'
8086badba4 Help: Fix wrong return values for unset inherited properties
1ca5ec67b0 Help: Add missing DIRECTORY keyword to set_tests_properties() signature
34379f005b Help: Use <variable> consistently in property getter commands
29ccc9a4cd Help: Use <xxx> for non-keyword arguments in property command signatures

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9131
2024-01-05 10:18:42 -05:00
Brad King
47bfca8494 Merge topic 'doc-get-properties-inherited' into release-3.28
8086badba4 Help: Fix wrong return values for unset inherited properties
1ca5ec67b0 Help: Add missing DIRECTORY keyword to set_tests_properties() signature
34379f005b Help: Use <variable> consistently in property getter commands
29ccc9a4cd Help: Use <xxx> for non-keyword arguments in property command signatures

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9131
2024-01-05 10:18:41 -05:00
Brad King
6594118215 Merge branch 'release-3.28' 2024-01-05 10:16:53 -05:00
Brad King
769be838cb Merge topic 'check_language_propagate_hip_platform'
ce9c6d0994 HIP: Propagate CMAKE_HIP_PLATFORM from/to the test project in check_language
9ba3fc91e5 HIP: Really forward CMAKE_HIP_HOST_COMPILER in check_language(HIP)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9121
2024-01-05 10:16:53 -05:00
Brad King
f6f33385d7 Merge topic 'check_language_propagate_hip_platform' into release-3.28
ce9c6d0994 HIP: Propagate CMAKE_HIP_PLATFORM from/to the test project in check_language
9ba3fc91e5 HIP: Really forward CMAKE_HIP_HOST_COMPILER in check_language(HIP)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9121
2024-01-05 10:16:52 -05:00
Craig Scott
8086badba4 Help: Fix wrong return values for unset inherited properties
Since ff6234509e (Help: Clarify behavior of INHERITED properties, 2018-03-21),
the docs for some get_..._property() commands incorrectly describe
the behavior for inherited properties. When a property is not set, even
in a parent scope, the returned result from the get_..._property()
command is the same whether the property is inherited or not.
The docs incorrectly stated that an empty string would be returned
for inherited properties in such cases.
2024-01-05 17:40:16 +11:00
Craig Scott
1ca5ec67b0 Help: Add missing DIRECTORY keyword to set_tests_properties() signature 2024-01-05 16:45:27 +11:00
Kitware Robot
159872ab8b CMake Nightly Date Stamp 2024-01-05 00:01:08 -05:00
Craig Scott
34379f005b Help: Use <variable> consistently in property getter commands
Property-related commands used a mix of <VAR>, <var>, or
<variable> to specify the variable to store the result in. The <VAR>
form is particularly confusing, since being uppercase it looks more
like a keyword. Use <variable> consistently across all the commands
so that the behavior is clear.
2024-01-05 15:37:39 +11:00
Craig Scott
29ccc9a4cd Help: Use <xxx> for non-keyword arguments in property command signatures 2024-01-05 15:31:39 +11:00
Kai Pastor
e50aaf8547 FindPkgConfig: Update cache variables after isystem extraction
Fixes: #25377
2024-01-04 22:22:52 +01:00
Jeremy Day
1161ad76ac Swift/Ninja: Always restat swift build commands
The swift toolchain leaves output files untouched
if there are no meaningful input changes; without
restat, this causes ninja to needlessly rebuild
targets that are not actually out-of-date

Fixes: #25496
2024-01-04 13:20:05 -08:00
Brad King
3253bc306e Tests: Optionally run RunCMake.ExternalProject serially
On some machines running many tests concurrently, the `INACTIVITY_TIMEOUT`
cases do not always complete within their individual timeout.  Add an
undocumented cache entry to use on those machines to run the test serially.
2024-01-04 13:40:41 -05:00
Brad King
2c6ec6de15 Link to transitive dependencies on stub libraries only on some linkers
Only linkers that enforce `--no-allow-shlib-undefined` recursively need
to link private transitive dependencies on stub libraries explicitly.
2024-01-04 11:59:26 -05:00
Brad King
dd4a6dff92 Link explicitly to private transitive dependencies on stub libraries
We represent stub libraries, e.g., for CUDA, using imported `SHARED`
library targets with only `IMPORTED_IMPLIB`, and no `IMPORTED_LOCATION`,
to indicate that the stub file is meant only for linkers and not dynamic
loaders.  See commit 7351d590ee (cmTarget: Add a way to represent
imported shared library stubs, 2023-07-17, v3.28.0-rc1~344^2) and commit
fc6508921c (cmComputeLinkInformation: Restore soname lookup for
non-imported targets, 2023-12-05, v3.28.0~4^2).

If a shared library is linked to a stub, it has a `NEEDED` field
populated with the `SONAME` found in the stub.  When a dependent target
links to such a shared library, some linkers want to find a library file
on disk and load it to see what symbols it provides.  This is necessary
for linkers that enforce `--no-allow-shlib-undefined`.  On hosts with
only the stub library installed, e.g., with only the CUDA toolkit
development package, the real runtime library corresponding to the
stub's `SONAME` may not even exist, so no `-rpath-link` flag can help
linkers find it.  Pass the stub library to linkers explicitly so they
can find it without searching.
2024-01-04 11:59:26 -05:00
Brad King
5f1bbdb3b3 Tests: Enable RunCMake.RuntimePath test on more platforms
Move the "ELF" check to specific cases inside the test.
2024-01-04 11:59:26 -05:00
Brad King
5a61984088 Merge topic 'compute-compiler-linker'
459d1cc095 Tests: Verify that linker tool is detected and identified where expected
6aec4739c1 LinkerId: Record detection steps to configure log
ba5f8dbba3 LinkerId: Use empty string for unknown linker id
6cbd0658c5 LinkerId: Match Apple linker on all Apple platforms
9324668517 LinkerId: Fix detection of GNU linker id without parenthesis in version output
37bc148870 LinkerId: Fix detection of linker tool without path
6e527c2d38 LinkerId: Fix detection of linker tool for Clang on OpenBSD
455aed3061 LinkerId: Fix detection of linker tool for MSVC
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9086
2024-01-04 11:53:38 -05:00
Brad King
d8d9b3f9e6 Merge topic 'fix_documentation'
20f74231db Help: Fix Step3 Mathfunction example

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9101
2024-01-04 11:52:20 -05:00
Brad King
b0006155d3 Merge branch 'release-3.28' 2024-01-04 11:50:41 -05:00
Brad King
de73a66340 Merge branch 'release-3.27' 2024-01-04 11:50:38 -05:00
Brad King
b03e3c5251 Merge branch 'release-3.27' into release-3.28 2024-01-04 11:50:29 -05:00