build: install AccessKit/ANGLE deps and fix build script arguments - #237
Merged
Merged
Conversation
Godot 4.7 links two prebuilt SDKs that are not part of the engine source tree: AccessKit (screen reader support) and ANGLE (OpenGL ES driver). When they are missing scons only prints a warning and silently disables those drivers, so the produced editor/templates lack features the official builds ship with. build.sh / build.ps1 now install them before building, using the installers from the godot/ checkout so the dependency versions always match the engine revision. Controlled by the new deps=<yes|no> option (default yes); mobile and web platforms use neither and are skipped, as is ANGLE on Linux. Also fixes defects found while verifying the 4.7 build: - build.sh ignored cpus= and always passed the default value to scons -j. - build.ps1 seeded its scons argument string from an undefined $internal_opts (emitting an empty platform=) and then concatenated the whole string onto itself. - build.ps1 forwarded release-windows.ps1's strip=yes to scons instead of consuming it as a build-script option. - setup-godot fetched ANGLE pinned at chromium/6601.2 (4.7 needs chromium/7219) and unpacked it outside build_deps; the build scripts now cover this.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Godot 4.7 links two prebuilt SDKs that are not part of the engine source tree: AccessKit (screen reader support) and ANGLE (the OpenGL ES rendering driver). When they are missing,
sconsonly prints a warning and silently disables those drivers, so the editor/templates we build lack features the official Godot builds ship with:build.sh/build.ps1now install them before invoking scons, using the installers from thegodot/checkout so the dependency versions always match the engine revision being built. A newdeps=<yes|no>option (defaultyes) controls this; already-installed dependencies are skipped, mobile/web platforms use neither, and ANGLE is additionally skipped on Linux.While verifying the 4.7 build, a few build-script defects surfaced and are fixed here as well:
build.shignoredcpus=and always passed the default value toscons -j($build_default_opts[cpus]instead of${opts[cpus]}).build.ps1seeded its scons argument string from an undefined$internal_opts(emitting an emptyplatform=) and then concatenated the whole string onto itself (+=with the full string).build.ps1forwardedrelease-windows.ps1'sstrip=yesto scons instead of consuming it as a build-script option. It is now a recognized option, documented as a no-op on MSVC (debug info lives in a separate.pdb)..github/actions/setup-godotfetched ANGLE pinned atchromium/6601.2(4.7 needschromium/7219) and unpacked it outsidebuild_deps. Those steps are removed since the build scripts now cover it; the Vulkan SDK and D3D12 steps are kept.Type of change
Verification
Verified on macOS (arm64) against
godot@ 4.7 (v4.7.2.rc) andgodot-cpp@ master:./scripts/build.sh(custom module,target=editor)ANGLE_ENABLED./scripts/build-extension.sh(GDExtension,api_version=4.7)Godot.app:SpriteStudioPlayer2D/SSABResourceregistered and instantiablebuild.shwith dependencies presentWindows and Linux are not verified by an actual build;
build.ps1was checked by parser validation and a dry run of its scons argument assembly.Notes
duplicate symbolwarnings for Rust symbols (rust_eh_personality,__rust_alloc, ...) shared betweenlibssruntime,libssconverterand 4.7's newlibaccesskit. The link succeeds; recorded here as a known 4.7 artifact.build.shstill carries a deadif [[ ${VERSION} =~ ^3\..* ]]branch for Godot 3.x. Left untouched to keep this change scoped.Checklist: