diff options
| -rw-r--r-- | Makefile | 12 | ||||
| -rw-r--r-- | nix/android-composition.nix | 14 | ||||
| -rwxr-xr-x | nix/android-shell-shellHook.py | 22 | ||||
| -rw-r--r-- | shell.nix | 25 | 
4 files changed, 53 insertions, 20 deletions
@@ -1,9 +1,13 @@  build: app/java/src/*.java  	bazel build //app/java:dnsproxy -watch: -	ibazel build //app/java:dnsproxy +dev: +	bazel mobile-install //app/java:dnsproxy --start_app #--debug_app --java_debug  install: -	adb install bazel-bin/app/java/dnsproxy.apk -	#bazel mobile-install //app/java:dnsproxy +	bazel mobile-install //app/java:dnsproxy +	#adb install bazel-bin/app/java/dnsproxy.apk + +emulate: +	# avdmanager create --name dnsproxy -k "system-images;android-28;google_apis_playstore;x86_64" +	emulator @dnsproxy -no-boot-anim diff --git a/nix/android-composition.nix b/nix/android-composition.nix new file mode 100644 index 0000000..17c6e69 --- /dev/null +++ b/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/nix/android-shell-shellHook.py b/nix/android-shell-shellHook.py new file mode 100755 index 0000000..53a542b --- /dev/null +++ b/nix/android-shell-shellHook.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python + +import sys, os, shutil + +BUILD_TOOLS_PATH = sys.argv[1] +PLATFORMS_PATH = sys.argv[2] +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) @@ -1,31 +1,24 @@ -with (import <nixpkgs> { -  config.android_sdk.accept_license = true; -}); +with (import <nixpkgs> {});  let    jdk = jdk11; -  android_composition = androidenv.composeAndroidPackages { -    platformVersions = ["28"]; -  }; -  #androidsdk = androidenv.androidPkgs_9_0.androidsdk; -  androidsdk = android_composition.androidsdk; +  android-composition = import ./nix/android-composition.nix;  in  mkShell rec { +  name = "android-shell"; +  	buildInputs = [      jdk -    androidsdk -    #android-studio -    bazel -    python2 -    bazel-watcher -    java-language-server +    android-composition.androidsdk +    bazel_4  	];    JAVA_HOME = jdk.home; -  ANDROID_SDK_ROOT = "${androidsdk}/libexec/android-sdk"; +  ANDROID_SDK_ROOT = "${android-composition.androidsdk}/libexec/android-sdk";    ANDROID_NDK_ROOT = "${ANDROID_SDK_ROOT}/ndk-bundle";    ANDROID_HOME = "${ANDROID_SDK_ROOT}";    shellHook = '' -    echo ":lua require('lspconfig').java_language_server.setup { cmd = { '${java-language-server}/share/java/java-language-server/lang_server_linux.sh' } }" +    # TODO: replace with nix builtins +    sudo python ./nix/android-shell-shellHook.py ${ANDROID_HOME}/build-tools ${ANDROID_HOME}/platforms    '';  }  | 
