- CitrineOS core extracted (CSMS OCPP 2.0.1) - OpenOCPP extracted (firmware OCPP 1.6J/2.0.1) - ShapeShifter library installed (pip install -e) - ShapeShifter specification extracted - EVerest extracted TODO updated with progress
5.0 KiB
CMake Package trailbook
This package provides CMake functions and macros to include the build of a trailbook documentation in a CMake-based project.
Usage in CMake
To use this package in your CMake project, include the following line in your CMakeLists.txt file:
find_package(
trailbook
0.1.0
REQUIRED
PATHS "${CMAKE_SOURCE_DIR}/<path-to-the-package>"
)
- Specify the version to make sure you are using a compatible version of the package.
- If the package is not found, CMake will
stop with an error due to the
REQUIREDkeyword. - If the package is not installed in a standard
location, you can specify the path to the package using the
PATHSoption.
After finding the package, you can use the provided functions. At the moment, the package provides the following functions:
add_trailbook()
This function is the initial call for your trailbook documentation. It can be called as follows:
add_trailbook(
NAME <trailbook_name>
[STEM_DIRECTORY <stem_directory>]
[REQUIREMENTS_TXT <requirements_txt>]
INSTANCE_NAME <instance_name>
[DEPLOYED_DOCS_REPO_URL <deployed_docs_repo_url>]
[DEPLOYED_DOCS_REPO_BRANCH <deployed_docs_repo_branch>]
)
- This function needs to be called once per trailbook.
- The
NAMEargument specifies the name of the trailbook. This name will be used to create unique target names. - The optional
STEM_DIRECTORYargument specifies the directory containing the Sphinx source files. If not provided, it defaults to${CMAKE_CURRENT_SOURCE_DIR} - The optional
REQUIREMENTS_TXTargument specifies the path to arequirements.txtfile for Python dependencies. If not provided, it defaults to${STEM_DIRECTORY}/requirements.txt, if this file exists. This requirements file will be used to check if the required Python packages are installed and if not to install them, if a python virtual environment is active - The
INSTANCE_NAMEargument specifies the name that is used for the version in the multiversion structure. - The optional
DEPLOYED_DOCS_REPO_URLargument specifies the URL of the repository where the already deployed documentation is located. It is required ifTRAILBOOK_<NAME>_DOWNLOAD_ALL_VERSIONSis set toON. - The optional
DEPLOYED_DOCS_REPO_BRANCHargument specifies the branch of the deployed documentation repository. It defaults tomainif not provided.
Configuring
There are several options that can be configured for each trailbook by setting CMake variables.
TRAILBOOK_<NAME>_DOWNLOAD_ALL_VERSIONS
<NAME>should be replaced with the trailbook name provided in theadd_trailbook()function call.
If TRAILBOOK_<NAME>_DOWNLOAD_ALL_VERSIONS is set to ON,
the build process will attempt to download all previously deployed versions
of the trailbook from the specified repository. And then embed the
new version into the multiversion structure.
If TRAILBOOK_<NAME>_DOWNLOAD_ALL_VERSIONS is set to OFF (default),
only the current version of the trailbook will be built. For this
an empty multiversion skeleton will be created.
This configuration shouldn'T be changed after the first build.
TRAILBOOK_<NAME>_IS_RELEASE
<NAME>should be replaced with the trailbook name provided in theadd_trailbook()function call.
If TRAILBOOK_<NAME>_IS_RELEASE is set to ON (default),
the trailbook will be built as a release version. This means
that the latest version is updated, and the index.html and
404.html files are updated.
If TRAILBOOK_<NAME>_IS_RELEASE is set to OFF,
the mentioned files are not updated, and the latest version
is not changed. This can be used for example to build
nightly versions without affecting the released version.
Building
To build the trailbook documentation, simply run the following command, after configuring the project with CMake:
cmake --build <build_directory> --target trailbook_<trailbook_name>
- Replace
<build_directory>with the path to your CMake build directory. - Replace
<trailbook_name>with the name of your trailbook provided in theadd_trailbook()function call.
This target will trigger the full build of the trailbook documentation
Furthermore, you can use the following additional targets:
cmake --build <build_directory> --target trailbook_<trailbook_name>_preview
This target will start a local server to preview the built documentation.
cmake --build <build_directory> --target trailbook_<trailbook_name>_live_preview
This target will start a local server that watches for changes in the source files and automatically rebuilds the documentation and refreshes the preview in the browser.
How to build a extension for the trailbook package
The trailbook package provides a set of targets and target properties that can be used to hook into the build process of the trailbook documentation and extend it with custom functionality.
See the full explanation in the EXTENDING.md file.