[Clang][Runtime] Move macro definitions to konan.properties

Cleaned up a bit ClangArgs.kt by moving macro definitions to konan.properties.
It is also useful for a future targets refactoring.
This commit is contained in:
Sergey Bogolepov
2020-10-12 18:29:27 +07:00
committed by Sergey Bogolepov
parent 229571b57f
commit b7470495f2
4 changed files with 62 additions and 187 deletions
+55 -1
View File
@@ -78,6 +78,8 @@ linkerDynamicFlags.macos_x64 = -dylib
osVersionMinFlagLd.macos_x64 = -macosx_version_min
osVersionMinFlagClang.macos_x64 = -mmacosx-version-min
osVersionMin.macos_x64 = 10.11
runtimeDefinitions.macos_x64 = KONAN_OSX=1 KONAN_MACOSX=1 KONAN_X64=1 KONAN_OBJC_INTEROP=1 \
KONAN_CORE_SYMBOLICATION=1 KONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1
dependencies.macos_x64 = \
libffi-3.2.1-3-darwin-macos \
lldb-3-macos
@@ -116,6 +118,14 @@ linkerOptimizationFlags.ios_arm32 = -dead_strip
osVersionMinFlagLd.ios_arm32 = -iphoneos_version_min
osVersionMinFlagClang.ios_arm32 = -miphoneos-version-min
osVersionMin.ios_arm32 = 9.0
# Regarding KONAN_NO_64BIT_ATOMIC:
# While not 100% correct here, using atomic ops on iOS armv7 requires 8 byte alignment,
# and general ABI requires 4-byte alignment on 64-bit long fields as mentioned in
# https://developer.apple.com/library/archive/documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARMv6FunctionCallingConventions.html#//apple_ref/doc/uid/TP40009021-SW1
# See https://github.com/ktorio/ktor/issues/941 for the context.
runtimeDefinitions.ios_arm32 = KONAN_OBJC_INTEROP=1 KONAN_IOS KONAN_ARM32=1 \
KONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1 KONAN_REPORT_BACKTRACE_TO_IOS_CRASH_LOG=1 MACHSIZE=32 \
KONAN_NO_64BIT_ATOMIC=1 KONAN_NO_UNALIGNED_ACCESS=1
# Apple's 64-bit iOS.
targetToolchain.macos_x64-ios_arm64 = target-toolchain-xcode_12_0-macos_x64
@@ -144,6 +154,8 @@ linkerOptimizationFlags.ios_arm64 = -dead_strip
osVersionMinFlagLd.ios_arm64 = -iphoneos_version_min
osVersionMinFlagClang.ios_arm64 = -miphoneos-version-min
osVersionMin.ios_arm64 = 9.0
runtimeDefinitions.ios_arm64 = KONAN_OBJC_INTEROP=1 KONAN_IOS=1 KONAN_ARM64=1 \
KONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1 KONAN_REPORT_BACKTRACE_TO_IOS_CRASH_LOG=1 MACHSIZE=64
# Apple's iOS simulator.
targetToolchain.macos_x64-ios_x64 = target-toolchain-xcode_12_0-macos_x64
@@ -169,6 +181,8 @@ linkerDynamicFlags.ios_x64 = -dylib
osVersionMinFlagLd.ios_x64 = -ios_simulator_version_min
osVersionMinFlagClang.ios_x64 = -mios-simulator-version-min
osVersionMin.ios_x64 = 9.0
runtimeDefinitions.ios_x64 = KONAN_OBJC_INTEROP=1 KONAN_IOS=1 KONAN_X64=1 \
KONAN_CORE_SYMBOLICATION=1 KONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1
# Apple's tvOS simulator.
targetToolchain.macos_x64-tvos_x64 = target-toolchain-xcode_12_0-macos_x64
@@ -194,6 +208,8 @@ linkerDynamicFlags.tvos_x64 = -dylib
osVersionMinFlagLd.tvos_x64 = -tvos_simulator_version_min
osVersionMinFlagClang.tvos_x64 = -mtvos-simulator-version-min
osVersionMin.tvos_x64 = 9.0
runtimeDefinitions.tvos_x64 = KONAN_OBJC_INTEROP=1 KONAN_TVOS=1 KONAN_X64=1 \
KONAN_CORE_SYMBOLICATION=1 KONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1
# Apple's 64-bit tvOS.
targetToolchain.macos_x64-tvos_arm64 = target-toolchain-xcode_12_0-macos_x64
@@ -219,6 +235,8 @@ linkerOptimizationFlags.tvos_arm64 = -dead_strip
osVersionMinFlagLd.tvos_arm64 = -tvos_version_min
osVersionMinFlagClang.tvos_arm64 = -mtvos-version-min
osVersionMin.tvos_arm64 = 9.0
runtimeDefinitions.tvos_arm64 = KONAN_OBJC_INTEROP=1 KONAN_TVOS=1 KONAN_ARM64=1 \
KONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1 KONAN_REPORT_BACKTRACE_TO_IOS_CRASH_LOG=1 MACHSIZE=64
# watchOS armv7k
targetToolchain.macos_x64-watchos_arm32 = target-toolchain-xcode_12_0-macos_x64
@@ -244,6 +262,10 @@ linkerDynamicFlags.watchos_arm32 = -dylib
osVersionMinFlagLd.watchos_arm32 = -watchos_version_min
osVersionMinFlagClang.watchos_arm32 = -mwatchos-version-min
osVersionMin.watchos_arm32 = 5.0
# Regarding KONAN_NO_64BIT_ATOMIC=1: see explanation for ios_arm32 above.
runtimeDefinitions.watchos_arm32 = KONAN_OBJC_INTEROP=1 KONAN_WATCHOS KONAN_ARM32=1 \
KONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1 KONAN_REPORT_BACKTRACE_TO_IOS_CRASH_LOG=1 \
MACHSIZE=32 KONAN_NO_64BIT_ATOMIC=1 KONAN_NO_UNALIGNED_ACCESS=1
# watchOS arm64_32
targetToolchain.macos_x64-watchos_arm64 = target-toolchain-xcode_12_0-macos_x64
@@ -270,6 +292,10 @@ linkerDynamicFlags.watchos_arm64 = -dylib
osVersionMinFlagLd.watchos_arm64 = -watchos_version_min
osVersionMinFlagClang.watchos_arm64 = -mwatchos-version-min
osVersionMin.watchos_arm64 = 5.0
# Regarding KONAN_NO_64BIT_ATOMIC=1: see explanation for ios_arm32 above.
runtimeDefinitions.watchos_arm64 = KONAN_OBJC_INTEROP=1 KONAN_WATCHOS KONAN_ARM32=1 \
KONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1 KONAN_REPORT_BACKTRACE_TO_IOS_CRASH_LOG=1 \
MACHSIZE=32 KONAN_NO_64BIT_ATOMIC=1 KONAN_NO_UNALIGNED_ACCESS=1
# Apple's watchOS i386 simulator.
targetToolchain.macos_x64-watchos_x86 = target-toolchain-xcode_12_0-macos_x64
@@ -299,6 +325,8 @@ linkerDynamicFlags.watchos_x86 = -dylib
osVersionMinFlagLd.watchos_x86 = -watchos_simulator_version_min
osVersionMinFlagClang.watchos_x86 = -mwatchos-simulator-version-min
osVersionMin.watchos_x86 = 5.0
runtimeDefinitions.watchos_x86 = KONAN_OBJC_INTEROP=1 KONAN_WATCHOS=1 KONAN_NO_64BIT_ATOMIC=1 \
KONAN_X86=1 KONAN_CORE_SYMBOLICATION=1 KONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1
# Linux x86-64.
llvmHome.linux_x64 = $llvm.linux_x64.dev
@@ -340,6 +368,8 @@ linkerDynamicFlags.linux_x64 = -shared
dynamicLinker.linux_x64 = /lib64/ld-linux-x86-64.so.2
# targetSysRoot relative
abiSpecificLibraries.linux_x64 = ../lib64 lib64 usr/lib64
runtimeDefinitions.linux_x64 = USE_GCC_UNWIND=1 KONAN_LINUX=1 KONAN_X64=1 \
USE_ELF_SYMBOLS=1 ELFSIZE=64 KONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1
# Raspberry Pi
targetToolchain.linux_x64-linux_arm32_hfp = target-gcc-toolchain-3-linux-x86-64/x86_64-unknown-linux-gnu
@@ -379,6 +409,8 @@ abiSpecificLibraries.linux_arm32_hfp = \
../lib/arm-linux-gnueabihf \
lib/arm-linux-gnueabihf \
usr/lib/arm-linux-gnueabihf
runtimeDefinitions.linux_arm32_hfp = USE_GCC_UNWIND=1 KONAN_LINUX=1 \
KONAN_ARM32=1 USE_ELF_SYMBOLS=1 ELFSIZE=32 KONAN_NO_UNALIGNED_ACCESS=1
# Linux arm64
targetToolchain.linux_x64-linux_arm64 = target-gcc-toolchain-3-linux-x86-64/x86_64-unknown-linux-gnu
@@ -418,6 +450,8 @@ dynamicLinker.linux_arm64 = /lib/ld-linux-aarch64.so.1
abiSpecificLibraries.linux_arm64 = \
lib \
usr/lib
runtimeDefinitions.linux_arm64 = USE_GCC_UNWIND=1 KONAN_LINUX=1 KONAN_ARM64=1 \
USE_ELF_SYMBOLS=1 ELFSIZE=64
# MIPS
targetToolchain.linux_x64-linux_mips32 = target-gcc-toolchain-2-linux-mips/x86_64-unknown-linux-gnu
@@ -444,6 +478,9 @@ clangDynamicFlags.linux_mips32 = -mrelocation-model pic
dynamicLinker.linux_mips32 = /lib/ld.so.1
# targetSysRoot relative
abiSpecificLibraries.linux_mips32 =
# TODO: reconsider KONAN_NO_64BIT_ATOMIC, once target MIPS can do proper 64-bit load/store/CAS.
runtimeDefinitions.linux_mips32 = USE_GCC_UNWIND=1 KONAN_LINUX=1 KONAN_MIPS32=1 \
USE_ELF_SYMBOLS=1 ELFSIZE=32 KONAN_NO_64BIT_ATOMIC=1 KONAN_NO_UNALIGNED_ACCESS=1
# MIPSel
targetToolchain.linux_x64-linux_mipsel32 = target-gcc-toolchain-2-linux-mips/x86_64-unknown-linux-gnu
@@ -469,6 +506,9 @@ clangDynamicFlags.linux_mipsel32 = -mrelocation-model pic
dynamicLinker.linux_mipsel32 = /lib/ld.so.1
# targetSysRoot relative
abiSpecificLibraries.linux_mipsel32 =
# TODO: reconsider KONAN_NO_64BIT_ATOMIC, once target MIPS can do proper 64-bit load/store/CAS.
runtimeDefinitions.linux_mipsel32 = USE_GCC_UNWIND=1 KONAN_LINUX=1 \
KONAN_MIPSEL32=1 USE_ELF_SYMBOLS=1 ELFSIZE=32 KONAN_NO_64BIT_ATOMIC=1 KONAN_NO_UNALIGNED_ACCESS=1
# Android ARM32, based on NDK for android-21.
targetToolchain.macos_x64-android_arm32 = target-toolchain-2-osx-android_ndk
@@ -494,6 +534,8 @@ linkerNoDebugFlags.android_arm32 = -Wl,-S
clangNooptFlags.android_arm32 = -O1
targetSysRoot.android_arm32 = target-sysroot-1-android_ndk
linkerKonanFlags.android_arm32 = -lm -lc++_static -lc++abi -landroid -llog -latomic
runtimeDefinitions.android_arm32 = __ANDROID__ USE_GCC_UNWIND=1 USE_ELF_SYMBOLS=1 ELFSIZE=32 \
KONAN_ANDROID=1 KONAN_ARM32=1 KONAN_NO_UNALIGNED_ACCESS=1
# Android ARM64, based on NDK.
targetToolchain.macos_x64-android_arm64 = target-toolchain-2-osx-android_ndk
@@ -519,6 +561,8 @@ clangNooptFlags.android_arm64 = -O1
targetSysRoot.android_arm64 = target-sysroot-1-android_ndk
linkerKonanFlags.android_arm64 = -lm -lc++_static -lc++abi -landroid -llog -latomic
linkerNoDebugFlags.android_arm64 = -Wl,-S
runtimeDefinitions.android_arm64 = __ANDROID__ USE_GCC_UNWIND=1 USE_ELF_SYMBOLS=1 \
ELFSIZE=64 KONAN_ANDROID=1 KONAN_ARM64=1 KONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1
# Android X86, based on NDK.
targetToolchain.macos_x64-android_x86 = target-toolchain-2-osx-android_ndk
@@ -549,6 +593,8 @@ clangNooptFlags.android_x86 = -O1
targetSysRoot.android_x86 = target-sysroot-1-android_ndk
linkerKonanFlags.android_x86 = -lm -lc++_static -lc++abi -landroid -llog -latomic
linkerNoDebugFlags.android_x86 = -Wl,-S
runtimeDefinitions.android_x86 = __ANDROID__ USE_GCC_UNWIND=1 USE_ELF_SYMBOLS=1 \
ELFSIZE=32 KONAN_ANDROID=1 KONAN_X86=1 KONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1
# Android X64, based on NDK.
targetToolchain.macos_x64-android_x64 = target-toolchain-2-osx-android_ndk
@@ -574,7 +620,8 @@ clangNooptFlags.android_x64 = -O1
targetSysRoot.android_x64 = target-sysroot-1-android_ndk
linkerKonanFlags.android_x64 = -lm -lc++_static -lc++abi -landroid -llog -latomic
linkerNoDebugFlags.android_x64 = -Wl,-S
runtimeDefinitions.android_x64 = __ANDROID__ USE_GCC_UNWIND=1 USE_ELF_SYMBOLS=1 \
ELFSIZE=64 KONAN_ANDROID=1 KONAN_X64=1 KONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1
# Windows x86-64, based on mingw-w64.
llvmHome.mingw_x64 = $llvm.mingw_x64.dev
@@ -607,6 +654,8 @@ linkerKonanFlags.mingw_x64 =-static-libgcc -static-libstdc++ \
-Wl,-Bstatic,--whole-archive -lwinpthread -Wl,--no-whole-archive,-Bdynamic \
-Wl,--defsym,__cxa_demangle=Konan_cxa_demangle
linkerOptimizationFlags.mingw_x64 = -Wl,--gc-sections
runtimeDefinitions.mingw_x64 = USE_GCC_UNWIND=1 USE_PE_COFF_SYMBOLS=1 KONAN_WINDOWS=1 \
UNICODE KONAN_X64=1 KONAN_NO_MEMMEM=1 KONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1
# Windows i686, based on mingw-w64.
targetToolchain.mingw_x64-mingw_x86 = msys2-mingw-w64-i686-clang-llvm-lld-compiler_rt-8.0.1
@@ -641,6 +690,8 @@ linkerKonanFlags.mingw_x86 = -static-libgcc -static-libstdc++ \
-Wl,-Bstatic,--whole-archive -lwinpthread -Wl,--no-whole-archive,-Bdynamic \
-Wl,--defsym,___cxa_demangle=_Konan_cxa_demangle
linkerOptimizationFlags.mingw_x86 = -Wl,--gc-sections
runtimeDefinitions.mingw_x86 = USE_GCC_UNWIND=1 USE_PE_COFF_SYMBOLS=1 KONAN_WINDOWS=1 \
UNICODE KONAN_X86=1 KONAN_NO_MEMMEM=1 KONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1
# WebAssembly 32-bit.
targetToolchain.macos_x64-wasm32 = target-toolchain-3-macos-wasm
@@ -669,6 +720,9 @@ clangOptFlags.wasm32 = -O3
clangDebugFlags.wasm32 = -O0
# TODO: make explicit list of external symbols
lld.wasm32 = --allow-undefined --no-entry --global-base=0 --no-threads --export-dynamic
runtimeDefinitions.wasm32 = KONAN_WASM=1 KONAN_NO_FFI=1 KONAN_NO_THREADS=1 \
KONAN_NO_EXCEPTIONS=1 KONAN_INTERNAL_DLMALLOC=1 KONAN_INTERNAL_SNPRINTF=1 \
KONAN_INTERNAL_NOW=1 KONAN_NO_MEMMEM KONAN_NO_CTORS_SECTION=1
# The version of Kotlin/Native compiler
compilerVersion=@compilerVersion@
+4
View File
@@ -24,6 +24,10 @@ boardSpecificClangFlags.zephyr_stm32f4_disco = -mthumb
targetCpu.zephyr_stm32f4_disco = cortex-m4
targetAbi.zephyr_stm32f4_disco = aapcs
clangFlags = -Os
runtimeDefinitions.zephyr_stm32f4_disco = KONAN_ZEPHYR=1 KONAN_NO_FFI=1 \
KONAN_NO_THREADS=1 KONAN_NO_EXCEPTIONS=1 KONAN_NO_MATH=1 \
KONAN_INTERNAL_SNPRINTF=1 KONAN_INTERNAL_NOW=1 KONAN_NO_MEMMEM=1 \
KONAN_NO_CTORS_SECTION=1 KONAN_NO_UNALIGNED_ACCESS=1
targetToolchain.linux_x64-zephyr_stm32f4_disco = gcc-arm-none-eabi-7-2017-q4-major-linux/arm-none-eabi
dependencies.linux_x64-zephyr_stm32f4_disco = \
@@ -157,192 +157,7 @@ class ClangArgs(private val configurables: Configurables) : Configurables by con
}
val clangArgsSpecificForKonanSources
get() = when (target) {
KonanTarget.LINUX_X64 ->
listOf("-DUSE_GCC_UNWIND=1",
"-DKONAN_LINUX=1",
"-DKONAN_X64=1",
"-DUSE_ELF_SYMBOLS=1",
"-DELFSIZE=64",
"-DKONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1")
KonanTarget.LINUX_ARM32_HFP ->
listOf("-DUSE_GCC_UNWIND=1",
"-DKONAN_LINUX=1",
"-DKONAN_ARM32=1",
"-DUSE_ELF_SYMBOLS=1",
"-DELFSIZE=32",
"-DKONAN_NO_UNALIGNED_ACCESS=1")
KonanTarget.LINUX_ARM64 ->
listOf("-DUSE_GCC_UNWIND=1",
"-DKONAN_LINUX=1",
"-DKONAN_ARM64=1",
"-DUSE_ELF_SYMBOLS=1",
"-DELFSIZE=64")
KonanTarget.LINUX_MIPS32 ->
listOf("-DUSE_GCC_UNWIND=1",
"-DKONAN_LINUX=1",
"-DKONAN_MIPS32=1",
"-DUSE_ELF_SYMBOLS=1",
"-DELFSIZE=32",
// TODO: reconsider, once target MIPS can do proper 64-bit load/store/CAS.
"-DKONAN_NO_64BIT_ATOMIC=1",
"-DKONAN_NO_UNALIGNED_ACCESS=1")
KonanTarget.LINUX_MIPSEL32 ->
listOf("-DUSE_GCC_UNWIND=1",
"-DKONAN_LINUX=1",
"-DKONAN_MIPSEL32=1",
"-DUSE_ELF_SYMBOLS=1",
"-DELFSIZE=32",
// TODO: reconsider, once target MIPS can do proper 64-bit load/store/CAS.
"-DKONAN_NO_64BIT_ATOMIC=1",
"-DKONAN_NO_UNALIGNED_ACCESS=1")
KonanTarget.MINGW_X64, KonanTarget.MINGW_X86 ->
listOf("-DUSE_GCC_UNWIND=1",
"-DUSE_PE_COFF_SYMBOLS=1",
"-DKONAN_WINDOWS=1",
"-DUNICODE",
if (target == KonanTarget.MINGW_X64) "-DKONAN_X64=1" else "-DKONAN_X86=1",
"-DKONAN_NO_MEMMEM=1",
"-DKONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1")
KonanTarget.MACOS_X64 ->
listOf("-DKONAN_OSX=1",
"-DKONAN_MACOSX=1",
"-DKONAN_X64=1",
"-DKONAN_OBJC_INTEROP=1",
"-DKONAN_CORE_SYMBOLICATION=1",
"-DKONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1")
KonanTarget.IOS_ARM32 ->
listOf("-DKONAN_OBJC_INTEROP=1",
"-DKONAN_IOS",
"-DKONAN_ARM32=1",
"-DKONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1",
"-DKONAN_REPORT_BACKTRACE_TO_IOS_CRASH_LOG=1",
"-DMACHSIZE=32",
// While not 100% correct here, using atomic ops on iOS armv7 requires 8 byte alignment,
// and general ABI requires 4-byte alignment on 64-bit long fields as mentioned in
// https://developer.apple.com/library/archive/documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARMv6FunctionCallingConventions.html#//apple_ref/doc/uid/TP40009021-SW1
// See https://github.com/ktorio/ktor/issues/941 for the context.
"-DKONAN_NO_64BIT_ATOMIC=1",
"-DKONAN_NO_UNALIGNED_ACCESS=1")
KonanTarget.IOS_ARM64 ->
listOf("-DKONAN_OBJC_INTEROP=1",
"-DKONAN_IOS=1",
"-DKONAN_ARM64=1",
"-DKONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1",
"-DKONAN_REPORT_BACKTRACE_TO_IOS_CRASH_LOG=1",
"-DMACHSIZE=64")
KonanTarget.IOS_X64 ->
listOf("-DKONAN_OBJC_INTEROP=1",
"-DKONAN_IOS=1",
"-DKONAN_X64=1",
"-DKONAN_CORE_SYMBOLICATION=1",
"-DKONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1")
KonanTarget.TVOS_ARM64 ->
listOf("-DKONAN_OBJC_INTEROP=1",
"-DKONAN_TVOS=1",
"-DKONAN_ARM64=1",
"-DKONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1",
"-DKONAN_REPORT_BACKTRACE_TO_IOS_CRASH_LOG=1",
"-DMACHSIZE=64")
KonanTarget.TVOS_X64 ->
listOf("-DKONAN_OBJC_INTEROP=1",
"-DKONAN_TVOS=1",
"-DKONAN_X64=1",
"-DKONAN_CORE_SYMBOLICATION=1",
"-DKONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1")
KonanTarget.WATCHOS_ARM64,
KonanTarget.WATCHOS_ARM32 ->
listOf("-DKONAN_OBJC_INTEROP=1",
"-DKONAN_WATCHOS",
"-DKONAN_ARM32=1",
"-DKONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1",
"-DKONAN_REPORT_BACKTRACE_TO_IOS_CRASH_LOG=1",
"-DMACHSIZE=32",
// See explanation for ios_arm32 above.
"-DKONAN_NO_64BIT_ATOMIC=1",
"-DKONAN_NO_UNALIGNED_ACCESS=1")
KonanTarget.WATCHOS_X86 ->
listOf("-DKONAN_OBJC_INTEROP=1",
"-DKONAN_WATCHOS=1",
"-DKONAN_NO_64BIT_ATOMIC=1",
"-DKONAN_X86=1",
"-DKONAN_CORE_SYMBOLICATION=1",
"-DKONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1")
KonanTarget.WATCHOS_X64 -> TODO("implement me")
KonanTarget.ANDROID_ARM32 ->
listOf("-D__ANDROID__",
"-DUSE_GCC_UNWIND=1",
"-DUSE_ELF_SYMBOLS=1",
"-DELFSIZE=32",
"-DKONAN_ANDROID=1",
"-DKONAN_ARM32=1",
"-DKONAN_NO_UNALIGNED_ACCESS=1")
KonanTarget.ANDROID_ARM64 ->
listOf("-D__ANDROID__",
"-DUSE_GCC_UNWIND=1",
"-DUSE_ELF_SYMBOLS=1",
"-DELFSIZE=64",
"-DKONAN_ANDROID=1",
"-DKONAN_ARM64=1",
"-DKONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1")
KonanTarget.ANDROID_X86 ->
listOf("-D__ANDROID__",
"-DUSE_GCC_UNWIND=1",
"-DUSE_ELF_SYMBOLS=1",
"-DELFSIZE=32",
"-DKONAN_ANDROID=1",
"-DKONAN_X86=1",
"-DKONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1")
KonanTarget.ANDROID_X64 ->
listOf("-D__ANDROID__",
"-DUSE_GCC_UNWIND=1",
"-DUSE_ELF_SYMBOLS=1",
"-DELFSIZE=64",
"-DKONAN_ANDROID=1",
"-DKONAN_X64=1",
"-DKONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1")
KonanTarget.WASM32 ->
listOf("-DKONAN_WASM=1",
"-DKONAN_NO_FFI=1",
"-DKONAN_NO_THREADS=1",
"-DKONAN_NO_EXCEPTIONS=1",
"-DKONAN_INTERNAL_DLMALLOC=1",
"-DKONAN_INTERNAL_SNPRINTF=1",
"-DKONAN_INTERNAL_NOW=1",
"-DKONAN_NO_MEMMEM",
"-DKONAN_NO_CTORS_SECTION=1")
is KonanTarget.ZEPHYR ->
listOf( "-DKONAN_ZEPHYR=1",
"-DKONAN_NO_FFI=1",
"-DKONAN_NO_THREADS=1",
"-DKONAN_NO_EXCEPTIONS=1",
"-DKONAN_NO_MATH=1",
"-DKONAN_INTERNAL_SNPRINTF=1",
"-DKONAN_INTERNAL_NOW=1",
"-DKONAN_NO_MEMMEM=1",
"-DKONAN_NO_CTORS_SECTION=1",
"-DKONAN_NO_UNALIGNED_ACCESS=1")
}
get() = runtimeDefinitions.map { "-D$it" }
private val host = HostManager.host
@@ -51,6 +51,8 @@ interface Configurables : TargetableExternalStorage {
val absoluteTargetSysRoot get() = absolute(targetSysRoot)
val absoluteTargetToolchain get() = absolute(targetToolchain)
val absoluteLlvmHome get() = absolute(llvmHome)
val runtimeDefinitions get() = targetList("runtimeDefinitions")
}
interface TargetableConfigurables : Configurables {