diff options
Diffstat (limited to 'pkgs/development/mobile/androidenv/androidndk.nix')
-rw-r--r-- | pkgs/development/mobile/androidenv/androidndk.nix | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/pkgs/development/mobile/androidenv/androidndk.nix b/pkgs/development/mobile/androidenv/androidndk.nix deleted file mode 100644 index 23ae4378dc6..00000000000 --- a/pkgs/development/mobile/androidenv/androidndk.nix +++ /dev/null @@ -1,120 +0,0 @@ -{ stdenv, fetchurl, zlib, ncurses5, unzip, lib, makeWrapper -, coreutils, file, findutils, gawk, gnugrep, gnused, jdk, which -, platformTools, python3, libcxx, version, sha1s, bash, runCommand -, fullNDK ? false # set to true if you want other parts of the NDK - # that is not used by Nixpkgs like sources, - # examples, docs, or LLVM toolchains -}: - -let - makeStandaloneToolchain = api: arch: let - full_ndk = (ndk true); - in runCommand "makeStandaloneToolchain-${version}" {} '' - ${full_ndk}/libexec/${full_ndk.name}/build/tools/make_standalone_toolchain.py --api ${toString api} --arch ${arch} --install-dir $out - ''; - ndk = fullNDK: stdenv.mkDerivation rec { - name = "android-ndk-r${version}"; - inherit version; - - src = fetchurl { - url = "https://dl.google.com/android/repository/${name}-${stdenv.hostPlatform.parsed.kernel.name}-${stdenv.hostPlatform.parsed.cpu.name}.zip"; - sha1 = sha1s.${stdenv.hostPlatform.system} or (throw "platform ${stdenv.hostPlatform.system} not supported!"); - }; - - phases = "buildPhase"; - - nativeBuildInputs = [ unzip makeWrapper file ]; - - buildCommand = let - bin_path = "$out/bin"; - pkg_path = "$out/libexec/${name}"; - sed_script_1 = - "'s|^PROGDIR=`dirname $0`" + - "|PROGDIR=`dirname $(readlink -f $(which $0))`|'"; - runtime_paths = (lib.makeBinPath [ - coreutils file findutils - gawk gnugrep gnused - jdk python3 which - ]) + ":${platformTools}/platform-tools"; - in '' - mkdir -pv $out/libexec - cd $out/libexec - unzip -qq $src - - # so that it doesn't fail because of read-only permissions set - cd - - ${if (version == "10e") then - '' - patch -p1 \ - --no-backup-if-mismatch \ - -d $out/libexec/${name} < ${ ./make-standalone-toolchain_r10e.patch } - '' - else - '' - patch -p1 \ - --no-backup-if-mismatch \ - -d $out/libexec/${name} < ${ ./. + "/make_standalone_toolchain.py_" + "${version}" + ".patch" } - - sed -i 's,#!/usr/bin/env python,#!${python3}/bin/python,g' ${pkg_path}/build/tools/make_standalone_toolchain.py - sed -i 's,#!/bin/bash,#!${bash}/bin/bash,g' ${pkg_path}/build/tools/make_standalone_toolchain.py - wrapProgram ${pkg_path}/build/tools/make_standalone_toolchain.py --prefix PATH : "${runtime_paths}" - '' - } - - patchShebangs ${pkg_path} - - cd ${pkg_path} - - '' + lib.optionalString (!fullNDK) '' - # Steps to reduce output size - rm -rf docs sources tests - # We only support cross compiling with gcc for now - rm -rf toolchains/*-clang* toolchains/llvm* - '' + - - '' - find ${pkg_path}/toolchains \( \ - \( -type f -a -name "*.so*" \) -o \ - \( -type f -a -perm -0100 \) \ - \) -exec patchelf --set-interpreter ${stdenv.cc.libc.out}/lib/ld-*so.? \ - --set-rpath ${stdenv.lib.makeLibraryPath [ libcxx zlib ncurses5 ]} {} \; - # fix ineffective PROGDIR / MYNDKDIR determination - for i in ndk-build ${lib.optionalString (version == "10e") "ndk-gdb ndk-gdb-py"} - do - sed -i -e ${sed_script_1} $i - done - - # wrap - for i in ndk-build ${lib.optionalString (version == "10e") "ndk-gdb ndk-gdb-py ndk-which"} - do - wrapProgram "$(pwd)/$i" --prefix PATH : "${runtime_paths}" - done - - ${stdenv.lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux") '' - for i in ${pkg_path}/prebuilt/linux-x86_64/bin/* - do - if ! isELF $i; then continue; fi - patchelf --set-interpreter ${stdenv.cc.libc.out}/lib/ld-linux-x86-64.so.2 $i - patchelf --set-rpath ${stdenv.cc.cc.lib}/lib64 $i - done - ''} - - # make some executables available in PATH - mkdir -pv ${bin_path} - for i in \ - ndk-build ${lib.optionalString (version == "10e") "ndk-depends ndk-gdb ndk-gdb-py ndk-gdb.py ndk-stack ndk-which"} - do - ln -sf ${pkg_path}/$i ${bin_path}/$i - done - ''; - - meta = { - platforms = builtins.attrNames sha1s; - hydraPlatforms = []; - license = stdenv.lib.licenses.asl20; - }; - }; - passthru = { - inherit makeStandaloneToolchain; - }; -in lib.extendDerivation true passthru (ndk fullNDK) |