mirror of
https://github.com/EasyTier/EasyTier.git
synced 2025-09-26 12:41:23 +08:00

Some checks failed
EasyTier Core / pre_job (push) Has been cancelled
EasyTier Core / build_web (push) Has been cancelled
EasyTier Core / build (freebsd-13.2-x86_64, 13.2, ubuntu-22.04, x86_64-unknown-freebsd) (push) Has been cancelled
EasyTier Core / build (linux-aarch64, ubuntu-22.04, aarch64-unknown-linux-musl) (push) Has been cancelled
EasyTier Core / build (linux-arm, ubuntu-22.04, arm-unknown-linux-musleabi) (push) Has been cancelled
EasyTier Core / build (linux-armhf, ubuntu-22.04, arm-unknown-linux-musleabihf) (push) Has been cancelled
EasyTier Core / build (linux-armv7, ubuntu-22.04, armv7-unknown-linux-musleabi) (push) Has been cancelled
EasyTier Core / build (linux-armv7hf, ubuntu-22.04, armv7-unknown-linux-musleabihf) (push) Has been cancelled
EasyTier Core / build (linux-loongarch64, ubuntu-24.04, loongarch64-unknown-linux-musl) (push) Has been cancelled
EasyTier Core / build (linux-mips, ubuntu-22.04, mips-unknown-linux-musl) (push) Has been cancelled
EasyTier Core / build (linux-mipsel, ubuntu-22.04, mipsel-unknown-linux-musl) (push) Has been cancelled
EasyTier Core / build (linux-riscv64, ubuntu-22.04, riscv64gc-unknown-linux-musl) (push) Has been cancelled
EasyTier Core / build (linux-x86_64, ubuntu-22.04, x86_64-unknown-linux-musl) (push) Has been cancelled
EasyTier Core / build (macos-aarch64, macos-latest, aarch64-apple-darwin) (push) Has been cancelled
EasyTier Core / build (macos-x86_64, macos-latest, x86_64-apple-darwin) (push) Has been cancelled
EasyTier Core / build (windows-arm64, windows-latest, aarch64-pc-windows-msvc) (push) Has been cancelled
EasyTier Core / build (windows-i686, windows-latest, i686-pc-windows-msvc) (push) Has been cancelled
EasyTier Core / build (windows-x86_64, windows-latest, x86_64-pc-windows-msvc) (push) Has been cancelled
EasyTier Core / core-result (push) Has been cancelled
EasyTier Core / magisk_build (push) Has been cancelled
EasyTier GUI / pre_job (push) Has been cancelled
EasyTier GUI / build-gui (linux-aarch64, aarch64-unknown-linux-gnu, ubuntu-22.04, aarch64-unknown-linux-musl) (push) Has been cancelled
EasyTier GUI / build-gui (linux-x86_64, x86_64-unknown-linux-gnu, ubuntu-22.04, x86_64-unknown-linux-musl) (push) Has been cancelled
EasyTier GUI / build-gui (macos-aarch64, aarch64-apple-darwin, macos-latest, aarch64-apple-darwin) (push) Has been cancelled
EasyTier GUI / build-gui (macos-x86_64, x86_64-apple-darwin, macos-latest, x86_64-apple-darwin) (push) Has been cancelled
EasyTier GUI / build-gui (windows-arm64, aarch64-pc-windows-msvc, windows-latest, aarch64-pc-windows-msvc) (push) Has been cancelled
EasyTier GUI / build-gui (windows-i686, i686-pc-windows-msvc, windows-latest, i686-pc-windows-msvc) (push) Has been cancelled
EasyTier GUI / build-gui (windows-x86_64, x86_64-pc-windows-msvc, windows-latest, x86_64-pc-windows-msvc) (push) Has been cancelled
EasyTier GUI / gui-result (push) Has been cancelled
EasyTier Mobile / pre_job (push) Has been cancelled
EasyTier Mobile / build-mobile (android, ubuntu-22.04, android) (push) Has been cancelled
EasyTier Mobile / mobile-result (push) Has been cancelled
EasyTier OHOS / pre_job (push) Has been cancelled
EasyTier OHOS / build-ohos (push) Has been cancelled
EasyTier Test / pre_job (push) Has been cancelled
EasyTier Test / test (push) Has been cancelled
117 lines
3.1 KiB
Nix
117 lines
3.1 KiB
Nix
# Android build environment
|
|
{
|
|
pkgs,
|
|
nixpkgs,
|
|
system,
|
|
}:
|
|
|
|
let
|
|
androidEnv = pkgs.callPackage "${nixpkgs}/pkgs/development/mobile/androidenv" {
|
|
inherit pkgs;
|
|
licenseAccepted = true;
|
|
};
|
|
|
|
includeAuto = pkgs.stdenv.hostPlatform.isx86_64 || pkgs.stdenv.hostPlatform.isDarwin;
|
|
ndkVersion = "26.1.10909125";
|
|
ndkVersions = [ ndkVersion ];
|
|
|
|
sdkArgs = {
|
|
includeNDK = true;
|
|
includeSources = true;
|
|
includeSystemImages = false;
|
|
includeEmulator = false;
|
|
inherit ndkVersions;
|
|
useGoogleAPIs = true;
|
|
useGoogleTVAddOns = true;
|
|
buildToolsVersions = [ "34.0.0" ];
|
|
numLatestPlatformVersions = 10;
|
|
includeExtras = [
|
|
"extras;google;gcm"
|
|
]
|
|
++ pkgs.lib.optionals includeAuto [
|
|
"extras;google;auto"
|
|
];
|
|
extraLicenses = [
|
|
"android-sdk-preview-license"
|
|
"android-googletv-license"
|
|
"android-sdk-arm-dbt-license"
|
|
"google-gdk-license"
|
|
"intel-android-extra-license"
|
|
"intel-android-sysimage-license"
|
|
"mips-android-sysimage-license"
|
|
];
|
|
};
|
|
|
|
androidComposition = androidEnv.composeAndroidPackages sdkArgs;
|
|
androidSdk = androidComposition.androidsdk;
|
|
platformTools = androidComposition.platform-tools;
|
|
cmake = androidComposition.cmake;
|
|
ndkHostTag =
|
|
if pkgs.stdenv.isLinux then
|
|
"linux-x86_64"
|
|
else if pkgs.stdenv.isDarwin then
|
|
"darwin-x86_64"
|
|
else
|
|
"";
|
|
ndkToolchain = "${androidSdk}/libexec/android-sdk/ndk/${ndkVersion}/toolchains/llvm/prebuilt/${ndkHostTag}";
|
|
in
|
|
{
|
|
inherit
|
|
androidSdk
|
|
platformTools
|
|
cmake
|
|
ndkToolchain
|
|
ndkVersion
|
|
;
|
|
|
|
# List of packages required for Android development
|
|
packages = [
|
|
pkgs.jdk # openjdk 21
|
|
androidSdk
|
|
platformTools
|
|
cmake
|
|
pkgs.glibc_multi.dev
|
|
];
|
|
|
|
# Provide Rust extensions/targets for use by the upper-level flake
|
|
rust = {
|
|
extensions = [ "rust-std" ];
|
|
targets = [
|
|
"aarch64-linux-android"
|
|
"armv7-linux-androideabi"
|
|
"i686-linux-android"
|
|
"x86_64-linux-android"
|
|
];
|
|
};
|
|
|
|
# Android environment variables and shellHook
|
|
envVars = {
|
|
LANG = "C.UTF-8";
|
|
LC_ALL = "C.UTF-8";
|
|
JAVA_HOME = "${pkgs.jdk}/lib/openjdk";
|
|
ANDROID_SDK_ROOT = "${androidSdk}/libexec/android-sdk";
|
|
ANDROID_NDK_ROOT = "\${ANDROID_SDK_ROOT}/ndk-bundle";
|
|
NDK_HOME = "${androidSdk}/libexec/android-sdk/ndk/${ndkVersion}";
|
|
LIBCLANG_PATH = "${ndkToolchain}/lib";
|
|
KCP_SYS_EXTRA_HEADER_PATH = "${ndkToolchain}/lib/clang/19/include:${pkgs.glibc_multi.dev}/include";
|
|
ZSTD_SYS_STATIC = "1";
|
|
BINDGEN_EXTRA_CLANG_ARGS = "--sysroot=${ndkToolchain}/sysroot -I${ndkToolchain}/lib/clang/17/include ";
|
|
|
|
shellHook = ''
|
|
echo "Android environment activated"
|
|
export GRADLE_OPTS="-Dorg.gradle.project.android.aapt2FromMavenOverride=$(echo "$ANDROID_SDK_ROOT/build-tools/"*"/aapt2")"
|
|
cmake_root="$(echo "$ANDROID_SDK_ROOT/cmake/"*/)"
|
|
export PATH="$cmake_root/bin:$PATH"
|
|
|
|
unset NIX_CFLAGS_COMPILE
|
|
unset NIX_CFLAGS_COMPILE_FOR_BUILD
|
|
|
|
cat <<EOF > easytier-gui/local.properties
|
|
sdk.dir=$ANDROID_SDK_ROOT
|
|
ndk.dir=$ANDROID_NDK_ROOT
|
|
cmake.dir=$cmake_root
|
|
EOF
|
|
'';
|
|
};
|
|
}
|