Add emulator properties to gcc configurables

This commit is contained in:
Sergey Bogolepov
2020-12-09 12:12:05 +07:00
committed by Stanislav Erokhin
parent 02379d9412
commit 9e93ee81e3
3 changed files with 31 additions and 2 deletions
+18 -1
View File
@@ -422,6 +422,11 @@ gccToolchain.linux_arm32_hfp = target-gcc-toolchain-3-linux-x86-64
targetToolchain.linux_x64-linux_arm32_hfp = target-gcc-toolchain-3-linux-x86-64/x86_64-unknown-linux-gnu
targetToolchain.mingw_x64-linux_arm32_hfp = msys2-mingw-w64-x86_64-clang-llvm-lld-compiler_rt-8.0.1
targetToolchain.macos_x64-linux_arm32_hfp = $llvmHome.macos_x64
# TODO: We might use docker on Windows or macOS.
emulatorDependency.linux_x64-linux_arm32_hfp = qemu-arm-static-5.1.0-linux-2
emulatorExecutable.linux_x64-linux_arm32_hfp = qemu-arm-static-5.1.0-linux-2/qemu-arm
dependencies.linux_x64-linux_arm32_hfp = \
target-gcc-toolchain-3-linux-x86-64 \
target-sysroot-2-raspberrypi \
@@ -467,6 +472,10 @@ gccToolchain.linux_arm64 = target-gcc-toolchain-3-linux-x86-64
targetToolchain.linux_x64-linux_arm64 = target-gcc-toolchain-3-linux-x86-64/x86_64-unknown-linux-gnu
targetToolchain.mingw_x64-linux_arm64 = msys2-mingw-w64-x86_64-clang-llvm-lld-compiler_rt-8.0.1
targetToolchain.macos_x64-linux_arm64 = $llvmHome.macos_x64
emulatorDependency.linux_x64-linux_arm64 = qemu-aarch64-static-5.1.0-linux-2
emulatorExecutable.linux_x64-linux_arm64 = qemu-aarch64-static-5.1.0-linux-2/qemu-aarch64
dependencies.linux_x64-linux_arm64 = \
target-gcc-toolchain-3-linux-x86-64 \
target-sysroot-1-linux-glibc-arm64 \
@@ -509,6 +518,10 @@ runtimeDefinitions.linux_arm64 = USE_GCC_UNWIND=1 KONAN_LINUX=1 KONAN_ARM64=1 \
gccToolchain.linux_mips32 = target-gcc-toolchain-3-linux-x86-64
targetToolchain.linux_x64-linux_mips32 = target-gcc-toolchain-2-linux-mips/x86_64-unknown-linux-gnu
emulatorDependency.linux_x64-linux_mips32 = qemu-mips-static-5.1.0-linux-2
emulatorExecutable.linux_x64-linux_mips32 = qemu-mips-static-5.1.0-linux-2/qemu-mips
dependencies.linux_x64-linux_mips32 = \
target-gcc-toolchain-2-linux-mips \
target-gcc-toolchain-3-linux-x86-64 \
@@ -541,6 +554,10 @@ runtimeDefinitions.linux_mips32 = USE_GCC_UNWIND=1 KONAN_LINUX=1 KONAN_MIPS32=1
gccToolchain.linux_mipsel32 = target-gcc-toolchain-3-linux-x86-64
targetToolchain.linux_x64-linux_mipsel32 = target-gcc-toolchain-2-linux-mips/x86_64-unknown-linux-gnu
emulatorDependency.linux_x64-linux_mipsel32 = qemu-mipsel-static-5.1.0-linux-2
emulatorExecutable.linux_x64-linux_mipsel32 = qemu-mipsel-static-5.1.0-linux-2/qemu-mipsel
dependencies.linux_x64-linux_mipsel32 = \
target-gcc-toolchain-2-linux-mips \
target-gcc-toolchain-3-linux-x86-64 \
@@ -792,4 +809,4 @@ runtimeDefinitions.wasm32 = KONAN_WASM=1 KONAN_NO_FFI=1 KONAN_NO_THREADS=1 \
KONAN_INTERNAL_NOW=1 KONAN_NO_MEMMEM KONAN_NO_CTORS_SECTION=1
# The version of Kotlin/Native compiler
compilerVersion=@compilerVersion@
compilerVersion=1.5-dev
@@ -63,6 +63,15 @@ interface Configurables : TargetableExternalStorage {
val runtimeDefinitions get() = targetList("runtimeDefinitions")
}
interface ConfigurablesWithEmulator : Configurables {
val emulatorDependency get() = hostTargetString("emulatorDependency")
// TODO: We need to find a way to represent absolute path in properties.
// In case of QEMU, absolute path to dynamic linker should be specified.
val emulatorExecutable get() = hostTargetString("emulatorExecutable")
val absoluteEmulatorExecutable get() = absolute(emulatorExecutable)
}
interface TargetableConfigurables : Configurables {
val targetArg get() = targetString("quadruple")
}
@@ -19,7 +19,10 @@ package org.jetbrains.kotlin.konan.target
import org.jetbrains.kotlin.konan.properties.*
class GccConfigurablesImpl(target: KonanTarget, properties: Properties, baseDir: String?)
: GccConfigurables, KonanPropertiesLoader(target, properties, baseDir)
: GccConfigurables, KonanPropertiesLoader(target, properties, baseDir), ConfigurablesWithEmulator {
override val dependencies: List<String>
get() = super.dependencies + listOfNotNull(emulatorDependency)
}
class AndroidConfigurablesImpl(target: KonanTarget, properties: Properties, baseDir: String?)
: AndroidConfigurables, KonanPropertiesLoader(target, properties, baseDir)