A minimal but complete Make-based C++23 project template.
This project packages a simple C++23 command-line program with essential tools
and workflows for building, testing, and maintaining the code. The program
prints the current date in the YY/MM/DD = Www
format (e.g. 25/05/14 = Wed
).
Project website: aafulei.github.io/cpp-today.
- Features
- Supported Platforms
- Getting Started
- Project Structure
- Project Website
- Author
- License
- Version
- Changelog
- Minimal, complete C++23 project template
- All-in-one Make-based build system
- Test scripts for manual and automated testing
- Code formatting support with Clang Format
- Editor tooling support via Clangd
- Built-in CI/CD workflows using GitHub Actions
- Project documentation website built with MkDocs
- Source code documentation generated with Doxygen
- Software documentation in GNU-style man page
- macOS
- Linux
Download pre-built binaries and the accompanying man page from the Release page.
Alternatively, you can build the program from source as shown below.
Clone the GitHub repository. Then use
make
to build the program:
make
-
If you downloaded the binary from the Release page, follow the instructions there.
-
If you built the program yourself using
make
, you can run it with:make run
Alternatively, to run manually:
./bin/release/today
You should see the current date printed out in the YY/MM/DD = Www
format, for
example:
25/05/14 = Wed
To install the program, run:
make install
The man
page will be installed alongside the program. You might need sudo
privileges. Run make help
for customization options. To install the
binary and the man page manually, copy them to their default destinations or to
directories of your choice:
Source | Default Destination |
---|---|
./bin/release/today |
/usr/local/bin/ |
./docs/man/today.1 |
/usr/local/share/man/man3/ |
To uninstall the program and the man page, run:
make uninstall
As is typical with command-line programs, run:
today --help
for help. If the man page has been installed, you can run:
man today
to view the manual page for more information.
For detailed user guides, please visit the project website aafulei.github.io/cpp-today.
.github/workflows/
— GitHub Actions workflowsdocs/
— project documentation files and assetssrc/
— source codetests/
— test scripts.clang-format
— Clang Format configuration.gitignore
— Git ignore patternsCHANGELOG.md
— changelogDoxyfile
— Doxygen configuration fileDoxygenLayout.xml
— Doxygen website layoutLICENSE
— license fileMakefile
— Make build scriptREADME.md
— repository documentation (this file)VERSION
- version filecompile_flags.txt
— Clangd compile optionsmkdocs.yml
— MkDocs project website configuration
As illustrated in the above diagram, information about this project is presented to users and developers in three distinct locations, each serving a specific purpose:
Location | Provides |
---|---|
GitHub repository | source code and project configuration |
MkDocs website | detailed users guides |
Doxygen documentation | detailed code reference |
Aaron Fu Lei
MIT
0.3.0
For detailed version updates, please see the CHANGELOG.