View Raw Ebuild
# Copyright 2021-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MAVEN_ID="org.jetbrains.kotlin:${PN}:${PV}"
KOTLIN_LIBS_BINJAR_SRC_URI="https://repo1.maven.org/maven2/org/jetbrains/kotlin/${PN}/${PV}/${P}.jar"
KOTLIN_LIBS_SRCJAR_SRC_URI="https://repo1.maven.org/maven2/org/jetbrains/kotlin/${PN}/${PV}/${P}-sources.jar"
KOTLIN_TESTING_FRAMEWORKS="junit-4"
inherit kotlin-libs
DESCRIPTION="Kotlin Standard Library JDK 7 extension"
KEYWORDS="~amd64"
CP_DEPEND="
~dev-java/kotlin-stdlib-${PV}:${SLOT}
"
DEPEND="
!binary? (
${CP_DEPEND}
dev-java/jetbrains-annotations:13
)
test? (
${CP_DEPEND}
~dev-java/kotlin-test-junit-${PV}:${SLOT}
dev-java/jetbrains-annotations:13
)
"
RDEPEND="${CP_DEPEND}"
JAVA_CLASSPATH_EXTRA="jetbrains-annotations-13"
JAVA_TEST_GENTOO_CLASSPATH="kotlin-test-junit-${SLOT}"
JAVA_BINJAR_FILENAME="${P}.jar"
KOTLIN_LIBS_SRCJAR_FILENAME="${P}-sources.jar"
KOTLIN_COMMON_KOTLINC_ARGS=(
-jvm-target 1.6
-no-stdlib
-Xallow-kotlin-package
-Xallow-no-source-files
-Xjvm-default=compatibility
-Xopt-in=kotlin.RequiresOptIn
-Xsuppress-deprecated-jvm-target-warning
-Xuse-old-backend
)
KOTLIN_LIBS_RUNTIME_COMPONENT="Main"
KOTLIN_KOTLINC_ARGS=(
"${KOTLIN_COMMON_KOTLINC_ARGS[@]}"
-Xmultifile-parts-inherit
-Xnormalize-constructor-calls=enable
-Xopt-in=kotlin.contracts.ExperimentalContracts
)
KOTLIN_SRC_DIR=( libraries/stdlib/jdk7/src )
JAVA_TEST_EXTRA_ARGS=( -ea )
KOTLIN_TEST_KOTLINC_ARGS=(
"${KOTLIN_COMMON_KOTLINC_ARGS[@]}"
-Xfriend-paths="${JAVA_JAR_FILENAME}"
-Xmulti-platform
-Xopt-in=kotlin.ExperimentalStdlibApi
-Xopt-in=kotlin.ExperimentalUnsignedTypes
-Xopt-in=kotlin.io.path.ExperimentalPathApi
)
KOTLIN_TEST_COMMON_SOURCES_DIR=( libraries/stdlib/test )
KOTLIN_TEST_SRC_DIR=(
libraries/stdlib/{jdk7,jvm,common}/test
# libraries/stdlib//test does not work
libraries/stdlib/test
)
KOTLIN_TEST_EXCLUDES=(
# Non-tests
test.coroutines.TestDispatcher
test.collections.IterableTests
test.collections.OrderedIterableTests
# Test that requires Kotlin Native
test.random.RandomSmokeTest
# JavaScript tests, having trouble with passing on JVM
test.collections.js.SetJsTest
test.collections.js.MapJsTest
)
src_prepare() {
if use test && has network-sandbox ${FEATURES}; then
elog "Skipping test cases that require network connection"
elog "due to FEATURES=network-sandbox"
eapply "${FILESDIR}/kotlin-1.4-skip-internet-tests.patch"
fi
eapply_user
}