diff options
| author | Daniel Weipert <git@mail.dweipert.de> | 2024-01-26 14:51:36 +0100 | 
|---|---|---|
| committer | Daniel Weipert <git@mail.dweipert.de> | 2024-01-26 14:52:57 +0100 | 
| commit | d3bf2d09f740221771806789b00bf915c9f5f2e3 (patch) | |
| tree | 95f99eabd763dff1907f107393504ee75aa747d7 /mobile-kt/nix | |
| parent | 466d03a38cb01e9ff9a2d11be113a81c2bdce34a (diff) | |
Diffstat (limited to 'mobile-kt/nix')
| -rw-r--r-- | mobile-kt/nix/android-composition.nix | 14 | ||||
| -rwxr-xr-x | mobile-kt/nix/androidsdk-fixup.py | 24 | ||||
| -rw-r--r-- | mobile-kt/nix/androidsdk.nix | 29 | 
3 files changed, 67 insertions, 0 deletions
| diff --git a/mobile-kt/nix/android-composition.nix b/mobile-kt/nix/android-composition.nix new file mode 100644 index 0000000..10ba2a5 --- /dev/null +++ b/mobile-kt/nix/android-composition.nix @@ -0,0 +1,14 @@ +with (import <nixpkgs> { +  config.allowUnfree = true; +  config.android_sdk.accept_license = true; +}); + +androidenv.composeAndroidPackages { +  platformVersions = ["28" "30" "31"]; +  buildToolsVersions = ["30.0.3"]; + +  # includeEmulator = true; +  # includeSystemImages = true; +  # systemImageTypes = ["google_apis_playstore"]; +  # abiVersions = ["x86_64"]; +} diff --git a/mobile-kt/nix/androidsdk-fixup.py b/mobile-kt/nix/androidsdk-fixup.py new file mode 100755 index 0000000..ab419e6 --- /dev/null +++ b/mobile-kt/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-kt/nix/androidsdk.nix b/mobile-kt/nix/androidsdk.nix new file mode 100644 index 0000000..cf1ea04 --- /dev/null +++ b/mobile-kt/nix/androidsdk.nix @@ -0,0 +1,29 @@ +with (import <nixpkgs> {}); +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 +  ''; +} | 
