mirror of
https://github.com/florisboard/florisboard.git
synced 2024-09-19 19:42:20 +02:00
82 lines
2.7 KiB
Nix
82 lines
2.7 KiB
Nix
|
{
|
||
|
description = "florisboard build environment";
|
||
|
|
||
|
inputs = {
|
||
|
nixpkgs.url = "github:NixOS/nixpkgs";
|
||
|
flake-utils.url = "github:numtide/flake-utils";
|
||
|
};
|
||
|
|
||
|
outputs = {
|
||
|
self,
|
||
|
nixpkgs,
|
||
|
flake-utils,
|
||
|
}: let
|
||
|
supportedSystems = with flake-utils.lib.system; [x86_64-linux x86_64-darwin aarch64-darwin];
|
||
|
forAllSystems = f: nixpkgs.lib.genAttrs supportedSystems (system: f system);
|
||
|
android = {
|
||
|
versions = {
|
||
|
tools = "26.1.1";
|
||
|
platformTools = "33.0.3";
|
||
|
buildTools = "31.0.0";
|
||
|
ndk = "22.1.7171670";
|
||
|
cmake = "3.18.1";
|
||
|
emulator = "31.3.9";
|
||
|
};
|
||
|
platforms = ["32"];
|
||
|
};
|
||
|
in
|
||
|
flake-utils.lib.eachSystem supportedSystems
|
||
|
(
|
||
|
system: let
|
||
|
pkgs = import nixpkgs {
|
||
|
inherit system;
|
||
|
config = {
|
||
|
android_sdk.accept_license = true; # accept all of the sdk licenses
|
||
|
allowUnfree = true; # needed to get android stuff to compile
|
||
|
};
|
||
|
};
|
||
|
# Make the android enviornment we specify
|
||
|
android-composition = pkgs.androidenv.composeAndroidPackages {
|
||
|
toolsVersion = android.versions.tools;
|
||
|
platformToolsVersion = android.versions.platformTools;
|
||
|
buildToolsVersions = [android.versions.buildTools];
|
||
|
platformVersions = android.platforms;
|
||
|
cmakeVersions = [android.versions.cmake];
|
||
|
includeNDK = true;
|
||
|
ndkVersions = [android.versions.ndk];
|
||
|
includeEmulator = true;
|
||
|
emulatorVersion = android.versions.emulator;
|
||
|
};
|
||
|
android-sdk =
|
||
|
(pkgs.androidenv.composeAndroidPackages {
|
||
|
toolsVersion = android.versions.tools;
|
||
|
platformToolsVersion = android.versions.platformTools;
|
||
|
buildToolsVersions = [android.versions.buildTools];
|
||
|
platformVersions = android.platforms;
|
||
|
cmakeVersions = [android.versions.cmake];
|
||
|
includeNDK = true;
|
||
|
ndkVersions = [android.versions.ndk];
|
||
|
})
|
||
|
.androidsdk;
|
||
|
in rec {
|
||
|
devShells.default = pkgs.mkShell rec {
|
||
|
ANDROID_SDK_ROOT = "${android-sdk}/libexec/android-sdk";
|
||
|
ANDROID_NDK_ROOT = "${ANDROID_SDK_ROOT}/ndk-bundle";
|
||
|
GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${ANDROID_SDK_ROOT}/build-tools/${android.versions.buildTools}/aapt2";
|
||
|
JAVA_HOME = "${pkgs.jdk8.home}";
|
||
|
nativeBulidInputs = with pkgs; [
|
||
|
android-sdk
|
||
|
jdk8
|
||
|
clang
|
||
|
kotlin-language-server
|
||
|
];
|
||
|
|
||
|
# Use the same cmakeVersion here
|
||
|
shellHook = ''
|
||
|
export PATH="$(echo "$ANDROID_SDK_ROOT/cmake/${android.versions.cmake}".*/bin):$PATH"
|
||
|
'';
|
||
|
};
|
||
|
}
|
||
|
);
|
||
|
}
|