summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Tests/RunCMake/CXXModules: add module-using examplesBen Boeckel2022-06-1626-1/+340
| | | | | | | | | | | | | | | | | | | | | | | | This includes a number of examples that should work for various levels of support in a compiler. There are a number of tests which are gated on various features in the compilers. To enable the tests, set `CMake_TEST_MODULE_COMPILATION` to a comma-separated (to avoid `;`-escaping problems) to the list of features which are supported: - `named`: Named modules are supported. - `shared`: Shared libraries with module usage at the API boundary are supported. - `partitions`: Named module partitions are supported. - `internal_partitions`: Named module internal partitions are supported. Additionally, a `CMake_TEST_MODULE_COMPILATION_RULES` file must be passed which contains the rules for how to build modules using the provided compiler. It will be included in the tests to provide these rules. To verify that the file provided works as intended, it must set `CMake_TEST_CXXModules_UUID` to a specific version to indicate that it is an expected file.
* cmGlobalNinjaGenerator: use `cmModuleMapper` implementationBen Boeckel2022-06-161-38/+31
|
* cmCxxModuleMapper: implement support for GCC's module map formatBen Boeckel2022-06-162-0/+47
|
* cmCxxModuleMapper: add source to handle module mapper contentsBen Boeckel2022-06-164-0/+80
| | | | | This will allow all generators to share an implementation for actually writing out the module map formats.
* cmGlobalNinjaGenerator: add a TODO for header unitsBen Boeckel2022-06-161-1/+2
|
* cmTarget: add support for C++ module fileset typesBen Boeckel2022-06-1682-74/+1290
| | | | | | | | | | | | | | | 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).
* cmExperimental: add an experimental feature to handle C++ modulesBen Boeckel2022-06-143-1/+27
|
* cmExperimental: add a mechanism for experimental CMake featuresBen Boeckel2022-06-144-0/+78
|
* cmGlobalXCodeGenerator: avoid unused parameter warningsBen Boeckel2022-06-141-0/+4
|
* cmScriptGenerator: remove unnecessary `endif` argumentsBen Boeckel2022-06-141-1/+1
|
* cmNinjaTargetGenerator: expand CFGIntDir for NMCBen Boeckel2022-06-141-2/+3
|
* cmGlobalNinjaGenerator: simplify a string building callBen Boeckel2022-06-141-1/+1
|
* cmCommonTargetGenerator: fix linked target directory for multi-config buildsBen Boeckel2022-06-141-0/+4
| | | | | Without this, `Ninja Multi-Config` generators were not getting the right directory to look for `<LANG>Modules.json` files for module information.
* Merge branch 'release-3.24'Brad King2022-06-140-0/+0
|\
| * CMake 3.24.0-rc1v3.24.0-rc1Brad King2022-06-141-1/+1
| |
* | Merge branch 'release-3.24'Brad King2022-06-140-0/+0
|\ \ | |/
| * Merge topic 'doctop' into release-3.24Brad King2022-06-142-6/+20
| |\ | | | | | | | | | | | | | | | | | | 75aedb1204 Help: Clarify PROJECT_IS_TOP_LEVEL behavior w.r.t. add_subdirectory Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7362
* | \ Merge topic 'doctop'Brad King2022-06-142-6/+20
|\ \ \ | | |/ | |/| | | | | | | | | | | | | 75aedb1204 Help: Clarify PROJECT_IS_TOP_LEVEL behavior w.r.t. add_subdirectory Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7362
| * | Help: Clarify PROJECT_IS_TOP_LEVEL behavior w.r.t. add_subdirectoryMichael Hirsch2022-06-142-6/+20
| | | | | | | | | | | | | | | | | | | | | | | | 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
* | | Merge branch 'release-3.24'Brad King2022-06-140-0/+0
|\ \ \ | | |/ | |/|
| * | Merge topic 'fortc-warn' into release-3.24Brad King2022-06-141-0/+1
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | 812000904e Tests: Add Fortran test C function prototype Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7363
* | \ \ Merge topic 'fortc-warn'Brad King2022-06-141-0/+1
|\ \ \ \ | | |/ / | |/| | | | | | | | | | | | | | | | | | 812000904e Tests: Add Fortran test C function prototype Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7363
| * | | Tests: Add Fortran test C function prototypeWilliam R. Dieter2022-06-141-0/+1
| | |/ | |/| | | | | | | | | | | | | | | | | | | 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>
* | | Merge branch 'release-3.24'Brad King2022-06-140-0/+0
|\ \ \ | | |/ | |/|
| * | Merge topic 'update-kwiml' into release-3.24Brad King2022-06-141-1/+7
| |\ \ | | |/ | |/| | | | | | | | | | | | | | | | | | | 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
* | | Merge topic 'update-kwiml'Brad King2022-06-141-1/+7
|\ \ \ | | |/ | |/| | | | | | | | | | | | | | | | | | | 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
| * | Merge branch 'upstream-KWIML' into update-kwimlBrad King2022-06-141-1/+7
| |\ \ | | | | | | | | | | | | | | | | | | | | # By KWIML Upstream * upstream-KWIML: KWIML 2022-06-14 (7b9bd7fe)
| | * | KWIML 2022-06-14 (7b9bd7fe)KWIML Upstream2022-06-141-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | Merge branch 'release-3.24'Brad King2022-06-140-0/+0
|\ \ \ \ | | |_|/ | |/| |
| * | | Merge topic 'ci-rel-win-arm64' into release-3.24Brad King2022-06-1415-21/+240
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | \ \ \ Merge topic 'ci-rel-win-arm64'Brad King2022-06-1415-21/+240
|\ \ \ \ \ | | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | | Utilities/Release: Add windows-arm64 package to file tableBrad King2022-06-133-1/+15
| | | | |
| * | | | gitlab-ci: Add job to build Windows arm64 binariesBrad King2022-06-136-0/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | | ci: update to WiX 3.14.0.6526Brad King2022-06-131-4/+4
| | | | | | | | | | | | | | | | | | | | This version supports the `arm64` architecture.
| * | | | ci: Factor out Windows x86-family-specific package configurationBrad King2022-06-134-14/+16
| | | | |
| * | | | ci: Re-order logic for downloading Qt during packagingBrad King2022-06-131-2/+2
| | | | | | | | | | | | | | | | | | | | Prepare to support per-architecture URLs.
| * | | | Utilities/Release: Add script to build Qt 6.3.0 Windows binariesBrad King2022-06-131-0/+135
| | |/ / | |/| | | | | | | | | | These may be used to build CMake binaries for Windows.
* | | | Merge branch 'release-3.24'Brad King2022-06-140-0/+0
|\ \ \ \ | | |/ / | |/| |
| * | | Merge topic 'lcc-warnings' into release-3.24Brad King2022-06-142-5/+5
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | \ \ \ Merge topic 'lcc-warnings'Brad King2022-06-142-5/+5
|\ \ \ \ \ | | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | | Source: Convince LCC that RAII variables are usedBrad King2022-06-132-5/+5
| | |/ / | |/| | | | | | | | | | | | | | | | | | 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.
* | | | Merge branch 'release-3.24'Brad King2022-06-140-0/+0
|\ \ \ \ | | |/ / | |/| |
| * | | Merge topic 'spelling-occurred' into release-3.24Brad King2022-06-1456-212/+212
| |\ \ \ | | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | 98a10290a8 cmSystemTools: Fix 'ErrorOccurred' spelling Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7353
* | | | Merge topic 'spelling-occurred'Brad King2022-06-1456-212/+212
|\ \ \ \ | | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | 98a10290a8 cmSystemTools: Fix 'ErrorOccurred' spelling Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7353
| * | | cmSystemTools: Fix 'ErrorOccurred' spellingFeRD (Frank Dana)2022-06-1356-212/+212
| |/ / | | | | | | | | | | | | | | | | | | | | | 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.
* | | CMake Nightly Date StampKitware Robot2022-06-141-1/+1
| | |
* | | CMake Nightly Date StampKitware Robot2022-06-131-1/+1
| | |
* | | Merge branch 'release-3.24'Brad King2022-06-120-0/+0
|\ \ \ | |/ /
| * | Merge topic 'zlib-mangle' into release-3.24Brad King2022-06-125-0/+155
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | \ \ Merge topic 'zlib-mangle'Brad King2022-06-125-0/+155
|\ \ \ \ | | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | 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