| Version | EAPI | Keywords | Slot |
|---|---|---|---|
| 1.6.10-r1 | 8 | ~amd64 | $(ver_cut 1-2) |
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit java-pkg-2 kotlin-compiler optfeature
DESCRIPTION="Statically typed programming language for modern multiplatform applications"
HOMEPAGE="https://kotlinlang.org/"
SRC_URI="https://github.com/JetBrains/kotlin/releases/download/v${PV}/kotlin-compiler-${PV}.zip"
LICENSE="Apache-2.0 BSD MIT NPL-1.1"
SLOT="$(ver_cut 1-2)"
KEYWORDS="~amd64"
COROUTINES_CORE_SLOT="1.5.0"
JB_ANNOTATIONS_SLOT="13"
BDEPEND="
app-arch/unzip
"
# The atom for each bootstrap package should be put before the atom for the
# normal package, so it will be selected if neither package has been installed
# (this holds at least on Portage 3.0.30), thus users need not manually install
# those normal packages with USE="binary" and can directly install this package
DEPEND="
>=virtual/jdk-1.8:*
|| (
~dev-java/kotlin-stdlib-bootstrap-${PV}:${SLOT}
~dev-java/kotlin-stdlib-${PV}:${SLOT}
)
|| (
~dev-java/kotlin-reflect-bootstrap-${PV}:${SLOT}
~dev-java/kotlin-reflect-${PV}:${SLOT}
)
dev-java/kotlinx-coroutines-core-bin:${COROUTINES_CORE_SLOT}
dev-java/jetbrains-annotations:${JB_ANNOTATIONS_SLOT}
dev-java/jetbrains-trove:0
"
RDEPEND="
${DEPEND}
"
S="${WORKDIR}/kotlinc"
KOTLIN_COMPILER_HOME="/opt/${PN}-${SLOT}"
KOTLINC_LIBS=(
allopen-compiler-plugin.jar
android-extensions-compiler.jar
android-extensions-runtime.jar
js.engines.jar
jvm-abi-gen.jar
kotlin-annotation-processing.jar
kotlin-annotation-processing-cli.jar
kotlin-annotation-processing-runtime.jar
kotlin-ant.jar
kotlin-compiler.jar
kotlin-daemon-client.jar
kotlin-daemon.jar
kotlin-imports-dumper-compiler-plugin.jar
kotlin-main-kts.jar
kotlin-preloader.jar
kotlin-runner.jar
kotlin-scripting-common.jar
kotlin-scripting-compiler-impl.jar
kotlin-scripting-compiler.jar
kotlin-scripting-js.jar
kotlin-scripting-jvm.jar
kotlin-script-runtime.jar
kotlinx-serialization-compiler-plugin.jar
lombok-compiler-plugin.jar
mutability-annotations-compat.jar
noarg-compiler-plugin.jar
parcelize-compiler.jar
parcelize-runtime.jar
sam-with-receiver-compiler-plugin.jar
)
src_compile() {
KOTLINC_BIN_TMP="${T}/bin"
mkdir "${KOTLINC_BIN_TMP}" ||
die "Failed to create directory for executables"
rm bin/*.bat || die "Failed to remove extraneous executables"
cp bin/* "${KOTLINC_BIN_TMP}" || die "Failed to copy executables"
KOTLINC_LIB_TMP="${T}/lib"
mkdir "${KOTLINC_LIB_TMP}" ||
die "Failed to create directory for libraries"
cp "${KOTLINC_LIBS[@]/#/lib/}" "${KOTLINC_LIB_TMP}" ||
die "Failed to copy libraries"
# Create symbolic links to required Kotlin core library components
ln -s "${EPREFIX}/usr/share/kotlin-stdlib-${SLOT}/lib/kotlin-stdlib.jar" \
"${KOTLINC_LIB_TMP}/kotlin-stdlib.jar" ||
die "Failed to create symbolic link to kotlin-stdlib.jar"
ln -s "${EPREFIX}/usr/share/kotlin-reflect-${SLOT}/lib/kotlin-reflect.jar" \
"${KOTLINC_LIB_TMP}/kotlin-reflect.jar" ||
die "Failed to create symbolic link to kotlin-reflect.jar"
# Create symbolic links to external dependencies
java-pkg_jar-from --into "${KOTLINC_LIB_TMP}" \
"kotlinx-coroutines-core-bin-${COROUTINES_CORE_SLOT}" \
kotlinx-coroutines-core-bin.jar kotlinx-coroutines-core-jvm.jar
java-pkg_jar-from --into "${KOTLINC_LIB_TMP}" \
"jetbrains-annotations-${JB_ANNOTATIONS_SLOT}" \
jetbrains-annotations.jar annotations-13.0.jar
java-pkg_jar-from --into "${KOTLINC_LIB_TMP}" \
"jetbrains-trove" \
jetbrains-trove.jar trove4j.jar
}
src_install() {
exeinto "${KOTLIN_COMPILER_HOME}/bin"
doexe "${KOTLINC_BIN_TMP}"/*
insinto "${KOTLIN_COMPILER_HOME}/lib"
doins "${KOTLINC_LIB_TMP}"/*
# Remove copyright header template used for source files
rm license/COPYRIGHT_HEADER.txt ||
die "Failed to remove extraneous documentation file"
# Remove redundant copy of Apache-2.0 license
rm license/LICENSE.txt ||
die "Failed to remove extraneous documentation file"
dodoc -r license/*
# build.txt required for 'kotlin -version'
insinto "${KOTLIN_COMPILER_HOME}"
doins build.txt
}
pkg_postinst() {
kotlin-compiler_pkg_postinst
optfeature "compiling for the Kotlin/JS platform" \
"dev-java/kotlin-stdlib-js:${SLOT}"
}
>=virtual/jdk-1.8:* || ( ~dev-java/kotlin-stdlib-bootstrap-1.6.10-r1:$(ver_cut 1-2) ~dev-java/kotlin-stdlib-1.6.10-r1:$(ver_cut 1-2) ) || ( ~dev-java/kotlin-reflect-bootstrap-1.6.10-r1:$(ver_cut 1-2) ~dev-java/kotlin-reflect-1.6.10-r1:$(ver_cut 1-2) ) dev-java/kotlinx-coroutines-core-bin:1.5.0 dev-java/jetbrains-annotations:13 dev-java/jetbrains-trove:0
>=virtual/jdk-1.8:* || ( ~dev-java/kotlin-stdlib-bootstrap-1.6.10-r1:$(ver_cut 1-2) ~dev-java/kotlin-stdlib-1.6.10-r1:$(ver_cut 1-2) ) || ( ~dev-java/kotlin-reflect-bootstrap-1.6.10-r1:$(ver_cut 1-2) ~dev-java/kotlin-reflect-1.6.10-r1:$(ver_cut 1-2) ) dev-java/kotlinx-coroutines-core-bin:1.5.0 dev-java/jetbrains-annotations:13 dev-java/jetbrains-trove:0
app-arch/unzip