summaryrefslogtreecommitdiffstats
path: root/Help/dev
Commit message (Collapse)AuthorAgeFilesLines
* 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
|/
* gitlab-ci: shorten job prefixesBen Boeckel2021-11-232-3/+16
| | | | | | | | | | This helps to maximize the amount of information visible in the GitLab web interface. Also document their meaning in the developer documentation and in the CI configuration file directly. See: https://gitlab.com/gitlab-org/gitlab/-/issues/8496
* cmRST: support `versionadded` and `versionchanged` directivesBen Boeckel2021-10-271-0/+5
| | | | | | | | This makes `versionadded` and `versionchanged` directives show up in `cmake --help-*` output instead of disappearing (and potentially making empty sections). Fixes: #22808
* Help/dev/experimental: Link to published P1689R4Brad King2021-06-281-8/+2
|
* cmScanDepFormat: P1689R4: Make work-directory optionalBen Boeckel2021-06-091-0/+1
|
* cmScanDepFormat: P1689R4: Factor out primary-output fieldBen Boeckel2021-06-091-0/+1
|
* cmScanDepFormat: P1689R4: Flatten future-compile members into parentBen Boeckel2021-06-091-0/+1
|
* cmScanDepFormat: Drop unused "outputs", "inputs", and "depends" fieldsBrad King2021-05-131-1/+4
| | | | | | | These fields are specified by our `P1689r3` paper, but are not actually needed. The dependencies of the scanning results themselves can be captured via normal depfile logic. Avoid saving this possibly-large information in the scanning results. It is not needed by later steps.
* Help/dev/review: Clarify instructions to update existing merge requestsSmit tay2021-05-031-2/+4
|
* Help/dev/review: mention `--pretty=reference`Ben Boeckel2021-04-071-1/+2
| | | | This was added in Git 2.25 (13 Jan 2020).
* Utilities/Sphinx: Add role and directive for 'genex' in CMake domainBrad King2021-01-181-2/+13
| | | | | | | | | | | | | | | | | This enables cross-reference syntax for CMake generator expressions: :genex:`SOME_GENEX` :genex:`$<SOME_GENEX>` :genex:`$<SOME_GENEX:...>` and definition of CMake generator expressions via a directive: .. genex:: SOME_GENEX .. genex:: $<SOME_GENEX> .. genex:: $<SOME_GENEX:...> It also adds generator expressions defined by the directive and by `Help/genex/SOME_GENEX.rst` documents to the index.
* Help/dev: Mention 'cpack_gen' domain object in CMake Documentation GuideBrad King2021-01-181-0/+5
| | | | | This was accidentally left out of commit 2a2829cc75 (Help: Add new section for CPack generators, 2018-06-15, v3.13.0-rc1~394^2~3).
* Help/dev: Mention 'envvar' domain object in CMake Documentation GuideBrad King2021-01-181-0/+10
| | | | | | This was accidentally left out of commit 8acf46caf1 (Utilities/Sphinx: Add role and directive for 'envvar' in CMake domain, 2018-04-19, v3.12.0-rc1~200^2~1).
* ninja: add experimental infrastructure to generate gcc-format modmap filesBen Boeckel2021-01-051-0/+20
|
* ninja: Add experimental infrastructure for C++20 module dependency scanningBrad King2021-01-051-1/+41
| | | | | | | | | | | | | | | | | Optionally enable this infrastructure through an undocumented `CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP` variable. Currently this is experimental and intended for use by compiler writers to implement their scanning tools. Warn as such when the feature is activated. Later when compilers provide the needed scanning tools we can enable this variable from our corresponding compiler information modules. It is never meant to be set by project code. When enabled, generate a build graph similar to what we use for Fortran module dependencies. There are some differences needed because we can scan dependencies without explicit preprocessing, and can directly compile the original source afterward. Co-Author: Ben Boeckel <ben.boeckel@kitware.com>
* Help/dev: Add a CMake Experimental Features GuideBrad King2020-11-242-0/+12
| | | | | | Initialize it with placeholder content. This document will serve to contain documentation for experimental features that are under development and not yet included in official documentation.
* Help/dev: Add maintainer guide step for post-release policy updatesBrad King2020-10-131-0/+10
|
* Help/dev: Add maintainer guide steps for CI packaging pipeline updatesBrad King2020-10-011-1/+17
|
* Help: Add note about #pragma onceKyle Edwards2020-09-031-0/+3
|
* Help/dev: Update CMake Review Process document to suggest 'git describe'Brad King2020-08-201-0/+1
| | | | | Using `git describe --contains` is the preferred way to reference a commit relative to a tag.
* Fix typos identified using codespellJean-Christophe Fillion-Robin2020-07-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See https://github.com/codespell-project/codespell#readme The following command was used: ``` codespell -q6 --skip="\ .git,\ *.json,\ ./Copyright.txt,\ ./Help/command/foreach.rst,\ ./Help/prop_test/REQUIRED_FILES.rst,\ ./Help/variable/CTEST_COVERAGE_COMMAND.rst,\ ./Modules/CMakeCheckCompilerFlagCommonPatterns.cmake,\ ./Modules/CMakeRCInformation.cmake,\ ./Modules/Internal/CPack/NSIS.template.in,\ ./Modules/FindMatlab.cmake,\ ./Modules/MatlabTestsRedirect.cmake,\ ./Modules/Platform/Windows-Clang.cmake,\ ./Modules/Platform/Windows-Intel-Fortran.cmake,\ ./Modules/Platform/Windows-MSVC.cmake,\ ./Source/CMakeVersion.cmake,\ ./Source/cmConvertMSBuildXMLToJSON.py,\ ./Source/cmCreateTestSourceList.cxx,\ ./Source/cmGlobalVisualStudio10Generator.cxx,\ ./Source/cmExportBuildFileGenerator.cxx,\ ./Source/cmExportInstallAndroidMKGenerator.cxx,\ ./Source/cmExportInstallFileGenerator.cxx,\ ./Source/cmExportSet.cxx,\ ./Source/cmExportTryCompileFileGenerator.cxx,\ ./Source/cmFindPackageCommand.cxx,\ ./Source/cmInstallCommand.cxx,\ ./Source/cmGeneratorExpressionLexer.cxx,\ ./Source/cmLocalVisualStudio7Generator.cxx,\ ./Source/cmOrderDirectories.cxx,\ ./Source/cmTarget.cxx,\ ./Source/kwsys/*,\ ./Source/QtDialog/CMakeSetupDialog.ui,\ ./Source/CPack/WiX/cmWIXRichTextFormatWriter.cxx,\ ./Source/CTest/cmParseCoberturaCoverage.h,\ ./Tests/CMakeTests/ImplicitLinkInfoTest.cmake.in,\ ./Tests/RunCMake/CPack/tests/DMG_SLA/English.license.rtf,\ ./Tests/RunCMake/CPack/tests/DMG_SLA/German.license.txt,\ ./Tests/RunCMake/CPack/tests/DMG_SLA/German.menu.txt,\ ./Tests/RunCMake/GoogleTest/xml_output.cpp,\ ./Tests/RunCMake/Make/TargetMessages*,\ ./Utilities/*,\ " \ -L "\ dependees,\ endwhile,\ fo,\ filetest,\ helpfull,\ nd,\ objext,\ stoll,\ supercedes,\ superceded,\ vas,\ varn,\ " ```
* STL Support: Add cm::filesystem::path in <cm/filesystem>Marc Chevrier2020-07-091-0/+3
|
* STL Support: Add function cm::quoted in <cm/iomanip>Marc Chevrier2020-07-091-0/+3
|
* Help/dev: Add maintainer guide step for 'versionadded' documentation markupBrad King2020-07-061-0/+17
|
* Help/dev: Add maintainer guide step for initial post-release developmentBrad King2020-06-131-0/+25
| | | | | Document steps for deprecating old policy settings and future-proofing export files generated by `install(EXPORT)`.
* Help/dev: document other arguments to `Do: test`Ben Boeckel2020-06-091-0/+13
|
* Help/dev: Update CMake Review Process document for GitLab CIBrad King2020-06-091-34/+31
| | | | | We have replaced use of `buildbot` with GitLab CI. Update the relevant section of our review process documentation.
* Update links to gitlab.kitware.com repos to add `-/`Brad King2020-05-262-5/+5
| | | | | | GitLab now uses a `/-/` component between the `group/project` part of the URL and the `{issues,merge_requests,tree}` part so that it can support `group/subgroup/project` with arbitrary depth.
* Refactoring: Third-parties public headers are under cm3p prefixMarc Chevrier2020-05-071-0/+15
| | | | Fixes: #20666
* Refactoring: add cm::contains to <cmext/algorithm>Marc Chevrier2020-04-171-4/+7
|
* Help: Update CMake source developer guide for C++ standard library usageMarc Chevrier2020-03-141-4/+140
| | | | | We now offer many C++14, C++17, C++20, and custom extensions to the C++ standard library that are available even when compiling as C++11.
* Help/dev: Document "Backport:" footer for MR descriptionsBrad King2019-11-112-3/+32
|
* Help/dev: Add 'external-discussion' to the main workflow status listBrad King2019-11-061-0/+4
| | | | | | This was accidentally left out of commit 49f5b6f7bf (Help: Document the expire and external discussion resolve states, 2019-05-26, v3.15.0-rc1~35^2).
* Help/dev: Update maintainer guide for Discourse transitionBrad King2019-11-051-5/+6
| | | | | Replace the post-release development announcement to the mailing list with a post to the appropriate category on `discourse.cmake.org`.
* Utilities/Release: Add README.rst describing directory contentBrad King2019-08-231-0/+2
|
* Help/dev: Add release commit instructions to maintainer guideBrad King2019-07-261-0/+39
|
* CMakeVersion: Use '-rc0' version suffix on release branches prior to rc1Brad King2019-07-261-5/+5
| | | | | | | | | | Revert the change from commit 7b354baad5 (CMakeVersion: Set CMake_VERSION_RC to 0 even in non-rc versions, 2019-07-25) and instead define a `0` value in `CMake_VERSION_RC` to mean `-rc0`. This distinguishes release branch versions prior to the first release candidate from the first release candidate itself. It also makes room for a dedicated "CMake $major.$minor.0-rc1" release commit for `-rc1` as we have for later release candidates and final releases.
* CMakeVersion: Set CMake_VERSION_RC to 0 even in non-rc versionsBrad King2019-07-251-2/+2
| | | | | | | The logic that uses this value already ignores any "false" value, so `0` is just as good as not being set at all. Using `0` for this role makes the version components look more symmetric and reduces the number of edits needed when creating releases.