Commit Graph

72 Commits

Author SHA1 Message Date
Ben Boeckel
f71e7b8156 Help/dev/review: mention --pretty=reference
This was added in Git 2.25 (13 Jan 2020).
2021-04-07 12:28:57 -04:00
Brad King
7d498d6b43 Utilities/Sphinx: Add role and directive for 'genex' in CMake domain
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.
2021-01-18 12:35:41 -05:00
Brad King
cc1f53351c Help/dev: Mention 'cpack_gen' domain object in CMake Documentation Guide
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).
2021-01-18 12:35:40 -05:00
Brad King
954a9e9893 Help/dev: Mention 'envvar' domain object in CMake Documentation Guide
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).
2021-01-18 12:35:40 -05:00
Ben Boeckel
39cbbb59a5 ninja: add experimental infrastructure to generate gcc-format modmap files 2021-01-05 09:35:10 -05:00
Brad King
4b23359117 ninja: Add experimental infrastructure for C++20 module dependency scanning
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>
2021-01-05 09:34:55 -05:00
Brad King
d231d92289 Help/dev: Add a CMake Experimental Features Guide
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.
2020-11-24 16:29:34 -05:00
Brad King
8b13f1a527 Help/dev: Add maintainer guide step for post-release policy updates 2020-10-13 14:44:09 -04:00
Brad King
7074b4c08c Help/dev: Add maintainer guide steps for CI packaging pipeline updates 2020-10-01 12:16:24 -04:00
Kyle Edwards
5585e8575b Help: Add note about #pragma once 2020-09-03 09:30:27 -04:00
Brad King
e05b200be2 Help/dev: Update CMake Review Process document to suggest 'git describe'
Using `git describe --contains` is the preferred way to reference a
commit relative to a tag.
2020-08-20 07:29:06 -04:00
Jean-Christophe Fillion-Robin
207373802e Fix typos identified using codespell
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,\
"
```
2020-07-22 12:44:47 -04:00
Marc Chevrier
d654bf3449 STL Support: Add cm::filesystem::path in <cm/filesystem> 2020-07-09 17:02:42 +02:00
Marc Chevrier
4408f34cfe STL Support: Add function cm::quoted in <cm/iomanip> 2020-07-09 15:24:43 +02:00
Brad King
0c87afceab Help/dev: Add maintainer guide step for 'versionadded' documentation markup 2020-07-06 10:11:24 -04:00
Brad King
9710790a39 Help/dev: Add maintainer guide step for initial post-release development
Document steps for deprecating old policy settings and future-proofing
export files generated by `install(EXPORT)`.
2020-06-13 11:44:04 +10:00
Ben Boeckel
131b8cc8ae Help/dev: document other arguments to Do: test 2020-06-09 11:12:05 -04:00
Brad King
855ed80111 Help/dev: Update CMake Review Process document for GitLab CI
We have replaced use of `buildbot` with GitLab CI.  Update the
relevant section of our review process documentation.
2020-06-09 07:54:22 -04:00
Brad King
eb705b9531 Update links to gitlab.kitware.com repos to add -/
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.
2020-05-26 11:38:01 -04:00
Marc Chevrier
2faa3f6c55 Refactoring: Third-parties public headers are under cm3p prefix
Fixes: #20666
2020-05-07 12:06:08 +02:00
Marc Chevrier
aacd4e4a90 Refactoring: add cm::contains to <cmext/algorithm> 2020-04-17 10:00:03 +02:00
Marc Chevrier
a4ca1792f6 Help: Update CMake source developer guide for C++ standard library usage
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.
2020-03-14 12:40:13 +11:00
Brad King
75a5d1d4b1 Help/dev: Document "Backport:" footer for MR descriptions 2019-11-11 23:24:29 +11:00
Brad King
12fd957ce3 Help/dev: Add 'external-discussion' to the main workflow status list
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).
2019-11-06 12:02:23 -05:00
Brad King
2fae9101e5 Help/dev: Update maintainer guide for Discourse transition
Replace the post-release development announcement to the mailing list
with a post to the appropriate category on `discourse.cmake.org`.
2019-11-05 13:41:33 -05:00
Brad King
bf832ccf01 Utilities/Release: Add README.rst describing directory content 2019-08-23 13:31:54 -04:00
Brad King
4542ec239a Help/dev: Add release commit instructions to maintainer guide 2019-07-26 14:34:09 -04:00
Brad King
eb5ea5a505 CMakeVersion: Use '-rc0' version suffix on release branches prior to rc1
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.
2019-07-26 08:08:30 -04:00
Brad King
7b354baad5 CMakeVersion: Set CMake_VERSION_RC to 0 even in non-rc versions
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.
2019-07-25 09:23:48 -04:00
Brad King
5bb1e9a382 Merge topic 'doc-mr-resolve-states'
49f5b6f7bf Help: Document the expire and external discussion resolve states

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Acked-by: Brad King <brad.king@kitware.com>
Merge-request: !3377
2019-05-30 10:09:05 -04:00
Craig Scott
49f5b6f7bf Help: Document the expire and external discussion resolve states
Our practice of closing MRs temporarily while discussion
takes place in a separate issue isn't always well understood
by MR authors. Expiring a MR seems to be better understood,
but making it clear that it is also a temporary state is helpful.
2019-05-30 19:45:54 +10:00
Brad King
3a0ab3ba23 Utilities/Release: Teach upload script to compute version automatically
Read the version from `Source/CMakeVersion.cmake` instead of repeating it.
2019-05-24 08:04:11 -04:00
Regina Pfeifer
b05b778a2d clang-tidy: Use = delete 2019-01-29 14:09:21 -05:00
Ben Boeckel
939dc9a58c Help: prefer commit hashes in commit references
The logic is that the describe output is readily available using `git
tag --contains` locally. In addition, for a hypothetical commit which
landed in both v3.9.4 and v3.10.1, there is no "better" tag to refer to.
since v3.10.0's relation to such a commit is unclear either way.

Also mention that a `Fixes` trailer is preferred if the mention is just
to indicate a commit which introduced an error rather than writing a
complete sentence about it.
2019-01-25 12:10:10 -05:00
Brad King
b99448e016 Help/dev: Document where topic stage branch is held 2018-12-19 11:53:14 -05:00
Brad King
8369e3e782 Help/dev: Modernize module example in the CMake Documentation Guide 2018-11-20 21:03:01 +11:00
Brad King
a82282a08c Help/dev: Factor out a CMake Documentation Guide for developing the docs
Remove this content from the `cmake-developer(7)` manual because it
is relevant only to developers working on CMake itself.  Move it to
a guide in the developer documentation.
2018-11-14 14:38:13 -05:00
Brad King
06cc050c1f Help/dev: Drop 'size_t' preference from source code guide
We now use `std::size_t` in several places and it is fully supported by
C++11 compilers.  Drop the recommendation to prefer plain `size_t`.
2018-11-14 14:28:57 -05:00
Jean-Christophe Fillion-Robin
79ba596909 Help: Add link to cmake_common.cmake in test process docs 2018-08-05 19:33:28 +10:00
Craig Scott
6161a64a52 maint: Add further details about merging topics to release branch
The Maintain Current Release instructions previously assumed that
the topic branch had been merged to master. Add text to make this
explicit in the instructions as an initial verification step.

The previous instructions also made no mention of the commit
message for the merge to the release branch. This needs to include
a footer that mentions the merge request number for tracking
purposes.
2018-07-26 07:41:19 +10:00
Brad King
523c443d13 clang-format.bash: update to clang-format-6.0
Update `.clang-format` with configuration to make the 6.0 format as
close as possible to what 3.8 produced before.  Then revise the style:

* Indent preprocessor directives (a feature new since 3.8)
* Add a newline and indentation before inheritance `:` and `,`

Rename the Git attribute identifying the format to include the
clang-format version number: `format.clang-format-6.0`.  This will aid
external infrastructure in knowing what version of the tool to run.
2018-06-01 09:52:02 -04:00
Craig Scott
82e01cbfc5 Help: Clarify usage of Topic-rename 2018-05-30 06:56:11 +10:00
Brad King
bb33bb657e Help/dev: Add log step to 'release' branch instructions
Extend the maintainer guide with a reminder to self-review the
new ancestry of the `release` and `master` branches to ensure
that nothing unexpected was merged.
2018-01-25 09:44:36 -05:00
luzpaz
777e87ae00 Fix trivial typos in text
Some are user facing.

Found using

    codespell -q 3 --skip="./Utilities" -I .cmake-whitelist.txt`

whereby the whitelist contained:

    ans
    dum
    helpfull
    emmited
    emmitted
    buil
    iff
    isnt
    nto
    ot
    pathes
    substract
    te
    todays
    upto
    whitespaces
2017-11-03 10:25:05 -04:00
Brad King
b8018135b5 Use C++11 '= delete' instead of CM_EQ_DELETE
We now require C++11 support including `= delete`.  Drop use of
the old compatibility macro.
2017-09-28 09:50:18 -04:00
Matthias Maennich
f0489856e3 Retire std::auto_ptr and its macro CM_AUTO_PTR
Signed-off-by: Matthias Maennich <matthias@maennich.net>
2017-09-26 00:07:19 +02:00
Brad King
ee51f3746a Help/dev: Add commit reference format to review process guide 2017-08-29 13:01:47 -04:00
Brad King
c928439c23 Help/dev: Organize commit message instructions into subsections 2017-08-24 09:52:59 -04:00
Brad King
fd4fd9a276 Require C++11 to build CMake itself
CMake can now compile as C++11 on all supported platforms.  Check that
std::unique_ptr is available and fail early if missing.  This will allow
us to use C++11 more broadly in CMake's implementation (previously it
was restricted to the serve mode implementation).

Co-Author: Daniel Pfeifer <daniel@pfeifer-mail.de>
2017-08-16 10:13:38 -04:00
Craig Scott
11d00a17aa Help/dev: Add commit message guidelines 2017-08-08 21:17:32 +10:00