net-proxy/daed: add 0.7.0, drop 0.6.0
[gentoo-zh.git] / dev-util / android-studio / android-studio-2024.1.1.13.ebuild
blob268bbbc1ff2fc1ce8310d78671cbf05bd720c170
1 # Copyright 1999-2024 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
4 EAPI=8
6 inherit desktop wrapper
8 QA_PREBUILT="
9         opt/${PN}/bin/*
10         opt/${PN}/jbr/bin/*
11         opt/${PN}/jbr/lib/*
12         opt/${PN}/jbr/lib/jli/*
13         opt/${PN}/jbr/lib/server/*
14         opt/${PN}/lib/pty4j/linux/*/*
15         opt/${PN}/lib/native/*/*
16         opt/${PN}/lib/jna/*/*
17         opt/${PN}/plugins/android/resources/installer/*/*
18         opt/${PN}/plugins/android/resources/native/*
19         opt/${PN}/plugins/android/resources/perfetto/*/*
20         opt/${PN}/plugins/android/resources/screen-sharing-agent/*/*
21         opt/${PN}/plugins/android/resources/simpleperf/*/*
22         opt/${PN}/plugins/android/resources/trace_processor_daemon/*
23         opt/${PN}/plugins/android/resources/transport/*/*
24         opt/${PN}/plugins/android/resources/transport/native/agent/*/*
25         opt/${PN}/plugins/android-ndk/resources/lldb/android/*/*
26         opt/${PN}/plugins/android-ndk/resources/lldb/bin/*
27         opt/${PN}/plugins/android-ndk/resources/lldb/lib/python*/lib-dynload/*
28         opt/${PN}/plugins/android-ndk/resources/lldb/lib/*
29         opt/${PN}/plugins/android-ndk/resources/lldb/lib64/*
30         opt/${PN}/plugins/design-tools/resources/layoutlib/data/linux/lib64/*
31         opt/${PN}/plugins/c-clangd-plugin/bin/clang/linux/*/*
32         opt/${PN}/plugins/webp/lib/libwebp/linux/*
35 DESCRIPTION="Android development environment based on IntelliJ IDEA"
36 HOMEPAGE="https://developer.android.com/studio"
38 SRC_URI="https://redirector.gvt1.com/edgedl/android/studio/ide-zips/${PV}/${P}-linux.tar.gz"
39 S=${WORKDIR}/${PN}
41 LICENSE="Apache-2.0 android BSD BSD-2 CDDL-1.1 CPL-0.5
42         EPL-1.0 GPL-2 GPL-2+ JDOM IJG LGPL-2.1 MIT
43         MPL-1.1 MPL-2.0 NPL-1.1 OFL ZLIB"
45 SLOT="0"
46 KEYWORDS="~amd64"
47 IUSE="selinux"
48 RESTRICT="bindist mirror strip"
50 RDEPEND="${DEPEND}
51         selinux? ( sec-policy/selinux-android )
52         >=app-arch/bzip2-1.0.8-r4
53         >=dev-libs/expat-2.5.0
54         >=dev-libs/libffi-3.4.4
55         >=media-libs/fontconfig-2.14.0-r1
56         >=media-libs/freetype-2.12.1-r1
57         >=media-libs/libpng-1.6.39
58         >=media-libs/mesa-22.2.5[X(+)]
59         || ( gnome-extra/zenity kde-apps/kdialog x11-apps/xmessage x11-libs/libnotify )
60         sys-libs/ncurses-compat:5[tinfo]
61         >=sys-libs/zlib-1.2.13-r1
62         >=x11-libs/libX11-1.8.1
63         >=x11-libs/libXau-1.0.11
64         >=x11-libs/libXdamage-1.1.6
65         >=x11-libs/libXdmcp-1.1.4-r2
66         >=x11-libs/libXext-1.3.5
67         >=x11-libs/libXfixes-6.0.0
68         >=x11-libs/libXrender-0.9.11
69         >=x11-libs/libXxf86vm-1.1.5
70         >=x11-libs/libdrm-2.4.114
71         >=x11-libs/libxcb-1.15-r1
72         >=x11-libs/libxshmfence-1.3.2
73         virtual/libcrypt:=
76 src_compile() {
77         :;
80 src_install() {
81         local dir="/opt/${PN}"
82         insinto "${dir}"
83         doins -r ./*
85         fperms -R 755 "${dir}"/plugins/android-ndk/resources/lldb/bin
86         fperms 755 "${dir}"/plugins/android-ndk/resources/lldb/android/{arm64-v8a,armeabi,x86,x86_64}/lldb-server
87         fperms 755 "${dir}"/plugins/c-clangd-plugin/bin/clang/linux/x64/clangd
88         fperms -R 755 "${dir}"/plugins/android/resources/trace_processor_daemon
89         fperms -R 755 "${dir}"/plugins/android/resources/perfetto
90         fperms -R 755 "${dir}"/plugins/android/resources/simpleperf
91         fperms -R 755 "${dir}"/jbr/bin
92         fperms 755 "${dir}"/jbr/lib/{jexec,jspawnhelper}
93         fperms -R 755 "${dir}"/bin
95         newicon "bin/studio.png" "${PN}.png"
96         make_wrapper "${PN}" "${dir}/bin/studio.sh"
97         make_desktop_entry "${PN}" "Android Studio" "${PN}" "Development;IDE" "StartupWMClass=jetbrains-studio"
99         # recommended by: https://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit
100         mkdir -p "${D}/etc/sysctl.d/" || die
101         echo "fs.inotify.max_user_watches = 524288" > "${D}/etc/sysctl.d/30-android-studio-inotify-watches.conf" || die
104 pkg_postrm() {
105         elog "Android Studio data files were not removed."
106         elog "If there will be no other programs using them anymore"
107         elog "(especially another flavor of Android Studio)"
108         elog "remove manually following folders:"
109         elog ""
110         elog "          ~/.android/"
111         elog "          ~/.config/Google/AndroidStudio*/"
112         elog "          ~/.local/share/Google/AndroidStudio*/"
113         elog "          ~/Android/"
114         elog ""
115         elog "Also, if there are no other programs using Gradle, remove:"
116         elog ""
117         elog "          ~/.gradle/"