diff --git a/addons/godot_xterm/native/build.sh b/addons/godot_xterm/native/build.sh index 3cce71e..d545a18 100755 --- a/addons/godot_xterm/native/build.sh +++ b/addons/godot_xterm/native/build.sh @@ -1,6 +1,32 @@ #!/bin/sh set -e +# Parse args. +args=$@ +while [[ $# -gt 0 ]]; do + key="$1" + case $key in + -t|--target) + target="$2" + shift + shift + ;; + --disable-pty) + disable_pty="yes" + shift + ;; + *) + echo "Usage: ./build.sh [-t|--target ] [--disable_pty]"; + exit 128 + shift + ;; + esac +done +# Set defaults. +target=${target:-debug} +disable_pty=${disable_pty:-no} +nproc=$(nproc || sysctl -n hw.ncpu) + #GODOT_DIR Get the absolute path to the directory this script is in. NATIVE_DIR="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" @@ -9,7 +35,7 @@ NATIVE_DIR="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" # Run script inside a nix shell if it is available. if command -v nix-shell && [ $NIX_PATH ] && [ -z $IN_NIX_SHELL ]; then cd ${NATIVE_DIR} - nix-shell --pure --run "NIX_PATH=${NIX_PATH} ./build.sh $1" + nix-shell --pure --run "NIX_PATH=${NIX_PATH} ./build.sh $args" exit fi @@ -31,20 +57,23 @@ updateSubmodules GODOT_CPP_DIR ${NATIVE_DIR}/thirdparty/godot-cpp # Build godot-cpp bindings. cd ${GODOT_CPP_DIR} -scons generate_bindings=yes target=debug -j$(nproc) +echo "scons generate_bindings=yes target=$target -j$nproc" +scons generate_bindings=yes target=$target -j$nproc # Build libuv as a static library. cd ${LIBUV_DIR} mkdir build || true cd build -cmake .. -DCMAKE_BUILD_TYPE=debug -DBUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE +cmake .. -DCMAKE_BUILD_TYPE=$target -DBUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE cd .. -cmake --build build -j$(nproc) +cmake --build build --config $target -j$nproc # Build libgodot-xterm. cd ${NATIVE_DIR} -scons target=debug -j$(nproc) +scons target=$target disable_pty=$disable_pty -j$nproc # Use Docker to build libgodot-xterm javascript. -UID_GID="0:0" docker-compose build javascript -UID_GID="$(id -u):$(id -g)" docker-compose run javascript +if [ -x "$(command -v docker-compose)" ]; then + UID_GID="0:0" TARGET=$target docker-compose build javascript + UID_GID="$(id -u):$(id -g)" TARGET=$target docker-compose run javascript +fi diff --git a/addons/godot_xterm/native/docker-compose.yaml b/addons/godot_xterm/native/docker-compose.yaml index b1a9731..abb5e8b 100644 --- a/addons/godot_xterm/native/docker-compose.yaml +++ b/addons/godot_xterm/native/docker-compose.yaml @@ -9,6 +9,6 @@ services: - -c - | cd /src/thirdparty/godot-cpp - scons platform=javascript target=debug -j$$(nproc) + scons platform=javascript target=$${TARGET:-debug} -j$$(nproc) cd /src - scons platform=javascript target=debug -j$$(nproc) + scons platform=javascript target=$${TARGET:-debug} -j$$(nproc)