Matthew Woehlke
b4704d3ef8
Help/dev: Improve coding conventions guide
...
Improve the coding conventions specified in our source code guide:
- Recommend capitalization for locals as well as members.
- Remove exceptions for `const` placement; new code should always prefer
"east" style.
- Remove separate section; "Code Style" and "Code Conventions" are
similar enough to not need to make a distinction.
2024-12-10 14:18:08 -05:00
Brad King
24d97da543
Help/dev: Add some coding conventions to source code guide
2024-12-06 14:07:32 -05:00
Vito Gamberini
e0f9d81f09
STL: extend type_traits to deal with member pointers
2024-07-02 09:30:55 -04:00
Brad King
8a688e556e
Help/dev: Add a CMake Testing Guide
...
Document how developers working on CMake itself may run the test suite
locally.
Fixes : #26001
2024-06-05 12:58:47 -04:00
scivision
53a542936e
Help: Convert http URLs to https
2024-03-07 09:42:45 -05:00
Brad King
53d7d8d4ee
Help/dev: Update source code guide to specify clang-format version 15
2023-01-19 09:13:24 -05:00
Marc Chevrier
95a1b2c7b8
stl containers: enhance compatibility with C++14, C++17 and C++20
...
* Ensure various functions working with containers are available through
all headers as specified by the standard.
* Add C++20 std::ssize() function.
2022-05-07 11:04:06 +02:00
Marc Chevrier
b13eef5a90
cm::enum_set: container that contains a set of unique enum values.
...
The enum must be an `enum class` with an unsigned integer as base type.
2022-04-27 19:40:40 +02:00
Kyle Edwards
5585e8575b
Help: Add note about #pragma once
2020-09-03 09:30:27 -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
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
bf832ccf01
Utilities/Release: Add README.rst describing directory content
2019-08-23 13:31:54 -04:00
Regina Pfeifer
b05b778a2d
clang-tidy: Use = delete
2019-01-29 14:09:21 -05: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
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
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
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
Brad King
1c5471527e
Tests: Document test directory layout in a README.rst
...
Cross-reference the CMake Source Code Guide document.
Also drop the outdated `Tests/README` file.
2017-06-14 15:04:19 -04:00
Brad King
4e3483c007
Help/dev: Update source code guide to cover source tree layout
2017-06-14 15:03:50 -04:00
Daniel Pfeifer
d0b70e676e
Help/dev: Document CM_EQ_DELETE and CM_DISABLE_COPY
2017-04-25 22:08:47 +02:00
Brad King
caabb6e1f3
Help/dev: Adopt C++ subset rules in coding guide
...
Move the C++ subset rules from the `cmake-developer(7)` into our
dedicated coding guide since they do not need to be in user-facing
documentation.
2017-04-19 16:41:58 -04:00
Brad King
0fd255adf5
Help/dev: Adopt clang-format instructions in coding guide
...
Simplify the `CONTRIBUTING.rst` document by moving the code style
section over to our dedicated coding guide and linking to it instead.
2017-04-19 16:33:06 -04:00
Brad King
540b4cdc2b
Help/dev: Add a CMake Source Code Guide placeholder
...
Create a dedicated document to cover the CMake source code for
developers.
2017-04-19 16:18:26 -04:00