# Copyright 2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit kotlin-libs
KEYWORDS="~amd64"
# Kotlin compiler needs not be called for this package; only the built-ins
# serializer is invoked
src_compile() {
local builtins_cherry_picked="${T}/core/builtins/build/src"
local cherry_pick_dest="${builtins_cherry_picked}/kotlin/reflect"
local kotlinc_jar="${KOTLIN_UTILS_COMPILER_HOME}/lib/kotlin-compiler.jar"
mkdir -p "${KOTLIN_UTILS_CLASSES}" || \
die "Failed to create target directory"
mkdir -p "${cherry_pick_dest}" || \
die "Failed to create temporary directory for cherry-picked built-ins"
cp libraries/stdlib/src/kotlin/reflect/* "${cherry_pick_dest}" || \
die "Failed to copy sources for built-ins to temporary directory"
rm "${cherry_pick_dest}"/{typeOf.kt,KClasses.kt} || \
die "Failed to remove extraneous sources from cherry-picked built-ins"
KOTLIN_SRC_DIR=(
"${builtins_cherry_picked}"
core/builtins/{src,native}
)
einfo "Serializing built-ins ..."
# The built-in serializer needs to access XDG_CACHE_HOME, reassign it to
# avoid access violations caused by 'mkdir /var/lib/portage/home/.cache'
XDG_CACHE_HOME="${HOME}/.cache" \
java -classpath "${kotlinc_jar}" \
org.jetbrains.kotlin.serialization.builtins.RunKt \
"${KOTLIN_UTILS_CLASSES}" "${KOTLIN_SRC_DIR[@]}" || \
die "Failed to serialize built-ins"
kotlin-utils_jar
}