Commit Graph

33743 Commits

Author SHA1 Message Date
Brad King
35ca2d524b Merge topic 'msvc-embed-manifest-direct'
0b552eb877 MSVC: Embed manifests directly for non-incremental vs_link_exe links

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8245
2023-02-24 08:40:07 -05:00
Brad King
88b75204e5 Merge topic 'PATH-genex-handle-list-of-paths'
e395310a21 PATH-genex: handle lists for path decomposition and transformations

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !8238
2023-02-24 08:35:19 -05:00
Brad King
d19b61bf43 Merge topic 'find_package-PACKAGENAME_ROOT'
df9c4b1872 find_package: Use <PACKAGENAME>_ROOT variables as search prefixes
4da27a73bd Help: Document <PackageName>_ROOT variable ordering using an ordered list
bfeb16bd5b cmFindPackageCommand: Refactor CMP0074 logic to de-duplicate lookups
c0fcd07e6f cmFindPackageCommand: Factor out methods for package root stack management
acd9636d9d cmSystemTools: Add helpers for reading and parsing PATH env vars

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8240
2023-02-24 08:31:28 -05:00
Kitware Robot
92fb3ba39f CMake Nightly Date Stamp 2023-02-24 00:01:14 -05:00
Andrew Ng
0b552eb877 MSVC: Embed manifests directly for non-incremental vs_link_exe links
This avoids the need to separately execute `mt.exe` to perform the
embedding of manifests into the output for non-incremental links. The
primary motivation for this change is that this separate execution of
`mt.exe` to embed manifests is known to cause intermittent failures due
to AV/security scanning.

The only change in behavior is that any linker generated manifest will
no longer be output as a separate manifest file alongside the output
file.

Fixes: #24531
2023-02-23 14:35:08 -05:00
Brad King
df9c4b1872 find_package: Use <PACKAGENAME>_ROOT variables as search prefixes
Extend commit eb35d8884b (find_package: Use PackageName_ROOT variables
as search prefixes, 2018-03-15, v3.12.0-rc1~349^2) to also check
upper-case `<PACKAGENAME>_ROOT` variables.  Add policy `CMP0144` to
enable the behavior in a compatible way.

Fixes: #24403
2023-02-23 09:15:14 -05:00
Brad King
bfeb16bd5b cmFindPackageCommand: Refactor CMP0074 logic to de-duplicate lookups 2023-02-23 09:12:29 -05:00
Brad King
c0fcd07e6f cmFindPackageCommand: Factor out methods for package root stack management 2023-02-23 09:12:28 -05:00
Brad King
acd9636d9d cmSystemTools: Add helpers for reading and parsing PATH env vars 2023-02-23 09:05:59 -05:00
Kitware Robot
bc75361790 CMake Nightly Date Stamp 2023-02-23 00:01:13 -05:00
Kitware Robot
e0be05d9f1 CMake Nightly Date Stamp 2023-02-22 00:01:10 -05:00
Marc Chevrier
e395310a21 PATH-genex: handle lists for path decomposition and transformations
Fixes: #24371
2023-02-21 19:34:43 +01:00
Brad King
d3ea15e801 Merge topic 'qt-sizetype'
5cda8a3993 cmake-gui: Fix conversion warnings about Qt indexing types

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8233
2023-02-21 08:54:15 -05:00
Brad King
a2c77755ab Merge topic 'unlimited-version-compare'
aa86e8ddfd Remove component size limit for version comparisons
7e730d8f7f Tests: Add cases for cmSystemTools::VersionCompare

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !8231
2023-02-21 08:52:46 -05:00
Brad King
ad8ada1bee Merge topic 'KateNinjaImprovements'
2b713b0f95 Kate: mention Ninja Multiconfig in the docs
f6f8f89e6c Kate: support for the targets of multi config ninja
0429a37e48 Kate: enable the ninja multiconfig generator for kate

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8226
2023-02-21 08:47:00 -05:00
Brad King
c2897eb725 Merge topic 'add_lang_expressions_ghs'
780b279cc6 GHS: Enable language-dependent generator expressions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8224
2023-02-21 08:45:08 -05:00
Kitware Robot
053fa2fef8 CMake Nightly Date Stamp 2023-02-21 00:01:10 -05:00
Brad King
5cda8a3993 cmake-gui: Fix conversion warnings about Qt indexing types
Qt 5 uses `int` for indexing, and Qt 6 uses `qsizetype`.  Add helper
types and casts to the appropriate type to avoid conversion warnings.
2023-02-20 17:55:49 -05:00
David Gobbi
aa86e8ddfd Remove component size limit for version comparisons
The VersionCompare() function converted version components to
'unsigned long' prior to comparing them.  Any version components
too large for 'unsigned long' were treated as equal to ULONG_MAX.
This impacted operators like VERSION_GREATER, VERSION_LESS, and
VERSION_EQUAL.  The new code does not limit the length of the
version components for valid comparisons.
2023-02-20 12:54:43 -05:00
Alexander Neundorf
2b713b0f95 Kate: mention Ninja Multiconfig in the docs 2023-02-20 09:08:56 -05:00
Brad King
d18806e673 Merge topic 'ninja-custom-command-depends'
ea2a05f402 Add variable CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8220
2023-02-20 08:34:34 -05:00
Brad King
4e39c25fce Merge topic 'xcode-revert-header-map'
841272eb35 Xcode: Restore suppression of header maps

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8218
2023-02-20 08:32:11 -05:00
Brad King
d5cba69f78 Merge topic 'cxx-module-mapper-clang'
195ee13710 cmCxxModuleMapper: Specify clang's BMI dependency with new form

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com>
Acked-by: Alex <leha-bot@yandex.ru>
Merge-request: !8219
2023-02-20 08:30:39 -05:00
Kitware Robot
9fc1ce97a8 CMake Nightly Date Stamp 2023-02-20 00:01:44 -05:00
Kitware Robot
9b07b57c01 CMake Nightly Date Stamp 2023-02-19 00:01:13 -05:00
Alexander Neundorf
f6f8f89e6c Kate: support for the targets of multi config ninja
With this patch, cmake now generates the targets once for each
config into the kate project file, so users can build the targets
for all configs with this generator.
2023-02-18 23:23:11 +01:00
Alexander Neundorf
0429a37e48 Kate: enable the ninja multiconfig generator for kate
Kate can work as well with the multi-config version of ninja.
Additionally, add the "/fast" targets only for make, not for ninja.
2023-02-18 21:57:39 +01:00
Kitware Robot
8b1160b509 CMake Nightly Date Stamp 2023-02-18 00:01:16 -05:00
Neal Venditto
780b279cc6 GHS: Enable language-dependent generator expressions
Add `Green Hills MULTI` to the list of generators checked for the
`COMPILE_LANGUAGE`, `COMPILE_LANG_AND_ID`, `LINK_LANGUAGE`, and
`LINK_LANG_AND_ID` generator expressions, since these are supported by
the generator.

Fixes: #24262
2023-02-17 19:07:37 -05:00
Brad King
841272eb35 Xcode: Restore suppression of header maps
In commit 8527f42b96 (Xcode: Explicitly disable deprecated user include
path feature, 2023-01-31, v3.26.0-rc1~7^2) we dropped the Xcode build
setting `USE_HEADERMAP = NO` because Xcode 14's "Build Documentation"
feature (`xcodebuild RUN_DOCUMENTATION_COMPILER=YES`) fails in some
cases without header maps.  However, enabling header maps causes Xcode
to add `-iquote .../foo.hmap` and `-I .../bar.hmap` flags that can
change the intended header file search order based on the contents of
the header maps.  This can break existing projects.  Restore the
`USE_HEADERMAP = NO` setting to fix the header file search order.

Further investigation will be needed to resolve the problematic cases
with the Xcode 14 "Build Documentation" feature.  Meanwhile projects
encountering such cases can set the `XCODE_ATTRIBUTE_USE_HEADERMAP`
target property to `YES` themselves.

Fixes: #24418
Issue: #24379
2023-02-17 18:02:45 -05:00
Chuanqi Xu
195ee13710 cmCxxModuleMapper: Specify clang's BMI dependency with new form 2023-02-17 12:27:37 -05:00
Abdelmaged Khalifa
ea2a05f402 Add variable CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY
Add CMake variable `CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY` to enable
option `DEPENDS_EXPLICIT_ONLY` on all uses of `add_custom_command`.

Fixes: #17097
2023-02-17 17:12:12 +02:00
Brad King
e4de606983 Merge topic 'sergio-nsk/24416/1'
74e0b5d9f5 VS: Fix wrong appxManifest if OUTPUT_NAME != target name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8216
2023-02-17 08:53:12 -05:00
Kitware Robot
7992df0751 CMake Nightly Date Stamp 2023-02-17 00:01:12 -05:00
Brad King
51c7917072 Merge topic 'deprecate-extra-generators'
ef5a4d964b Deprecate "extra" generators in favor of cmake-file-api(7)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8211
2023-02-16 11:44:05 -05:00
Brad King
847c315f07 Merge topic 'synthetic-targets'
dadaa28638 cmGeneratorTarget: synthetic targets don't have output either
bde9d4ad01 cmCommonTargetGenerator: also consider synthetic targets
c97de1047f cmMakefile: add support for a "synthesized" target
1d0426f642 cmTarget: make Visibility an `enum class`
5b58695321 cmTarget: store visibility as an `enum` rather than bools

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8203
2023-02-16 11:41:53 -05:00
Brad King
4e54067eaa Merge topic 'cmake-E-time-chrono'
bf5512ef51 Help:cmake -E time: note overhead included
848f7b0a81 cmake -E time: use C++11 chrono and better format output

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8209
2023-02-16 11:39:20 -05:00
Kitware Robot
548484e634 CMake Nightly Date Stamp 2023-02-16 00:01:14 -05:00
Sergey Markelov
74e0b5d9f5 VS: Fix wrong appxManifest if OUTPUT_NAME != target name
Fixes #24416
2023-02-15 20:35:50 -07:00
scivision
848f7b0a81 cmake -E time: use C++11 chrono and better format output
fixes #24415
2023-02-15 10:53:14 -05:00
Brad King
ef5a4d964b Deprecate "extra" generators in favor of cmake-file-api(7)
The "extra" generators were created in CMake's early years to provide
support for users of specific IDEs by directly generating their project
files alongside make or ninja files.  Nowadays the file-api provides a
more generic, maintainable, well-tested, and robust way for IDEs to view
CMake project build trees.  Deprecate the legacy "extra" generators to
encourage the corresponding IDEs to use the file-api.

Fixes: #19090
2023-02-15 10:48:26 -05:00
Brad King
037975ef69 CMake 3.26.0-rc3 2023-02-15 09:34:02 -05:00
Brad King
b297b63f17 Merge topic 'AutoExport-vftable'
f513781bc5 WINDOWS_EXPORT_ALL_SYMBOLS: Export vftable symbol

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8201
2023-02-15 08:58:44 -05:00
Brad King
e2ed34abf8 Merge topic 'ninja-custom-command-depends'
082ccd7530 add_custom_command: Add DEPENDS_EXPLICIT_ONLY option for Ninja

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8198
2023-02-15 08:57:32 -05:00
Brad King
efca640726 Merge topic 'nullptr'
7b0a629693 Source: use C++11 nullptr

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8207
2023-02-15 08:17:06 -05:00
Kitware Robot
03c811edfd CMake Nightly Date Stamp 2023-02-15 00:01:12 -05:00
scivision
7b0a629693 Source: use C++11 nullptr 2023-02-14 14:34:03 -05:00
Ben Boeckel
dadaa28638 cmGeneratorTarget: synthetic targets don't have output either 2023-02-14 12:52:54 -05:00
Ben Boeckel
bde9d4ad01 cmCommonTargetGenerator: also consider synthetic targets 2023-02-14 12:34:46 -05:00
Ben Boeckel
c97de1047f cmMakefile: add support for a "synthesized" target
It is a normal target, but will end up copying its internals from
another target. Keep track of this state so that such copying can only
occur when intended.
2023-02-14 12:33:58 -05:00