Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to Fedora 39, update all toolchains #128

Merged
merged 1 commit into from
Oct 24, 2023
Merged

Conversation

akien-mga
Copy link
Member

@akien-mga akien-mga commented Sep 5, 2023

Update to Fedora 39, update all toolchains

  • Base image: Fedora 39
  • SCons: 4.5.2
  • Linux: GCC 10.2.0 built against glibc 2.19, binutils 2.35.1
  • Windows: MinGW 11.0.0, GCC 13.2.1, binutils 2.40
  • Web: Emscripten 3.1.39
  • Android: Android NDK 23.2.8568313, build-tools 33.0.2, platform android-33, CMake 3.22.1, JDK 17
  • macOS: Xcode 15.0 with Apple Clang (LLVM 16.0.0), MacOSX SDK 14.0
  • iOS: Xcode 15.0 with Apple Clang (LLVM 16.0.0), iPhoneOS SDK 17.0

Switches macOS/iOS builds to use Apple Clang, to maximize compatibility with upstream Xcode. This enables us to build the arm64 simulator for iOS. (Still doesn't work.)

Also add gettext which is needed by Godot build scripts to compile PO files to MO.


Draft for now as I haven't tested building Godot with those yet. I expect at least for Android we need some adjustments in upstream build scripts to use those toolchains (CC @m4gr3d).

@akien-mga akien-mga added the enhancement New feature or request label Sep 5, 2023
@akien-mga akien-mga force-pushed the f38-update-all branch 2 times, most recently from 1268639 to 8f8dd76 Compare September 5, 2023 09:05
# arm64 simulator
# Disabled for now as it doesn't work with cctools-port and current LLVM:
# Cf. https://github.com/tpoechtrager/cctools-port/issues/102
#sed -i 's/miphoneos-version-min/mios-simulator-version-min/g' usage_examples/ios_toolchain/wrapper.c && \
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For future reference, we discussed removing this with @bruvzg on RC:

<Akien> BTW, were our simulator builds a bit wonky due to this file being commented out, even though it seems relevant for both arm64_sim and x86_64_sim? https://github.com/godotengine/build-containers/blob/main/Dockerfile.ios#L20
<bruvzg> It seems to be for signing, which is irrelevant since we build static libs only. x86_64 simulator build were functional.
<bruvzg> And the rest of the args it's setting should be already set by Scons.
<Akien> Should I remove that line then to simplify the script?
<bruvzg> Probably, it was never used.

@akien-mga akien-mga changed the title Update to Fedora 38, update all toolchains Update to Fedora 39, update all toolchains Oct 5, 2023
- Base image: Fedora 39
- SCons: 4.5.2
- Linux: GCC 10.2.0 built against glibc 2.19, binutils 2.35.1
- Windows: MinGW 11.0.0, GCC 13.2.1, binutils 2.40
- Web: Emscripten 3.1.39
- Android: Android NDK 23.2.8568313, build-tools 33.0.2, platform android-33, CMake 3.22.1, JDK 17
  CMake 3.22.1, JDK 17
- macOS: Xcode 15.0 with Apple Clang (LLVM 16.0.0), MacOSX SDK 14.0
- iOS: Xcode 15.0 with Apple Clang (LLVM 16.0.0), iPhoneOS SDK 17.0

Switches macOS/iOS builds to use Apple Clang, to maximize compatibility with
upstream Xcode.

Also add gettext which is needed by Godot build scripts to compile PO files
to MO.
@akien-mga
Copy link
Member Author

I downgraded Emscripten to 1.3.39 to solve godotengine/godot#82865.

Also kept Android NDK to r23 and build-tools/platform to API 33, matching the upstream gradle config. We should look into targeting API 34 before it becomes a requirement next Summer though.

@akien-mga akien-mga marked this pull request as ready for review October 24, 2023 09:27
@akien-mga akien-mga merged commit bbb6673 into main Oct 24, 2023
@akien-mga akien-mga deleted the f38-update-all branch October 24, 2023 09:28
GodotBuilder pushed a commit to godotengine/godot-build-scripts that referenced this pull request Oct 24, 2023
Follow-up to godotengine/build-containers#128.

Also reverts #88 since these new images include JDK 17, and the closure
compiler issue was fixed upstream.

And removes the manual install of gettext which is now also part of the
images.

X11 libs should not be needed to generate the Mono glue anymore (they've been
unnecessary for a while already).
GodotBuilder pushed a commit that referenced this pull request Jan 16, 2024
Syncs with the config of the current `main` branch (as used for 4.2+)
as far as possible (backports the last couple of years of PRs, minus
the removal of some platforms and of the Mono builds).

Notably backports #128 and #131, giving us these toolchains:

- Base image: Fedora 39
- Mono version: 6.12.0.198
- SCons: 4.5.2
- Linux: GCC 13.2.0 built against glibc 2.28, binutils 2.40, from our own [Linux SDK](https://github.com/godotengine/buildroot)
- Windows: MinGW 11.0.0, GCC 13.2.1, binutils 2.40
- HTML5: Emscripten 3.1.39 (standard builds), Emscripten 1.39.9 (Mono builds)
- Android: Android NDK 23.2.8568313, build-tools 33.0.2, platform android-33, CMake 3.22.1, JDK 11
- macOS: Xcode 15.0 with Apple Clang (LLVM 16.0.0), MacOSX SDK 14.0
- iOS: Xcode 15.0 with Apple Clang (LLVM 16.0.0), iPhoneOS SDK 17.0
- UWP: Unchanged, current Dockerfile still unsupported
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant