Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 17 additions & 39 deletions Android/android.py
Original file line number Diff line number Diff line change
Expand Up @@ -393,17 +393,6 @@ def setup_testbed():
os.chmod(out_path, 0o755)


# run_testbed will build the app automatically, but it's useful to have this as
# a separate command to allow running the app outside of this script.
def build_testbed(context):
setup_sdk()
setup_testbed()
run(
[gradlew, "--console", "plain", "packageDebug", "packageDebugAndroidTest"],
cwd=TESTBED_DIR,
)


# Work around a bug involving sys.exit and TaskGroups
# (https://github.com/python/cpython/issues/101515).
def exit(*args):
Expand Down Expand Up @@ -645,6 +634,10 @@ async def gradle_task(context):
task_prefix = "connected"
env["ANDROID_SERIAL"] = context.connected

# Ensure that CROSS_BUILD_DIR is in the Gradle environment, regardless
# of whether it was set by environment variable or `--cross-build-dir`.
env["CROSS_BUILD_DIR"] = CROSS_BUILD_DIR

if context.ci_mode:
context.args[0:0] = [
# See _add_ci_python_opts in libregrtest/main.py.
Expand Down Expand Up @@ -872,6 +865,18 @@ def parse_args():

def add_parser(*args, **kwargs):
parser = subcommands.add_parser(*args, **kwargs)
parser.add_argument(
"--cross-build-dir",
action="store",
default=os.environ.get("CROSS_BUILD_DIR"),
dest="cross_build_dir",
type=Path,
help=(
"Path to the cross-build directory "
f"(default: {CROSS_BUILD_DIR}). Can also be set "
"with the CROSS_BUILD_DIR environment variable."
),
)
parser.add_argument(
"-v", "--verbose", action="count", default=0,
help="Show verbose output. Use twice to be even more verbose.")
Expand All @@ -884,7 +889,7 @@ def add_parser(*args, **kwargs):
)
configure_build = add_parser(
"configure-build", help="Run `configure` for the build Python")
make_build = add_parser(
add_parser(
"make-build", help="Run `make` for the build Python")
configure_host = add_parser(
"configure-host", help="Run `configure` for Android")
Expand All @@ -896,38 +901,12 @@ def add_parser(*args, **kwargs):
help="Delete build directories for the selected target"
)

add_parser("build-testbed", help="Build the testbed app")
test = add_parser("test", help="Run the testbed app")
package = add_parser("package", help="Make a release package")
ci = add_parser("ci", help="Run build, package and test")
env = add_parser("env", help="Print environment variables")

# Common arguments
# --cross-build-dir argument
for cmd in [
clean,
configure_build,
make_build,
configure_host,
make_host,
build,
package,
test,
ci,
]:
cmd.add_argument(
"--cross-build-dir",
action="store",
default=os.environ.get("CROSS_BUILD_DIR"),
dest="cross_build_dir",
type=Path,
help=(
"Path to the cross-build directory "
f"(default: {CROSS_BUILD_DIR}). Can also be set "
"with the CROSS_BUILD_DIR environment variable."
),
)

# --cache-dir option
for cmd in [configure_host, build, ci]:
cmd.add_argument(
Expand Down Expand Up @@ -1032,7 +1011,6 @@ def main():
"make-host": make_host_python,
"build": build_targets,
"clean": clean_targets,
"build-testbed": build_testbed,
"test": run_testbed,
"package": package,
"ci": ci,
Expand Down
2 changes: 1 addition & 1 deletion Android/testbed/app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ plugins {

val ANDROID_DIR = file("../..")
val PYTHON_DIR = ANDROID_DIR.parentFile!!
val PYTHON_CROSS_DIR = file("$PYTHON_DIR/cross-build")
val PYTHON_CROSS_DIR = file(System.getenv("CROSS_BUILD_DIR") ?: "$PYTHON_DIR/cross-build")
val inSourceTree = (
ANDROID_DIR.name == "Android" && file("$PYTHON_DIR/pyconfig.h.in").exists()
)
Expand Down
Loading