# Developing ## Setup Clone the repository and run `git submodule update --init --recursive`. See [here](https://docs.godotengine.org/en/latest/tutorials/scripting/gdextension/gdextension_cpp_example.html#doc-gdextension-cpp-example) on how to create and compile GDExtension libraries. ## Building for Testing To compile for Linux, run the following commands. Compiling for other platforms works analogously. ```sh $ scons target=template_debug platform=linux optimize=speed_trace arch=x86_64 -j8 $ scons target=template_release platform=linux optimize=speed arch=x86_64 -j8 ``` Output files are saved to `demo/addons/ropesim/bin/`. The repository contains utility scripts `compile_debug.sh/bat` and `compile_release.sh/bat` for convenience. Additional SCons arguments can be appended to the script call. ## Code Analysis Use `./run_clang_tidy.sh` to run `clang-tidy` checks for the project. This requires an existing `compile_commands.json`, which is automatically generated during build. It can also be generated by specifying the `compiledb` target to SCons, e.g. `./compile_debug.sh compiledb`. ## Production Builds The extension is built automatically using Github Actions for different platforms and targets. See [build.yml](.github/workflows/build.yml). This workflow automatically runs on push and pull request events and outputs a zip that can be easily distributed and installed.