Merge pull request #44310 from primeos/android-studio-improvements
Android Studio improvements
This commit is contained in:
commit
8aa04df600
@ -1,4 +1,5 @@
|
||||
{ pname, version, build, sha256Hash, meta }:
|
||||
{ channel, pname, version, build, sha256Hash, deprecated ? false }:
|
||||
|
||||
{ bash
|
||||
, buildFHSUserEnv
|
||||
, coreutils
|
||||
@ -36,8 +37,21 @@
|
||||
}:
|
||||
|
||||
let
|
||||
# TODO: This is a bit stupid to be honest...
|
||||
# The problem is that we have to make sure this is only executed if the
|
||||
# derivation is actually build to avoid always printing this warning (e.g.
|
||||
# "nix-env -qaP"). Since this will always evaluate to "" it won't actually
|
||||
# change the derivation (only generate a side-effect) but we have to make
|
||||
# sure this expression is evaluated lazily!
|
||||
printDeprecationWarning = if deprecated then (builtins.trace ''
|
||||
android-studio-preview and androidStudioPackages.preview are old aliases
|
||||
and will be dropped at some point, please use androidStudioPackages.beta
|
||||
instead (corresponds to the correct channel name).''
|
||||
"")
|
||||
else "";
|
||||
drvName = "android-studio-${channel}-${version}";
|
||||
androidStudio = stdenv.mkDerivation {
|
||||
name = "${pname}-${version}";
|
||||
name = drvName;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://dl.google.com/dl/android/studio/ide-zips/${version}/android-studio-ide-${build}-linux.zip";
|
||||
@ -115,17 +129,32 @@ let
|
||||
# (e.g. `mksdcard`) have `/lib/ld-linux.so.2` set as the interpreter. An FHS
|
||||
# environment is used as a work around for that.
|
||||
fhsEnv = buildFHSUserEnv {
|
||||
name = "${pname}-fhs-env";
|
||||
name = "${drvName}-fhs-env";
|
||||
multiPkgs = pkgs: [ pkgs.ncurses5 ];
|
||||
};
|
||||
|
||||
in
|
||||
writeTextFile {
|
||||
name = "${pname}-${version}";
|
||||
name = "${drvName}-wrapper";
|
||||
# TODO: Rename preview -> beta (and add -stable suffix?):
|
||||
destination = "/bin/${pname}";
|
||||
executable = true;
|
||||
text = ''
|
||||
#!${bash}/bin/bash
|
||||
${fhsEnv}/bin/${pname}-fhs-env ${androidStudio}/bin/studio.sh
|
||||
'';
|
||||
} // { inherit meta; }
|
||||
${fhsEnv}/bin/${drvName}-fhs-env ${androidStudio}/bin/studio.sh
|
||||
'' + printDeprecationWarning;
|
||||
} // {
|
||||
meta = with stdenv.lib; {
|
||||
description = "The Official IDE for Android (${channel} channel)";
|
||||
longDescription = ''
|
||||
Android Studio is the official IDE for Android app development, based on
|
||||
IntelliJ IDEA.
|
||||
'';
|
||||
homepage = if channel == "stable"
|
||||
then https://developer.android.com/studio/index.html
|
||||
else https://developer.android.com/studio/preview/index.html;
|
||||
license = licenses.asl20;
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = with maintainers; [ primeos ];
|
||||
};
|
||||
}
|
||||
|
@ -12,60 +12,43 @@ let
|
||||
build = "173.4819257";
|
||||
sha256Hash = "196yaswbxh2nd83gimjxr8ggr5xkdxq7n3xlh6ax73v59pj4hryq";
|
||||
};
|
||||
latestVersion = {
|
||||
betaVersion = {
|
||||
version = "3.2.0.22"; # "Android Studio 3.2 Beta 5"
|
||||
build = "181.4913314";
|
||||
sha256Hash = "016nyn1pqviy089hg0dq7m4cqb39fdxdcy4zknkaq7dmgv1dj6x9";
|
||||
};
|
||||
latestVersion = { # canary & dev
|
||||
version = "3.3.0.2"; # "Android Studio 3.3 Canary 3"
|
||||
build = "181.4884283";
|
||||
sha256Hash = "0r93yzw87cgzz60p60gknij5vaqmv1a1kyd4cr9gx8cbxw46lhwh";
|
||||
};
|
||||
in rec {
|
||||
# Old alias
|
||||
preview = beta;
|
||||
|
||||
# Attributes are named by the corresponding release channels
|
||||
|
||||
stable = mkStudio (stableVersion // {
|
||||
pname = "android-studio";
|
||||
#pname = "android-studio-stable"; # TODO: Rename and provide symlink
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "The Official IDE for Android (stable channel)";
|
||||
longDescription = ''
|
||||
Android Studio is the official IDE for Android app development, based on
|
||||
IntelliJ IDEA.
|
||||
'';
|
||||
homepage = https://developer.android.com/studio/index.html;
|
||||
license = licenses.asl20;
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = with maintainers; [ primeos ];
|
||||
};
|
||||
# TODO: Drop old alias after 18.09
|
||||
preview = mkStudio (betaVersion // {
|
||||
channel = "beta";
|
||||
pname = "android-studio-preview";
|
||||
deprecated = true;
|
||||
});
|
||||
|
||||
beta = mkStudio (latestVersion // {
|
||||
pname = "android-studio-preview";
|
||||
#pname = "android-studio-beta"; # TODO: Rename and provide symlink
|
||||
version = "3.2.0.22"; # "Android Studio 3.2 Beta 5"
|
||||
build = "181.4913314";
|
||||
sha256Hash = "016nyn1pqviy089hg0dq7m4cqb39fdxdcy4zknkaq7dmgv1dj6x9";
|
||||
# Attributes are named by their corresponding release channels
|
||||
|
||||
meta = stable.meta // {
|
||||
description = "The Official IDE for Android (beta channel)";
|
||||
homepage = https://developer.android.com/studio/preview/index.html;
|
||||
};
|
||||
stable = mkStudio (stableVersion // {
|
||||
channel = "stable";
|
||||
pname = "android-studio";
|
||||
});
|
||||
|
||||
beta = mkStudio (betaVersion // {
|
||||
channel = "beta";
|
||||
pname = "android-studio-preview";
|
||||
});
|
||||
|
||||
dev = mkStudio (latestVersion // {
|
||||
channel = "dev";
|
||||
pname = "android-studio-dev";
|
||||
|
||||
meta = beta.meta // {
|
||||
description = "The Official IDE for Android (dev channel)";
|
||||
};
|
||||
});
|
||||
|
||||
canary = mkStudio (latestVersion // {
|
||||
channel = "canary";
|
||||
pname = "android-studio-canary";
|
||||
|
||||
meta = beta.meta // {
|
||||
description = "The Official IDE for Android (canary channel)";
|
||||
};
|
||||
});
|
||||
}
|
||||
|
@ -15182,9 +15182,10 @@ with pkgs;
|
||||
|
||||
amsn = callPackage ../applications/networking/instant-messengers/amsn { };
|
||||
|
||||
androidStudioPackages = callPackage ../applications/editors/android-studio { };
|
||||
androidStudioPackages = recurseIntoAttrs
|
||||
(callPackage ../applications/editors/android-studio { });
|
||||
android-studio = androidStudioPackages.stable;
|
||||
android-studio-preview = androidStudioPackages.beta;
|
||||
android-studio-preview = androidStudioPackages.preview; # TODO: Drop old alias after 18.09
|
||||
|
||||
antfs-cli = callPackage ../applications/misc/antfs-cli {};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user