From d3bf2d09f740221771806789b00bf915c9f5f2e3 Mon Sep 17 00:00:00 2001 From: Daniel Weipert Date: Fri, 26 Jan 2024 14:51:36 +0100 Subject: initial commit --- mobile-gradle/nix/android-composition.nix | 14 ++++++++++++++ mobile-gradle/nix/androidsdk-fixup.py | 24 ++++++++++++++++++++++++ mobile-gradle/nix/androidsdk.nix | 29 +++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 mobile-gradle/nix/android-composition.nix create mode 100755 mobile-gradle/nix/androidsdk-fixup.py create mode 100644 mobile-gradle/nix/androidsdk.nix (limited to 'mobile-gradle/nix') diff --git a/mobile-gradle/nix/android-composition.nix b/mobile-gradle/nix/android-composition.nix new file mode 100644 index 0000000..2db557a --- /dev/null +++ b/mobile-gradle/nix/android-composition.nix @@ -0,0 +1,14 @@ +with (import { + config.allowUnfree = true; + config.android_sdk.accept_license = true; +}); + +androidenv.composeAndroidPackages { + platformVersions = ["28" "30" "31"]; + buildToolsVersions = ["30.0.3" "33.0.2"]; + + # includeEmulator = true; + # includeSystemImages = true; + # systemImageTypes = ["google_apis_playstore"]; + # abiVersions = ["x86_64"]; +} diff --git a/mobile-gradle/nix/androidsdk-fixup.py b/mobile-gradle/nix/androidsdk-fixup.py new file mode 100755 index 0000000..ab419e6 --- /dev/null +++ b/mobile-gradle/nix/androidsdk-fixup.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python + +import sys, os, shutil + +ANDROIDSDK_PATH = sys.argv[1] +BUILD_TOOLS_PATH = f'{ANDROIDSDK_PATH}/build-tools' +PLATFORMS_PATH = f'{ANDROIDSDK_PATH}/platforms' + +BUILD_TOOLS = [os.path.join(BUILD_TOOLS_PATH, filename) for filename in os.listdir(BUILD_TOOLS_PATH)] +PLATFORMS = [os.path.join(PLATFORMS_PATH, filename) for filename in os.listdir(PLATFORMS_PATH)] + +for build_tool in BUILD_TOOLS: + if os.path.islink(build_tool): + print(f'build-tool "{os.path.basename(build_tool)}" is a symlink. Copying...') + link_src = os.readlink(build_tool) + os.unlink(build_tool) + shutil.copytree(link_src, build_tool) + +for platform in PLATFORMS: + if os.path.islink(platform): + print(f'platform "{os.path.basename(platform)}" is a symlink. Copying...') + link_src = os.readlink(platform) + os.unlink(platform) + shutil.copytree(link_src, platform) diff --git a/mobile-gradle/nix/androidsdk.nix b/mobile-gradle/nix/androidsdk.nix new file mode 100644 index 0000000..cf1ea04 --- /dev/null +++ b/mobile-gradle/nix/androidsdk.nix @@ -0,0 +1,29 @@ +with (import {}); +let + android-composition = import ./android-composition.nix; +in +stdenv.mkDerivation { + name = "androidsdk"; + + buildInputs = [ + python3Full + ]; + + src = "${android-composition.androidsdk}"; + + dontUnpack = true; + + buildPhase = '' + buildDir=$PWD/android-composition + mkdir $buildDir + + cp -r $src/* $buildDir + + chmod -R +w "$buildDir/libexec/android-sdk" + python ${./androidsdk-fixup.py} "$buildDir/libexec/android-sdk" + ''; + + installPhase = '' + cp -r $buildDir $out + ''; +} -- cgit v1.2.3