summaryrefslogtreecommitdiffstats
path: root/Help/dev
Commit message (Collapse)AuthorAgeFilesLines
* importstd: clarify when the experimental UUID must be availableBen Boeckel2024-05-151-1/+2
| | | | Fixes: #25980
* Experimental: add an experimental feature gate for `import std`Ben Boeckel2024-04-121-0/+21
|
* EXPORT_PACKAGE_DEPENDENCIES: Add experimental feature gateBrad King2024-03-121-0/+25
| | | | | | | Some design concerns have been raised after trying the 3.29 release candidates. Avoid committing to a stable public interface for now. Issue: #25767
* Help: Convert http URLs to httpsscivision2024-03-072-5/+5
|
* Help/dev: Add informal governance section to maintainer guideBrad King2023-12-061-0/+7
| | | | Document the status quo w.r.t. governance.
* Help/dev: Update UseJava export policy version in post-release developmentGold8562023-11-271-4/+5
|
* Merge branch 'backport-ci-fedora-39' into ci-fedora-39Brad King2023-11-171-1/+1
|\
| * codespell: Fix typosBrad King2023-11-171-1/+1
| |
* | try_{compile,run}: add LINKER_LANGUAGE optionscivision2023-10-161-0/+6
|/ | | | Fixes: #25326
* cmExperimental: remove the flag for C++ modulesBen Boeckel2023-10-021-130/+0
| | | | | | | All the major compilers now have scheduled releases with support for scanning, so remove the experimental gate. Fixes: #18355
* cmExperimental: recycle the C++ modules API UUIDBen Boeckel2023-08-171-1/+1
| | | | Supporting modules on IMPORTED targets is worth an update.
* CXXModules: add a variable for BMI-only compilationBen Boeckel2023-08-171-0/+6
| | | | | This will be required when dealing with imported targets which contain modules.
* Merge topic 'cmExperimental-uuid-doc'Brad King2023-08-081-1/+1
|\ | | | | | | | | | | | | 21c45a81c3 Help/experimental: fix UUID documentation Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8692
| * Help/experimental: fix UUID documentationBen Boeckel2023-08-071-1/+1
| | | | | | | | | | This was missed in be53c75852 (cmExperimental: recycle the C++ modules API UUID, 2023-07-21) from !8639.
* | Help/dev: Extend documentation guide with another section nesting levelBrad King2023-07-311-0/+1
|/
* cmExperimental: refresh the C++ modules UUIDBen Boeckel2023-07-131-1/+1
| | | | | The transitive support for Clang is a change in support for the ecosystem.
* cxxmodules: remove `CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP` variableBen Boeckel2023-06-011-7/+0
| | | | It is now subsumed by the UUID setting completely.
* cxxmodules: update the experimental UUIDBen Boeckel2023-05-311-1/+1
| | | | | Syntactic support for C++ header units has been removed, so a new UUID is warranted.
* Utilities/Sphinx: Add 'cref' roleMatthew Woehlke2023-03-141-0/+4
| | | | | | | | | | | | | Add a role that can be used to create local links (a la '`LINK`_'), but that also applies literal style. This is particularly useful for referring to subcommands within the command's documentation in a style that is consistent with ':command:`BAR <foo(BAR)>`' but is much less verbose. Although this is intended for subcommands, it works with any local reference. Co-authored-by: Brad King <brad.king@kitware.com>
* Merge topic 'smart-wrap-signatures'Brad King2023-03-141-0/+17
|\ | | | | | | | | | | | | 39ecaa5da1 Utilities/Sphinx: Improve word wrap of signatures Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8317
| * Utilities/Sphinx: Improve word wrap of signaturesMatthew Woehlke2023-03-131-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement logic to support several styles of parsing in the new signature directive that control where line breaks are allowed in a signature. The default is 'smart', which forbids breaks inside of square- or angle-brackets. The 'verbatim' option forbids all breaks. In all cases, breaks are always allowed where a newline appears in the source. This seems to Just Work for most writers, but HTML needs some special handling that is accomplished by a new CSS rule and assigning the 'nbsp' class to spaces that are not allowed to break. (ROFF's line wrapping is rather unfortunate here, as it prefers splitting and hyphenating words rather than breaking at a space.)
* | Utilities/Sphinx: Allow explicit target for genexMatthew Woehlke2023-03-131-0/+4
|/ | | | | | | | | | | | | | | | Split the genex directive into its own class, allowing a slight simplification of CMakeObject. Add ability to specify an explicit target name for the same. Use this to provide a target for the `$<TARGET_PROPERTY:prop>` generator expression which is otherwise missing one (due to overlap with `$<TARGET_PROPERTY:tgt,prop>`). With this one can write: :genex:`$<TARGET_PROPERTY:prop> <TARGET_PROPERTY:prop>` to link the second variant. Fixes: #24573
* Utilities/Sphinx: Make signatures linkableMatthew Woehlke2023-03-091-3/+3
| | | | | | | | | | | Add signatures to the collection of observed objects (which can be referenced elsewhere). Don't automatically strip parameters from a :command: reference, as these may now link signatures. (Do, however, munge them into 'text <ref>' form if they aren't already, as not doing so adds an extra '()' for some reason.) Correspondingly, change xref resolution to try to match 'command' when a ref like 'command(args)' is not matched, so that existing links to commands that have not been converted to use the new signature directive don't immediately break.
* Merge topic 'improve-doc-signatures'Brad King2023-03-071-38/+152
|\ | | | | | | | | | | | | | | | | | | | | 533ebb072b Help: Use signature directive for string command cd33f461a6 Help: Use signature directive for cmake_language command 74e3c1d313 Utilities/Sphinx: Add a directive to document command signatures c09b760484 Utilities/Sphinx: Drop commented-out code from cmake domain impl 6e85ad7f8b Help/dev: Add per-directive sections in CMake Documentation Guide Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8243
| * Utilities/Sphinx: Add a directive to document command signaturesMatthew Woehlke2023-03-031-13/+82
| | | | | | | | | | | | | | Add a `signature` directive to offer a CMake version of Sphinx's `function` directive, similar to that found in other domains (py, cpp, etc.). Like others, this takes one or more signatures as arguments and creates dt/dd nodes from the signatures and the directive contents.
| * Help/dev: Add per-directive sections in CMake Documentation GuideBrad King2023-02-241-25/+70
| |
* | Clang: Record Clang 16.0 flags for our experimental C++ modules supportBrad King2023-03-031-11/+30
| | | | | | | | LLVM/Clang 16.0 now contains official support for what CMake needs.
* | ccmake: Update minimum required version of CMake for curses checkBrad King2023-03-011-0/+1
|/ | | | | This should have been part of commit d6b811fb82 (Require CMake 3.13+ to configure CMake itself, 2022-02-22, v3.24.0-rc1~605^2~1).
* Help/dev: Update source code guide to specify clang-format version 15Brad King2023-01-191-1/+1
|
* cxxmodules: support new round of Clang patchesBen Boeckel2022-12-151-1/+1
| | | | | | | | | | These patches now support the `-MF` output, so remove the `none` support added just for the old patchset which did not use it. Also update the flag name to `-fmodule-output=`. Due to the new Clang module mapper flag, use a new experimental support UUID as well.
* Merge topic 'cxx-module-map-clang'Brad King2022-12-061-3/+6
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 2c558cfd1b gitlab-ci: add CI jobs for Clang with C++20 modules abd42e9cfc ci: add a Docker container for clang support of C++20 modules 51093f3002 Clang-FindBinUtils: also find `clang-scan-deps` 0b333de923 ci: add C++ module rules file for Clang 21b9fb1e8c cmCxxModuleMapper: support the `clang` module map format 9c66224668 cmNinjaTargetGenerator: skip setting `depfile` for `none` scantypes 9123a0991f cmNinjaTargetGenerator: use `.clear()` to empty out some strings Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Cristian Adam <cristian.adam@gmail.com> Merge-request: !7978
| * cmCxxModuleMapper: support the `clang` module map formatBen Boeckel2022-12-021-3/+6
| |
* | cmExperimental: recycle C++20 module support UUIDBen Boeckel2022-12-011-1/+1
| | | | | | | | Visual Studio support warrants a new ID.
* | Help/dev/experimental: document C++20 module limitationsBen Boeckel2022-12-011-0/+25
|/
* MSVC: don't opt into dyndep supportBen Boeckel2022-11-281-1/+2
| | | | | | | Instead, just set the variables for how scanning works since that is part of the compiler mechanisms. Fixes: #24198
* Help/dev/experimental: document the `msvc` module map formatBen Boeckel2022-11-211-2/+7
|
* msvc: bless MSVC 19.34 support for C++ modules as experimentalBen Boeckel2022-11-111-0/+4
| | | | Visual Studio 17.4 now contains official support for what CMake needs.
* cmScanDepFormat: support P1689R5Ben Boeckel2022-07-261-2/+2
| | | | This adds the `is-interface` key on provides fields.
* cmExperimental: update `CXX_MODULE_CMAKE_API` UUIDBen Boeckel2022-07-061-1/+1
| | | | The set of features available has been expanded, so update the UUID.
* cmTarget: add support for C++ module fileset typesBen Boeckel2022-06-161-5/+0
| | | | | | | | | | | | | | | 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-141-0/+17
|
* stl containers: enhance compatibility with C++14, C++17 and C++20Marc Chevrier2022-05-071-9/+95
| | | | | | * Ensure various functions working with containers are available through all headers as specified by the standard. * Add C++20 std::ssize() function.
* Merge topic 'cpp-modules-prep'Brad King2022-05-031-1/+8
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | c5b56b35c2 cmInstallExportGenerator: expose the temporary directory c107760417 cmNinjaTargetGenerator: support msvc-style deps discovery for scanning 64c15ec018 cmNinjaTargetGenerator: add flags for scanning based on the fileset type aaa18f15cf cmTarget: add support for querying all file set names cc4e19710d cmGlobalNinjaGenerator: use an extention based on the modmapfmt 97a68198c9 cmGlobalNinjaGenerator: escape `:` in module names 499009b79c cmTarget: avoid creating export entries if they don't exist 0513a1fe10 cmInstallGenerator: use CMake-private variables in generated code ... Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !7214
| * cmNinjaTargetGenerator: support msvc-style deps discovery for scanningBen Boeckel2022-04-271-1/+3
| |
| * cmNinjaTargetGenerator: add flags for scanning based on the fileset typeBen Boeckel2022-04-271-0/+5
| |
* | cm::enum_set: container that contains a set of unique enum values.Marc Chevrier2022-04-271-0/+5
|/ | | | The enum must be an `enum class` with an unsigned integer as base type.
* Merge branch 'backport-3.22-ci-package-uploads' into ci-package-uploadsBrad King2022-04-041-17/+1
|\
| * gitlab-ci: distinguish release and development pipeline schedulesBrad King2022-04-041-17/+1
| | | | | | | | | | | | | | | | Redefine the `CMAKE_CI_PACKAGE` pipeline schedule variable to indicate whether it is for a development version (`dev`) or a release version (`v[0-9]...`). Use this to automatically turn package upload jobs on or off without having to edit the jobs in `.gitlab-ci.yml` for release branches.
* | Help/dev: Clarify maintainer guide step for DEVEL_CMAKE_VERSIONBrad King2022-02-041-2/+2
| | | | | | | | | | | | The previous wording could be misread as ensuring the arguments to the call match the release version. Clarify that one needs to remove the call and replace it with the literal release version string.
* | Help/dev: Cover module function naming in CMake Documentation GuideBrad King2021-12-081-4/+57
|/