You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# if building in Release mode, provide an option to explicitly enable tests if desired (always ON for other builds, OFF by default for Release builds)
47
-
cmake_dependent_option(ENABLE_TESTS "Build the unit tests in release mode?"OFFPROJECT_BUILD_RELEASEON)
47
+
cmake_dependent_option(ENABLE_TESTS "Build the unit tests in release mode?"OFFMY_HOVERCRAFT_IS_FULL_OF_EELS_BUILD_RELEASEON)
48
48
49
49
# Premature Optimisation causes problems. Commented out code below allows detection and enabling of LTO.
50
50
# It's not being used currently because it seems to cause linker errors with Clang++ on Ubuntu if the library
@@ -54,45 +54,44 @@ cmake_dependent_option(ENABLE_TESTS "Build the unit tests in release mode?" OFF
54
54
55
55
# include(CheckIPOSupported)
56
56
# check_ipo_supported(RESULT IPO_SUPPORTED)
57
-
# # If we're in Release mode, set PROJECT_USE_IPO to ON by default if it's detected as supported (user can always explicitly enable it in Release mode)
# # If we're in Release mode, set MY_HOVERCRAFT_IS_FULL_OF_EELS_USE_IPO to ON by default if it's detected as supported (user can always explicitly enable it in Release mode)
Copy file name to clipboardExpand all lines: README.md
+17-10Lines changed: 17 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,30 +4,37 @@ A template for a cross-platform C++20 project including modern CMake, unit-testi
4
4
## What's included
5
5
- CMake C++20 project skeleton, with strict warning flags enabled when using GCC or Clang.
6
6
- Usage of modern CMake practices for setting project-wide compiler options, etc. in a target-focused way.
7
-
- Properly exported CMake project that can be used by other CMake projects with minimal effort (no hand-written `FindMyProject.cmake` files)
7
+
- Properly exported CMake project that can be used by other CMake projects with minimal effort (no hand-written `FindProject.cmake` files)
8
8
- Unit testing using [Catch2](https://github.com/catchorg/Catch2), with automatic test discovery integration with CTest.
9
9
- Github Actions config files supporting building and running tests on Linux, macOS and Windows using the following compilers:
10
10
- Linux: GCC-10, Clang-10
11
11
- macOS: GCC-10, Clang-12
12
12
- Windows: MSVC 2019
13
13
- Building Releases on each platform when a Github Release is published, uploading these as build Artifacts.
14
14
- Doxygen config file with tweaks from the default config settings to provide a few more graphs (usage, caller/callee relationships) than are enabled by default.
15
+
- Doxygen docs are also built as part of release builds, and these are uploaded to the gh-pages branch under a versioned URL, versioned to the minor version.
16
+
> For these docs to work properly, you need to observe the expected tag naming format for the tags you select for your Github Releases. The system expects semantic-versioning to be used, with tags of the format `vX.X.X` where `X` is a number. Docs of previous versions of the same minor version are overwritten when a new version for that same minor version is released. Docs of other minor versions are never deleted automatically.
15
17
16
18
> **Note** There's also a Travis-CI build config for a cross-platform build of similar structure to the Github Actions builds, however this is no longer maintained as Travis-CI has been found to not support more recent versions of CMake on all platforms.
17
19
18
20
## Usage
19
21
1. Click the <kbd>Use this template</kbd> button at the top of this page to create your own new copy of this template
20
22
2. Fill in the project details on the next page as you desire
21
-
3. Once you've got your new project produced from this template, make changes in the following files:
-**Choose a Software License for your code** if it is open-source and you want other people to be able to use it with ease!
29
34
30
-
This _project template_ is placed into the public domain, but you may want to use a different license for your own projects that you create from this template. Here is the public domain dedication text for this project:
35
+
This _project template_ is placed into the public domain, but you should make your own choice of software license to use for projects that you create from this template.
36
+
37
+
Here is the public domain dedication text for this project:
31
38
32
39
```
33
40
This is free and unencumbered software released into the public domain.
@@ -57,4 +64,4 @@ A template for a cross-platform C++20 project including modern CMake, unit-testi
57
64
```
58
65
4. Enjoy!
59
66
60
-
> The above instructions are the bare minimum required to get your own project based on this template off of the ground. You'll almost certainly want to change more things in `Doxyfile` and definitely `README.md`, but that should be well within the capabilities of a developer and also beyond the scope of this guide.
67
+
> The above instructions are the bare minimum required to get your own project based on this template off of the ground. You'll almost certainly want to change more things in `Doxyfile` and definitely `README.md`, but these are documented better in other places and also beyond the scope of this guide.
0 commit comments