mirror of
https://github.com/TheLartians/ModernCppStarter.git
synced 2025-08-30 13:41:13 +02:00
Create version header and update readme (#44)
* add note on github pages * add version information to standalone. closes #35. * update version info * move includes into project directory and create version header * fix style * add comment for version header location
This commit is contained in:
parent
032e506c12
commit
92adf2db25
6 changed files with 25 additions and 7 deletions
|
@ -23,7 +23,7 @@ include(cmake/CPM.cmake)
|
|||
CPMAddPackage(
|
||||
NAME PackageProject.cmake
|
||||
GITHUB_REPOSITORY TheLartians/PackageProject.cmake
|
||||
VERSION 1.2.1
|
||||
VERSION 1.3
|
||||
)
|
||||
|
||||
# ---- Add source files ----
|
||||
|
@ -58,11 +58,16 @@ target_include_directories(Greeter
|
|||
# ---- Create an installable target ----
|
||||
# this allows users to install and find the library via `find_package()`.
|
||||
|
||||
# the location where the project's version header will be placed
|
||||
# should match the project's regular header paths
|
||||
string(TOLOWER ${PROJECT_NAME}/version.h VERSION_HEADER_LOCATION)
|
||||
|
||||
packageProject(
|
||||
NAME ${PROJECT_NAME}
|
||||
VERSION ${PROJECT_VERSION}
|
||||
BINARY_DIR ${PROJECT_BINARY_DIR}
|
||||
INCLUDE_DIR ${PROJECT_SOURCE_DIR}/include
|
||||
INCLUDE_DESTINATION include/${PROJECT_NAME}-${PROJECT_VERSION}
|
||||
VERSION_HEADER "${VERSION_HEADER_LOCATION}"
|
||||
DEPENDENCIES ""
|
||||
)
|
||||
|
|
|
@ -25,7 +25,7 @@ This template is the result of learnings from many previous projects and should
|
|||
- Code formatting enforced by [clang-format](https://clang.llvm.org/docs/ClangFormat.html) via [Format.cmake](https://github.com/TheLartians/Format.cmake)
|
||||
- Reproducible dependency management via [CPM.cmake](https://github.com/TheLartians/CPM.cmake)
|
||||
- Installable target with versioning information via [PackageProject.cmake](https://github.com/TheLartians/PackageProject.cmake)
|
||||
- Automatic documentation generation with [Doxygen](https://www.doxygen.nl)
|
||||
- Automatic documentation generation and deployment with [Doxygen](https://www.doxygen.nl) and [GitHub Pages](https://pages.github.com)
|
||||
- Support for [sanitizer tools, and more](#additional-tools)
|
||||
|
||||
## Usage
|
||||
|
@ -84,7 +84,7 @@ See [Format.cmake](https://github.com/TheLartians/Format.cmake) for more options
|
|||
|
||||
### Build the documentation
|
||||
|
||||
The documentation is automatically built and updated after every [release](https://help.github.com/en/github/administering-a-repository/managing-releases-in-a-repository).
|
||||
The documentation is automatically built and [published](https://thelartians.github.io/ModernCppStarter) whenever a [GitHub Release](https://help.github.com/en/github/administering-a-repository/managing-releases-in-a-repository) is created.
|
||||
To manually build documentation, call the following command.
|
||||
|
||||
```bash
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include <greeter.h>
|
||||
#include <greeter/greeter.h>
|
||||
|
||||
using namespace greeter;
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include <greeter.h>
|
||||
#include <greeter/greeter.h>
|
||||
#include <greeter/version.h>
|
||||
|
||||
#include <cxxopts.hpp>
|
||||
#include <iostream>
|
||||
|
@ -21,6 +22,7 @@ int main(int argc, char** argv) {
|
|||
// clang-format off
|
||||
options.add_options()
|
||||
("h,help", "Show help")
|
||||
("v,version", "Print the current version number")
|
||||
("n,name", "Name to greet", cxxopts::value(name)->default_value("World"))
|
||||
("l,lang", "Language code to use", cxxopts::value(language)->default_value("en"))
|
||||
;
|
||||
|
@ -31,11 +33,14 @@ int main(int argc, char** argv) {
|
|||
if (result["help"].as<bool>()) {
|
||||
std::cout << options.help() << std::endl;
|
||||
return 0;
|
||||
} else if (result["version"].as<bool>()) {
|
||||
std::cout << "Greeter, version " << GREETER_VERSION << std::endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
auto langIt = languages.find(language);
|
||||
if (langIt == languages.end()) {
|
||||
std::cout << "unknown language code: " << language << std::endl;
|
||||
std::cerr << "unknown language code: " << language << std::endl;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
#include <doctest/doctest.h>
|
||||
#include <greeter.h>
|
||||
#include <greeter/greeter.h>
|
||||
#include <greeter/version.h>
|
||||
|
||||
#include <string>
|
||||
|
||||
TEST_CASE("Greeter") {
|
||||
using namespace greeter;
|
||||
|
@ -11,3 +14,8 @@ TEST_CASE("Greeter") {
|
|||
CHECK(greeter.greet(LanguageCode::ES) == "¡Hola Tests!");
|
||||
CHECK(greeter.greet(LanguageCode::FR) == "Bonjour Tests!");
|
||||
}
|
||||
|
||||
TEST_CASE("Greeter version") {
|
||||
static_assert(std::string_view(GREETER_VERSION) == std::string_view("1.0"));
|
||||
CHECK(std::string(GREETER_VERSION) == std::string("1.0"));
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue