Commit Graph

35135 Commits

Author SHA1 Message Date
Brad King
1e8b283554 Merge topic 'static'
9e829779f2 Swift: preserve `-static` for static library swiftmodules

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9141
2024-01-10 10:20:37 -05:00
Brad King
4a9599927f Merge topic 'orkun_refactor_09_01_2024'
63d4e4ec28 Makefile: Reduce string copies
4d928592eb Makefile: Remove redundant push_back
3e533bd64f Makefile: Improve const correctness
c2dd5dfbe8 Makefile: Remove no-op call

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9142
2024-01-10 10:19:12 -05:00
Brad King
899a1f64af Merge topic 'vs-scan-for-modules'
405dc7d19c Tests/CXXModules/scan_properties: use `ixx` extension
029ddc3410 cmVisualStudio10TargetGenerator: always specify scanning
6c9614cbf4 Tests/CXXModules: add a test case for VS generation without flags
34f4423851 cmVisualStudio10TargetGenerator: fix typo in flag name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9104
2024-01-10 10:17:03 -05:00
Brad King
446abdf324 Merge topic 'cxxmodules-no-unity'
63bbb3768d cmLocalGenerator: ignore scanned sources for unity builds
76b5383123 cmGlobalGenerator: add unity sources after computing target compile features
7fc2a83fe6 Tests/CXXModules: add a test with unity build support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9118
2024-01-10 10:15:46 -05:00
Brad King
711e3f955a Merge topic 'makefile-depfile'
7198f0d149 Makefile: Fix double escaping when DEPFILE is used
5162ff64d4 Makefile: Reduce string copies

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9138
2024-01-10 10:14:24 -05:00
Kitware Robot
87200ec97f CMake Nightly Date Stamp 2024-01-10 00:01:08 -05:00
Saleem Abdulrasool
9e829779f2 Swift: preserve -static for static library swiftmodules
The `-static` is important for the emission of the module as it is
serialized into the swiftmodule which then is used by the Swift frontend
to decide how to link to the symbol (via the GOT or not, or the IAT on
Windows). This repairs building static libraries with Swift on Windows.
2024-01-09 09:13:34 -08:00
Brad King
38234058ff Merge topic 'ctest-cli-http-headers'
20adf8cfce ctest: allow HTTP headers via command line

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9123
2024-01-09 10:54:54 -05:00
Brad King
7557a722a5 Merge topic 'ewilde/swift-ninja-response-files'
a6a5c43300 Swift/Ninja: Add support for response files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9098
2024-01-09 10:53:59 -05:00
Brad King
1c97c57455 Merge topic 'ninja-always-make-object-dirs'
de3dc16b64 cmNinjaTargetGenerator: use `.` for the needed phony order-only dependency
1aa28f3b92 cmNinjaTargetGenerator: ensure that the object output directory exists
4a9613ff9b cmNinjaTargetGenerator: add a method to compute the object directory

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9105
2024-01-09 10:52:42 -05:00
Orkun Tokdemir
7198f0d149 Makefile: Fix double escaping when DEPFILE is used
In commit cfd8a5ac1f (Makefiles: Add support of DEPFILE for
add_custom_command, 2020-12-04, v3.20.0-rc1~237^2~1) we added a
`ConvertToOutputPath` call on a path given to the `depends` field of
`WriteMakeRule`.  The latter already handles escaping for Makefile
syntax.

Fixes: #25554
2024-01-09 10:44:43 -05:00
Brad King
27d958b34c Merge topic 'cmake-gui-unused-slot'
3f3c387a96 cmake-gui: Remove unused viewType slot

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9137
2024-01-09 09:54:30 -05:00
Orkun Tokdemir
63d4e4ec28 Makefile: Reduce string copies 2024-01-09 13:05:01 +01:00
Orkun Tokdemir
4d928592eb Makefile: Remove redundant push_back 2024-01-09 13:05:01 +01:00
Orkun Tokdemir
3e533bd64f Makefile: Improve const correctness 2024-01-09 13:05:01 +01:00
Orkun Tokdemir
c2dd5dfbe8 Makefile: Remove no-op call 2024-01-09 13:05:01 +01:00
Kitware Robot
44af8fb801 CMake Nightly Date Stamp 2024-01-09 00:01:08 -05:00
Matthew Woehlke
20adf8cfce ctest: allow HTTP headers via command line
Add ability to specify HTTP headers via `ctest -T Submit`.
2024-01-08 14:11:40 -05:00
Christoph Grüninger
3f3c387a96 cmake-gui: Remove unused viewType slot
The slot for `setViewType(t)` and `viewType()` are never connected.
Found by Clazy (`const-signal-or-slot`).
2024-01-08 12:45:41 -05:00
Evan Wilde
a6a5c43300 Swift/Ninja: Add support for response files
Adding support for `CMAKE_NINJA_FORCE_RESPONSE_FILE` with Swift.

Issue: #25490
Fixes: #25563
2024-01-08 09:11:27 -08:00
Orkun Tokdemir
5162ff64d4 Makefile: Reduce string copies 2024-01-08 11:58:04 -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
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
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
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
Ben Boeckel
029ddc3410 cmVisualStudio10TargetGenerator: always specify scanning
Set that sources should not be scanned on a target-wide basis and then
enable on a per-TU basis as needed.

Fixes: #25519
2024-01-06 11:18:57 -05:00
Ben Boeckel
34f4423851 cmVisualStudio10TargetGenerator: fix typo in flag name
It is case insensitive, so this only matches the official flag name and
still works.
2024-01-06 11:18:57 -05:00
Ben Boeckel
de3dc16b64 cmNinjaTargetGenerator: use . for the needed phony order-only dependency
It is only required for Ninja < 1.7 though.
2024-01-06 11:07:52 -05:00
Ben Boeckel
1aa28f3b92 cmNinjaTargetGenerator: ensure that the object output directory exists
If a target has no object compilations within it, nothing ensures that
the directory exists yet it is still mentioned as an order-only
dependency within the build files. While `ninja` is OK with this,
`samu`, an alternate `ninja` implementation, is not. Make sure the
directory always exists for consistency.

Fixes: #25526
2024-01-06 09:56:40 -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
Ben Boeckel
63bbb3768d cmLocalGenerator: ignore scanned sources for unity builds 2024-01-05 14:21:27 -05:00
Ben Boeckel
76b5383123 cmGlobalGenerator: add unity sources after computing target compile features
We need to know which sources will be scanned for C++ module
dependencies in order to exclude them from unity builds.  The
addition of unity sources will not change the set of features.
2024-01-05 14:19:42 -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
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
Ben Boeckel
4a9613ff9b cmNinjaTargetGenerator: add a method to compute the object directory 2024-01-05 05:06:33 -05:00
Kitware Robot
159872ab8b CMake Nightly Date Stamp 2024-01-05 00:01:08 -05: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
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
Kitware Robot
31dead97ed CMake Nightly Date Stamp 2024-01-04 00:01:11 -05:00