Makes it easier to keep documentation up to date and can deploy with GitHub pages. README.md moved to docs/README.md and is shared with GitHub Pages home page.
2.9 KiB
layout | title | parent | nav_order | permalink |
---|---|---|---|---|
default | Building From Source | Setup | 2 | /setup/building-from-source |
Building From Source
Building GodotXterm from source consists of four steps:
- Clone git submodules.
- Compile libuv using CMake.
- Compile godot-cpp using scons.
- Compile libtsm and libgodotxterm using scons.
This plugin follows the same format as the GDNative C++ Example. So if you can compile that example then you are 90% of the way there. The main difference is using CMake to compile libuv.
Dependencies
- Git (to clone git submodules)
- SCons (a software construction tool)
- A C/C++ compiler (i.e. gcc, llvm, MSVC)
- CMake (to compile libuv)
The Easy Way
Run the build script in addons/godot-xterm/native
:
cd addons/godot_xterm/native
./build.sh
On Windows you can use git-bash
to run this script.
Provided the dependencies above are installed then it should "just work™".
Binaries for your platform will be installed in addons/godot_xterm/native/bin
.
The build.sh script accepts args --target
which can be set to debug
(default) or release
and --disable-pty
to compile only the dependencies of Terminal node and not PTY node (even on platforms that support it).
The Hard Way
If you are having trouble compiling, study the build.sh script and the GitHub actions workflow in main.yml to see what commands are being run and how dependencies are installed. You can also dig into the SConstruct file, and don't forget to refer back to the GDNative C++ Example.
Also feel free to open a new discussion in the discussions section of this project.
Cross Compiling
Although the SConstruct file contains some logic for cross-compiling, it has never been tested. If you want compile for other platforms consider forking this repo and then pushing your changes to GitHub. The workflow defined in main.yml will run and build the library for all supported platforms (Linux, macOS, Windows, and HTML5).
Additionally, If you have docker
and docker-compose
installed, the build.sh script will also try to build the HTML5 binary inside a docker container and copy them to addons/godot_xterm/native/bin
.