Commit Graph

57854 Commits

Author SHA1 Message Date
Ben Boeckel b43bdaff3c cmCxxModuleMapper: implement support for GCC's module map format 2022-06-16 10:28:34 -04:00
Ben Boeckel 02d0f0e752 cmCxxModuleMapper: add source to handle module mapper contents
This will allow all generators to share an implementation for actually
writing out the module map formats.
2022-06-16 10:28:34 -04:00
Ben Boeckel a046a45aad cmGlobalNinjaGenerator: add a TODO for header units 2022-06-16 10:28:34 -04:00
Ben Boeckel 386465bf83 cmTarget: add support for C++ module fileset types
C++ modules have two variants which are of importance to CMake:

  - `CXX_MODULES`: interface modules (those using `export module M;`,
    `export module M:part;`, or `module M:internal_part;`)
  - `CXX_MODULE_HEADER_UNITS`: importable header units

Creating C++ modules or partitions are *not* supported in any other
source listing. This is because the source files must be installed (so
their scope matters), but not part of usage requirements (what it means
for a module source to be injected into a consumer is not clear at this
moment). Due to the way `FILE_SET` works with scopes, they are a perfect
fit as long as `INTERFACE` is not allowed (which it is not).
2022-06-16 10:28:34 -04:00
Ben Boeckel ff30a5397d cmExperimental: add an experimental feature to handle C++ modules 2022-06-14 19:27:30 -04:00
Ben Boeckel fb289dfcd9 cmExperimental: add a mechanism for experimental CMake features 2022-06-14 19:27:30 -04:00
Ben Boeckel fffc7813a4 cmGlobalXCodeGenerator: avoid unused parameter warnings 2022-06-14 19:27:30 -04:00
Ben Boeckel 7c7af09c5e cmScriptGenerator: remove unnecessary endif arguments 2022-06-14 19:27:30 -04:00
Ben Boeckel 030754a8b3 cmNinjaTargetGenerator: expand CFGIntDir for NMC 2022-06-14 19:27:30 -04:00
Ben Boeckel 52d47fd4e6 cmGlobalNinjaGenerator: simplify a string building call 2022-06-14 19:27:30 -04:00
Ben Boeckel a8115deebe cmCommonTargetGenerator: fix linked target directory for multi-config builds
Without this, `Ninja Multi-Config` generators were not getting the right
directory to look for `<LANG>Modules.json` files for module information.
2022-06-14 19:27:30 -04:00
Brad King ca8a5b05de Merge branch 'release-3.24' 2022-06-14 13:02:47 -04:00
Brad King 3b4bd019ff CMake 3.24.0-rc1 v3.24.0-rc1 2022-06-14 12:11:11 -04:00
Brad King 03fe737d7c Merge branch 'release-3.24' 2022-06-14 12:09:02 -04:00
Brad King e53f4e9142 Merge topic 'doctop'
75aedb1204 Help: Clarify PROJECT_IS_TOP_LEVEL behavior w.r.t. add_subdirectory

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7362
2022-06-14 12:09:02 -04:00
Brad King a26ab5cff4 Merge topic 'doctop' into release-3.24
75aedb1204 Help: Clarify PROJECT_IS_TOP_LEVEL behavior w.r.t. add_subdirectory

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7362
2022-06-14 12:09:01 -04:00
Brad King 06aed08f08 Merge branch 'release-3.24' 2022-06-14 12:06:02 -04:00
Brad King 49274457f1 Merge topic 'fortc-warn'
812000904e Tests: Add Fortran test C function prototype

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7363
2022-06-14 12:06:02 -04:00
Brad King ca00b751d2 Merge topic 'fortc-warn' into release-3.24
812000904e Tests: Add Fortran test C function prototype

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7363
2022-06-14 12:06:01 -04:00
Brad King e1b823e3f1 Merge branch 'release-3.24' 2022-06-14 12:05:10 -04:00
Brad King 0caca3d01b Merge topic 'update-kwiml'
82eb512637 Merge branch 'upstream-KWIML' into update-kwiml
2a233bb754 KWIML 2022-06-14 (7b9bd7fe)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7356
2022-06-14 12:05:09 -04:00
Brad King 6b5a0a0685 Merge topic 'update-kwiml' into release-3.24
82eb512637 Merge branch 'upstream-KWIML' into update-kwiml
2a233bb754 KWIML 2022-06-14 (7b9bd7fe)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7356
2022-06-14 12:05:08 -04:00
Brad King 82eb512637 Merge branch 'upstream-KWIML' into update-kwiml
# By KWIML Upstream
* upstream-KWIML:
  KWIML 2022-06-14 (7b9bd7fe)
2022-06-14 10:43:13 -04:00
KWIML Upstream 2a233bb754 KWIML 2022-06-14 (7b9bd7fe)
Code extracted from:

    https://gitlab.kitware.com/utils/kwiml.git

at commit 7b9bd7fe925396d06d3d9540b4863d6d2382661d (master).

Upstream Shortlog
-----------------

Brad King (2):
      33c2acf1 test: Replace sprintf with snprintf
      7b9bd7fe test: Avoid snprintf on MSVC before VS 2015
2022-06-14 10:43:13 -04:00
Michael Hirsch 75aedb1204 Help: Clarify PROJECT_IS_TOP_LEVEL behavior w.r.t. add_subdirectory
Clarify documentation added by commit 2df4badc5f (Help: Note
PROJECT_IS_TOP_LEVEL behavior w.r.t. ExternalProject, 2021-07-05,
v3.21.0-rc3~1^2).

Fixes: #23511
2022-06-14 08:06:02 -04:00
William R. Dieter 812000904e Tests: Add Fortran test C function prototype
One of three Fortran/C interface test functions is missing a prototype,
which causes warnings and sometimes errors depending on compiler versions
and flags.

Signed-off-by: William R. Dieter <william.r.dieter@intel.com>
2022-06-14 07:52:25 -04:00
Brad King b78624fd29 Merge branch 'release-3.24' 2022-06-14 07:40:11 -04:00
Brad King 1d1e29c51e Merge topic 'ci-rel-win-arm64'
d084718eb9 Utilities/Release: Add windows-arm64 package to file table
7a21173b0e gitlab-ci: Add job to build Windows arm64 binaries
06c6e76a12 ci: update to WiX 3.14.0.6526
cca3a73ef0 ci: Factor out Windows x86-family-specific package configuration
add3dc9508 ci: Re-order logic for downloading Qt during packaging
d0c9225a7e Utilities/Release: Add script to build Qt 6.3.0 Windows binaries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7360
2022-06-14 07:40:11 -04:00
Brad King 18687760f4 Merge topic 'ci-rel-win-arm64' into release-3.24
d084718eb9 Utilities/Release: Add windows-arm64 package to file table
7a21173b0e gitlab-ci: Add job to build Windows arm64 binaries
06c6e76a12 ci: update to WiX 3.14.0.6526
cca3a73ef0 ci: Factor out Windows x86-family-specific package configuration
add3dc9508 ci: Re-order logic for downloading Qt during packaging
d0c9225a7e Utilities/Release: Add script to build Qt 6.3.0 Windows binaries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7360
2022-06-14 07:40:10 -04:00
Brad King a6e5684c85 Merge branch 'release-3.24' 2022-06-14 07:35:21 -04:00
Brad King a6269e106c Merge topic 'lcc-warnings'
beb07cdda7 Source: Convince LCC that RAII variables are used

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7357
2022-06-14 07:35:21 -04:00
Brad King c1957df97a Merge topic 'lcc-warnings' into release-3.24
beb07cdda7 Source: Convince LCC that RAII variables are used

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7357
2022-06-14 07:35:20 -04:00
Brad King 8b927a54e6 Merge branch 'release-3.24' 2022-06-14 07:34:33 -04:00
Brad King 6207937a78 Merge topic 'spelling-occurred' into release-3.24
98a10290a8 cmSystemTools: Fix 'ErrorOccurred' spelling

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7353
2022-06-14 07:34:32 -04:00
Brad King 93812f95c6 Merge topic 'spelling-occurred'
98a10290a8 cmSystemTools: Fix 'ErrorOccurred' spelling

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7353
2022-06-14 07:34:32 -04:00
Kitware Robot a491edd54f CMake Nightly Date Stamp 2022-06-14 00:01:06 -04:00
Brad King d084718eb9 Utilities/Release: Add windows-arm64 package to file table 2022-06-13 15:27:34 -04:00
Brad King 7a21173b0e gitlab-ci: Add job to build Windows arm64 binaries
Base it on the approach from commit 4c7c66dcf5 (gitlab-ci: Add jobs to
make Windows x86_64 and i386 packages, 2022-05-19).  Leave out the
packaging and upload steps for now because they are only for the nightly
binaries, and will need a new release of CPack to pass the `arm64`
architecture to WiX.

Issue: #21902
2022-06-13 15:04:24 -04:00
Brad King 06c6e76a12 ci: update to WiX 3.14.0.6526
This version supports the `arm64` architecture.
2022-06-13 15:02:51 -04:00
Brad King cca3a73ef0 ci: Factor out Windows x86-family-specific package configuration 2022-06-13 15:02:51 -04:00
Brad King add3dc9508 ci: Re-order logic for downloading Qt during packaging
Prepare to support per-architecture URLs.
2022-06-13 15:02:51 -04:00
Brad King d0c9225a7e Utilities/Release: Add script to build Qt 6.3.0 Windows binaries
These may be used to build CMake binaries for Windows.
2022-06-13 15:02:47 -04:00
Brad King beb07cdda7 Source: Convince LCC that RAII variables are used
Extend the change from commit 5ad8862318 (Source: Convince NVHPC that
RAII variables are used, 2021-04-26, v3.21.0-rc1~254^2~1) to apply to
LCC too.
2022-06-13 11:07:35 -04:00
FeRD (Frank Dana) 98a10290a8 cmSystemTools: Fix 'ErrorOccurred' spelling
Rename the booleans 's_ErrorOccured' and 's_FatalErrorOccured' to
's_ErrorOccurred' and 's_FatalErrorOccurred', respectively.

Rename the getters and setters to 'Get[Fatal]ErrorOccurred' and
'Set[Fatal]ErrorOccurred', and fix all uses across the codebase.
2022-06-13 09:05:24 -04:00
Kitware Robot 87273cc9d3 CMake Nightly Date Stamp 2022-06-13 00:01:29 -04:00
Brad King 53e06965ef Merge branch 'release-3.24' 2022-06-12 07:21:12 -04:00
Brad King a60b2b8eb1 Merge topic 'zlib-mangle'
29c578c8fb zlib: Mangle symbols to avoid conflict with external transitive dependencies

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7351
2022-06-12 07:21:12 -04:00
Brad King 7116712771 Merge topic 'zlib-mangle' into release-3.24
29c578c8fb zlib: Mangle symbols to avoid conflict with external transitive dependencies

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7351
2022-06-12 07:21:11 -04:00
Kitware Robot b145553bca CMake Nightly Date Stamp 2022-06-12 00:01:11 -04:00
Brad King a6487b18cc Merge branch 'release-3.24' 2022-06-11 06:13:58 -04:00