Commit Graph

33734 Commits

Author SHA1 Message Date
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
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
Ben Boeckel
1d0426f642 cmTarget: make Visibility an enum class 2023-02-14 12:28:58 -05:00
Ben Boeckel
5b58695321 cmTarget: store visibility as an enum rather than bools
C++ modules are going to introduce a third concept of "synthesized"
targets, so update logic where needed to avoid assuming "not imported?
must be normal".

Also add an accessor method to perform queries against the visibility.
2023-02-14 12:23:15 -05:00
Brad King
283432a1aa Merge topic 'ninja-collation-dependencies'
b6a5382217 Ninja: depend on language module information files directly
0ace6053e8 Ninja: track modmap dependencies properly
b215cbc07d Ninja: remove the modmap as an output of the scanner

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8197
2023-02-14 09:16:42 -05:00
Brad King
06e62ff5e8 Merge topic 'KateDontIncludeFilesInBuildDir'
8802b81b0d Kate: don't include files in the CMakeFiles/ dir in the project

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8196
2023-02-14 09:15:59 -05:00
Malcolm Bechard
f513781bc5 WINDOWS_EXPORT_ALL_SYMBOLS: Export vftable symbol
`pybind11` requires access to this symbol to link in some cases.
Include this symbol when generating automatic exports via
`CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS`.

Fixes: #24406
2023-02-14 09:11:45 -05:00
Abdelmaged Khalifa
082ccd7530 add_custom_command: Add DEPENDS_EXPLICIT_ONLY option for Ninja
Add option `DEPENDS_EXPLICIT_ONLY` to `add_custom_command` to indicate
that implicit dependencies coming from users of the output are not
needed, and only consider dependencies explicitly specified in the
custom command.

Fixes: #17097
2023-02-14 08:56:59 -05:00
Kitware Robot
df52b85b07 CMake Nightly Date Stamp 2023-02-14 00:01:11 -05:00
Alexander Neundorf
8802b81b0d Kate: don't include files in the CMakeFiles/ dir in the project
These files are generated by cmake, they shouldn't be in the project.
2023-02-13 22:36:47 +01:00
Brad King
93edb4d0c0 Merge topic 'deprecate-pre-3.5'
3a4791548d Deprecate compatibility with CMake versions older than 3.5
1edf138506 Tests/RunCMake: Update cmake_minimum_required versions
65a1c379ee Tests/CTestTest*: Update cmake_minimum_required versions
589e6fdcd1 Tests: Update cmake_minimum_required versions in a few tests
3092b14ed0 Tests: Teach RunCMake to optionally ignore policy version deprecation warnings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !8192
2023-02-13 09:08:23 -05:00