- Contributions and pull requests are very welcome, this project can always use extra help
- All contributions must be allowed under the license (
LICENCE.md
) - All contributions must abide by the Code of Conduct (
docs/CODE_OF_CONDUCT.md
)
- All contributions must be allowed under the license (
- The general process to contribute would be as follows:
- Fork the project, optionally create a branch from that
- Make your change and write a sensible commit message
- Ensure the project builds without any warnings, passes the linter and all workflows pass
- Create a merge request, and follow the template
- The aim of this document is to provide technical information, not be a general how-to guide
-
build
,debug
,library
,demo
,threads
andlint
support-j[CORE COUNT]
make build
- Builds the demo and thread demomake debug
- Cleans build directory, then runsmake build
in debug modemake library
- Buildsbuild/libammonite.so
make demo
- Builds a demo binary, a working demonstration of the renderermake threads
- Builds a test program for the thread poolmake install
- Installslibammonite.so
to system directories- The install path can be configured, by setting the environment variable
INSTALL_DIR
- The install path can be configured, by setting the environment variable
make headers
- Installs Ammonite headers to the system- The install path can be configured, by setting the environment variable
HEADER_DIR
- The install path can be configured, by setting the environment variable
make uninstall
- Removes installed library- Custom install locations can be removed using the environment variable
INSTALL_DIR
- Custom install locations can be removed using the environment variable
make icons
- Createsassets/icons/icon-*.png
fromassets/icons/icon.svg
make lint
- Lints the project usingclang-tidy
make clean
- Cleans the build area (build/
) and default runtime cache (cache/
)make cache
- Clears the default runtime binary cache, useful if running into issues with caching
-
DEBUG
:true / false
- Compiles the target in debug modeFAST
:true / false
- Compiles with-march=native
and uses a no-error contextINSTALL_DIR
- Installlibammonite.so
to a different locationHEADER_DIR
- Install Ammonite headers to a different locationCHECK_LEAKS
- Enables-fsanitize=leak
for runtime leak checkingCHECK_THREADS
- Enables-fsanitize=thread
for runtime data race checking
- To compile in debug mode, use
make debug
orDEBUG=true make ...
- This enables additional checks and debug output from the engine
- Makes use of
-fsanitize=address,undefined,leak
- It'll also enable graphics API debug warnings, messages and errors
- This will use a debug graphics context, if available
- Each object is compiled with debugging symbols, and
strip
is skipped
- Before swapping back to regular builds, run
make clean
make debug
will create a fresh build every timeDEBUG=true make ...
can be used on any target, and only rebuilds changed objects- If an initial
make clean
isn't used, the build may fail or produce broken results
- If an initial
- Spellings should use British English for both documentation and code
- New or modified build system targets need to be documented in the "Build system" section
- Non-development related targets should also be documented in
README.md
- Non-development related targets should also be documented in
- Any scripts should be placed in
scripts/
- Icons should be regenerated using
make icons