Skip to content

Commit

Permalink
Merge pull request #84440 from Calinou/scons-android-add-generate-apk…
Browse files Browse the repository at this point in the history
…-option

Add `generate_apk=yes` to generate an APK after building
  • Loading branch information
akien-mga committed Dec 13, 2023
2 parents 481d046 + 18152ac commit 2966db7
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 0 deletions.
1 change: 1 addition & 0 deletions SConstruct
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,7 @@ opts.Add(BoolVariable("debug_symbols", "Build with debugging symbols", False))
opts.Add(BoolVariable("separate_debug_symbols", "Extract debugging symbols to a separate file", False))
opts.Add(EnumVariable("lto", "Link-time optimization (production builds)", "none", ("none", "auto", "thin", "full")))
opts.Add(BoolVariable("production", "Set defaults to build Godot for use in production", False))
opts.Add(BoolVariable("generate_apk", "Generate an APK/AAB after building Android library by calling Gradle", False))

# Components
opts.Add(BoolVariable("deprecated", "Enable compatibility code for deprecated and removed features", True))
Expand Down
28 changes: 28 additions & 0 deletions platform/android/SCsub
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#!/usr/bin/env python

import subprocess

Import("env")

android_files = [
Expand Down Expand Up @@ -77,3 +79,29 @@ if lib_arch_dir != "":
str(env["ANDROID_NDK_ROOT"]) + "/sources/cxx-stl/llvm-libc++/libs/" + lib_arch_dir + "/libc++_shared.so"
)
env_android.Command(out_dir + "/libc++_shared.so", stl_lib_path, Copy("$TARGET", "$SOURCE"))

def generate_apk(target, source, env):
if env["target"] != "editor" and env["dev_build"]:
subprocess.run(
[
"./gradlew",
"generateDevTemplate",
"--quiet",
],
cwd="platform/android/java",
)
else:
# Android editor with `dev_build=yes` is handled by the `generateGodotEditor` task.
subprocess.run(
[
"./gradlew",
"generateGodotEditor" if env["target"] == "editor" else "generateGodotTemplates",
"--quiet",
],
cwd="platform/android/java",
)

if env["generate_apk"]:
generate_apk_command = env_android.Command("generate_apk", [], generate_apk)
command = env_android.AlwaysBuild(generate_apk_command)
env_android.Depends(command, [lib])

0 comments on commit 2966db7

Please sign in to comment.