diff options
author | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2023-06-30 16:46:58 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-30 16:46:58 +0200 |
commit | d278661d767f5e1f8f68af2d0a706f5f044aa5d3 (patch) | |
tree | 7551129d94d8585517dfd667c5243175c484c2e8 | |
parent | 6f4d8f523814a4b89e89bf9ae2fbd4fc03e999f2 (diff) | |
parent | 552d696e0a282fa09cd305d00c720e9649364983 (diff) | |
download | fork-godot-webrtc-native-d278661d767f5e1f8f68af2d0a706f5f044aa5d3.tar.gz fork-godot-webrtc-native-d278661d767f5e1f8f68af2d0a706f5f044aa5d3.tar.bz2 fork-godot-webrtc-native-d278661d767f5e1f8f68af2d0a706f5f044aa5d3.zip |
Merge pull request #112 from Faless/spike/buildroot
Build Linux binaries using the Godot toolchian.
-rw-r--r-- | .github/workflows/build_release.yml | 18 | ||||
-rw-r--r-- | misc/patches/scons_path.diff | 29 |
2 files changed, 46 insertions, 1 deletions
diff --git a/.github/workflows/build_release.yml b/.github/workflows/build_release.yml index 833b8f7..03e6a08 100644 --- a/.github/workflows/build_release.yml +++ b/.github/workflows/build_release.yml @@ -76,12 +76,14 @@ jobs: # Linux - platform: linux arch: 'x86_32' + buildroot: 'i686' gdnative_flags: 'bits=32' sconsflags: '' os: 'ubuntu-20.04' cache-name: linux-x86_32 - platform: linux arch: 'x86_64' + buildroot: 'x86_64' gdnative_flags: 'bits=64' sconsflags: '' os: 'ubuntu-20.04' @@ -142,10 +144,24 @@ jobs: dpkg -l | grep ii | grep mingw update-alternatives --get-selections | grep mingw + - name: Setup Linux buildroot toolchain cache + if: ${{ matrix.platform == 'linux' }} + uses: actions/cache@v3 + with: + path: | + ${{ matrix.buildroot }}-godot-linux-gnu_sdk-buildroot.tar.bz2 + key: linux-${{ matrix.buildroot }}-buildroot + - name: Install Linux build dependencies if: ${{ matrix.platform == 'linux' }} run: | - sudo apt-get install build-essential gcc-multilib g++-multilib + sudo apt-get install build-essential gcc-multilib g++-multilib wget + if [ ! -f ${{ matrix.buildroot }}-godot-linux-gnu_sdk-buildroot.tar.bz2 ]; then + wget https://downloads.tuxfamily.org/godotengine/toolchains/linux/${{ matrix.buildroot }}-godot-linux-gnu_sdk-buildroot.tar.bz2 + fi + tar -xjf ${{ matrix.buildroot }}-godot-linux-gnu_sdk-buildroot.tar.bz2 + echo "$GITHUB_WORKSPACE/${{ matrix.buildroot }}-godot-linux-gnu_sdk-buildroot/bin" >> $GITHUB_PATH + patch -p1 < misc/patches/scons_path.diff - name: Set up Python 3.x uses: actions/setup-python@v4 diff --git a/misc/patches/scons_path.diff b/misc/patches/scons_path.diff new file mode 100644 index 0000000..d7273ea --- /dev/null +++ b/misc/patches/scons_path.diff @@ -0,0 +1,29 @@ +diff --git a/godot-cpp/SConstruct b/godot-cpp/SConstruct +index 27ee137..32b425e 100644 +--- a/godot-cpp/SConstruct ++++ b/godot-cpp/SConstruct +@@ -54,6 +54,8 @@ else: + # Default tools with no platform defaults to gnu toolchain. + # We apply platform specific toolchains via our custom tools. + env = Environment(tools=["default"], PLATFORM="") ++# Allows us to use Godot buildroot toolchain ++env.PrependENVPath("PATH", os.getenv("PATH")) + + # Default num_jobs to local cpu count if not user specified. + # SCons has a peculiarity where user-specified options won't be overridden + +diff --git a/godot-cpp-3.x/SConstruct b/godot-cpp-3.x/SConstruct +index f653d54..6f40377 100644 +--- a/godot-cpp-3.x/SConstruct ++++ b/godot-cpp-3.x/SConstruct +@@ -194,6 +194,9 @@ if host_platform == "windows" and env["platform"] != "android": + + opts.Update(env) + ++# Allows us to use Godot buildroot toolchain ++env.PrependENVPath("PATH", os.getenv("PATH")) ++ + # Require C++14 + if host_platform == "windows" and env["platform"] == "windows" and not env["use_mingw"]: + # MSVC + |