remove ia64 keywords
[gentoo-zh.git] / dev-util / android-studio / android-studio-2024.2.1.12.ebuild
blob4ee5f458938c88f6e352bb39fe8bcc76136d67c2
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-native/linux/*/*
15 opt/${PN}/plugins/android/resources/installer/*/*
16 opt/${PN}/plugins/android/resources/native/*
17 opt/${PN}/plugins/android/resources/perfetto/*/*
18 opt/${PN}/plugins/android/resources/screen-sharing-agent/*/*
19 opt/${PN}/plugins/android/resources/simpleperf/*/*
20 opt/${PN}/plugins/android/resources/trace_processor_daemon/*
21 opt/${PN}/plugins/android/resources/transport/*/*
22 opt/${PN}/plugins/android/resources/transport/native/agent/*/*
23 opt/${PN}/plugins/android-ndk/resources/lldb/android/*/*
24 opt/${PN}/plugins/android-ndk/resources/lldb/bin/*
25 opt/${PN}/plugins/android-ndk/resources/lldb/lib/python3.9/lib-dynload/*
26 opt/${PN}/plugins/android-ndk/resources/lldb/lib64/*
27 opt/${PN}/plugins/design-tools/resources/layoutlib/data/linux/lib64/*
28 opt/${PN}/plugins/c-clangd/bin/clang/linux/*/*
29 opt/${PN}/plugins/webp/lib/libwebp/linux/*
32 DESCRIPTION="Android development environment based on IntelliJ IDEA"
33 HOMEPAGE="https://developer.android.com/studio"
34 SRC_URI="https://redirector.gvt1.com/edgedl/android/studio/ide-zips/${PV}/${P}-linux.tar.gz"
35 S=${WORKDIR}/${PN}
36 LICENSE="Apache-2.0 android BSD BSD-2 CDDL-1.1 CPL-0.5
37 EPL-1.0 GPL-2 GPL-2+ JDOM IJG LGPL-2.1 MIT
38 MPL-1.1 MPL-2.0 NPL-1.1 OFL-1.1 ZLIB"
39 SLOT="0"
40 KEYWORDS="~amd64"
41 IUSE="selinux"
42 RESTRICT="bindist mirror strip"
44 RDEPEND="${DEPEND}
45 selinux? ( sec-policy/selinux-android )
46 >=app-arch/bzip2-1.0.8-r4
47 >=dev-libs/expat-2.5.0
48 >=dev-libs/libffi-3.4.4
49 >=media-libs/fontconfig-2.14.0-r1
50 >=media-libs/freetype-2.12.1-r1
51 >=media-libs/libpng-1.6.39
52 >=media-libs/mesa-22.2.5[X(+)]
53 || ( gnome-extra/zenity kde-apps/kdialog x11-apps/xmessage x11-libs/libnotify )
54 sys-libs/ncurses-compat:5[tinfo]
55 >=sys-libs/zlib-1.2.13-r1
56 >=x11-libs/libX11-1.8.1
57 >=x11-libs/libXau-1.0.11
58 >=x11-libs/libXdamage-1.1.6
59 >=x11-libs/libXdmcp-1.1.4-r2
60 >=x11-libs/libXext-1.3.5
61 >=x11-libs/libXfixes-6.0.0
62 >=x11-libs/libXrender-0.9.11
63 >=x11-libs/libXxf86vm-1.1.5
64 >=x11-libs/libdrm-2.4.114
65 >=x11-libs/libxcb-1.15-r1
66 >=x11-libs/libxshmfence-1.3.2
67 virtual/libcrypt:=
70 src_prepare() {
72 default
74 rm "${S}"/plugins/android/resources/installer/{arm64-v8a,armeabi-v7a,x86}/*
75 rm "${S}"/plugins/android/resources/perfetto/{arm64-v8a,armeabi-v7a,x86}/*
76 rm "${S}"/plugins/android/resources/process-tracker-agent/native/{arm64-v8a,armeabi-v7a,x86}/*
77 rm "${S}"/plugins/android/resources/screen-sharing-agent/{arm64-v8a,armeabi-v7a,x86}/*
78 rm "${S}"/plugins/android/resources/transport/{arm64-v8a,armeabi-v7a,x86}/*
79 rm "${S}"/plugins/android/resources/transport/native/agent/{arm64-v8a,armeabi-v7a,x86}/*
81 cat <<-EOF >> bin/idea.properties || die
82 #-----------------------------------------------------------------------
83 # Disable automatic updates as these are handled through Gentoo's
84 # package manager.
85 #-----------------------------------------------------------------------
86 ide.no.platform.update=Gentoo
87 EOF
90 src_compile() {
94 src_install() {
95 local dir="/opt/${PN}"
96 insinto "${dir}"
97 doins -r *
99 fperms 755 "${dir}"/bin/{fsnotifier,format.sh,game-tools.sh,inspect.sh,ltedit.sh,profiler.sh,studio.sh,studio_safe.sh}
100 fperms -R 755 "${dir}"/bin/{helpers,lldb}
101 fperms -R 755 "${dir}"/jbr/bin
102 fperms 755 "${dir}"/jbr/lib/{jexec,jspawnhelper}
103 fperms -R 755 "${dir}"/plugins/Kotlin/kotlinc/bin
104 fperms -R 755 "${dir}"/plugins/android/resources/installer
105 fperms -R 755 "${dir}"/plugins/android/resources/perfetto
106 fperms -R 755 "${dir}"/plugins/android/resources/simpleperf
107 fperms -R 755 "${dir}"/plugins/android/resources/trace_processor_daemon
108 fperms -R 755 "${dir}"/plugins/android/resources/transport/{arm64-v8a,armeabi-v7a,x86,x86_64}
109 fperms -R 755 "${dir}"/plugins/android-ndk/resources/lldb/{android,bin,lib,shared}
110 fperms 755 "${dir}"/plugins/c-clangd-plugin/bin/clang/linux/x64/clangd
111 fperms -R 755 "${dir}"/plugins/terminal/shell-integrations/{,fish}
113 newicon "bin/studio.png" "${PN}.png"
114 make_wrapper ${PN} ${dir}/bin/studio.sh
115 make_desktop_entry ${PN} "Android Studio" ${PN} "Development;IDE" "StartupWMClass=jetbrains-studio"
117 # recommended by: https://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit
118 mkdir -p "${D}/etc/sysctl.d/" || die
119 echo "fs.inotify.max_user_watches = 524288" > "${D}/etc/sysctl.d/30-android-studio-inotify-watches.conf" || die
122 pkg_postrm() {
123 elog "Android Studio data files were not removed."
124 elog "If there will be no other programs using them anymore"
125 elog "(especially another flavor of Android Studio)"
126 elog "remove manually following folders:"
127 elog ""
128 elog " ~/.android/"
129 elog " ~/.config/Google/AndroidStudio*/"
130 elog " ~/.local/share/Google/AndroidStudio*/"
131 elog " ~/Android/"
132 elog ""
133 elog "Also, if there are no other programs using Gradle, remove:"
134 elog ""
135 elog " ~/.gradle/"