1{ lib
2, stdenvNoCC
3, fetchzip
4, autoPatchelfHook
5, libcxx
6}:
7
8stdenvNoCC.mkDerivation rec {
9 pname = "aapt";
10 version = "8.4.1-11315950";
11
12 src =
13 let
14 urlAndHash =
15 if stdenvNoCC.isLinux then {
16 url = "https://dl.google.com/android/maven2/com/android/tools/build/aapt2/${version}/aapt2-${version}-linux.jar";
17 hash = "sha256-eSQaZrRtb5aCG320hrXAL256fxa/oMhBC4hcTA1KRxs=";
18 } else if stdenvNoCC.isDarwin then {
19 url = "https://dl.google.com/android/maven2/com/android/tools/build/aapt2/${version}/aapt2-${version}-osx.jar";
20 hash = "sha256-LUihNjase79JbUkHDb10A5d6pJ+VXDVfv7m09hkL8kY=";
21 } else throw "Unsupport platform: ${stdenvNoCC.system}";
22 in
23 fetchzip (urlAndHash // {
24 extension = "zip";
25 stripRoot = false;
26 });
27
28 nativeBuildInputs = lib.optionals stdenvNoCC.isLinux [ autoPatchelfHook ];
29 buildInputs = lib.optionals stdenvNoCC.isLinux [ libcxx ];
30
31 installPhase = ''
32 runHook preInstall
33
34 install -D aapt2 $out/bin/aapt2
35
36 runHook postInstall
37 '';
38
39 meta = {
40 description = "Build tool that compiles and packages Android app's resources";
41 mainProgram = "aapt2";
42 homepage = "https://developer.android.com/tools/aapt2";
43 license = lib.licenses.asl20;
44 maintainers = with lib.maintainers; [ linsui ];
45 platforms = lib.platforms.unix;
46 sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
47 };
48}
49