Build Guide for Contributors

This page is the guide for contributors.

This library uses GoogleTest for unit tests and Google Benchmark for finding performance issues. Both dependencies will be automatically fetched by CMake scripts if they are required.

CMake Options for Development

Name

Description

asbind_cxxstd

C++ standard version for building asbind20. Must be 20 at least.
This can be set to a higher version like 23,
testing some advanced features that are only available in newer standard.

asbind_build_test

Build tests and enable ctest.

asbind_dev_warning_as_error

Enable warning-as-error during the development.
This option defaults to ON and only has effect when asbind_build_test is ON.

asbind_build_bench

Build benchmarks.

asbind_prefer_system_gtest

Prefer system-installed GTest over fetching from GitHub.
This option only has effect when asbind_build_test is ON.

asbind_prefer_system_bench

Prefer system-installed Google Benchmark over fetching from GitHub.
This option only has effect when asbind_build_bench is ON.

Generating Documentation Locally

Documentation is based on reStructuredText (.rst) files and Doxygen, then generated by Sphinx. This is used by ReadtheDocs, but you can also generate a local version for previewing modification to documents.

Firstly, follow installation guide of your platform to install Doxygen, Python and Sphinx. Then, use pip to install the remaining dependencies of documentation.

pip install -r doc/requirements.txt

Run the provided script to build the documentation:

cd doc
./make-doc.sh

The generated files are located in the build/sphinx-output directory, you can activate a simple HTTP server in this directory. You can preview the generated documentation in browser.

# Make sure you are in the "build/sphinx-output" directory
python -m http.server 8080

Now you can access localhost:8080 in your browser to read the documents.