blob: d9196ee3f427fb6aef053b65b954b875e2d3838b [file] [log] [blame] [edit]
#
# Copyright 2010-2018 JetBrains s.r.o.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# TODO: Do we need a $variable substitution mechanism here?
dependenciesUrl = https://download.jetbrains.com/kotlin/native
# In order of preference:
dependencyProfiles = default alt
# Don't check dependencies on a server.
# If true, dependency downloader will throw an exception if a dependency isn't found in $KONAN_DATA_DIR/dependencies
airplaneMode = false
# if true, ignores Xcode version check.
ignoreXcodeVersionCheck = false
minimalXcodeVersion=12.5
downloadingAttempts = 10
downloadingAttemptIntervalMs = 3000
# Appendix that is used for smaller version of LLVM distributions.
reducedLlvmAppendix = compact
predefinedLlvmDistributions = \
llvm-16.0.0-x86_64-macos-dev-50 \
llvm-16.0.0-aarch64-macos-dev-63 \
llvm-16.0.0-x86_64-linux-dev-80 \
llvm-16.0.0-x86_64-windows-dev-56 \
llvm-16.0.0-x86_64-macos-essentials-50 \
llvm-16.0.0-aarch64-macos-essentials-63 \
llvm-16.0.0-x86_64-linux-essentials-80 \
llvm-16.0.0-x86_64-windows-essentials-56
llvm-16.0.0-x86_64-macos-dev-50.default = remote:public:resources/llvm/16.0.0-x86_64-macos
llvm-16.0.0-aarch64-macos-dev-63.default = remote:public:resources/llvm/16.0.0-aarch64-macos
llvm-16.0.0-x86_64-linux-dev-80.default = remote:public:resources/llvm/16.0.0-x86_64-linux
llvm-16.0.0-x86_64-windows-dev-56.default = remote:public:resources/llvm/16.0.0-x86_64-windows
llvm-16.0.0-x86_64-macos-essentials-50.default = remote:public:resources/llvm/16.0.0-x86_64-macos
llvm-16.0.0-aarch64-macos-essentials-63.default = remote:public:resources/llvm/16.0.0-aarch64-macos
llvm-16.0.0-x86_64-linux-essentials-80.default = remote:public:resources/llvm/16.0.0-x86_64-linux
llvm-16.0.0-x86_64-windows-essentials-56.default = remote:public:resources/llvm/16.0.0-x86_64-windows
predefinedLibffiVersions = \
libffi-3.2.1-3-darwin-macos \
libffi-3.3-1-macos-arm64 \
libffi-3.2.1-2-linux-x86-64 \
libffi-3.3-windows-x64-1
llvm.linux_x64.dev = llvm-16.0.0-x86_64-linux-dev-80
llvm.linux_x64.user = llvm-16.0.0-x86_64-linux-essentials-80
llvm.mingw_x64.dev = llvm-16.0.0-x86_64-windows-dev-56
llvm.mingw_x64.user = llvm-16.0.0-x86_64-windows-essentials-56
llvm.macos_x64.dev = llvm-16.0.0-x86_64-macos-dev-50
llvm.macos_x64.user = llvm-16.0.0-x86_64-macos-essentials-50
llvm.macos_arm64.dev = llvm-16.0.0-aarch64-macos-dev-63
llvm.macos_arm64.user = llvm-16.0.0-aarch64-macos-essentials-63
# By default LLVM uses 250 for -03 builds.
# We use a smaller value since default value leads to
# unreasonably bloated runtime code without any measurable
# performance benefits.
# This value still has to be tuned for different targets, though.
llvmInlineThreshold = 100
clangDebugFlags = -O0
linkerGccFlags = -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed
llvmVersion.linux_x64 = 16
llvmVersion.mingw_x64 = 16
llvmVersion.macos_x64 = 16.0.0
llvmVersion.macos_arm64 = 16.0.0
sdkVersion.ios = 18.0
sdkVersion.macos = 15.0
sdkVersion.tvos = 18.0
sdkVersion.watchos = 11.0
# 14.0 for ios_simulator_arm64
minVersion.ios = 12.0
minVersion.macos = 11.0
# 14.0 for tvos_simulator_arm64
minVersion.tvos = 12.0
# 9.0 for watchos_device_arm64
# 7.0 for watchos_x64, watchos_simulator_arm64
minVersion.watchos = 5.0
toolchainDependency.mingw_x64 = msys2-mingw-w64-x86_64-2
toolchainDependency.mingw_x86 = msys2-mingw-w64-i686-2
toolchainDependency.linux_x64 = x86_64-unknown-linux-gnu-gcc-8.3.0-glibc-2.19-kernel-4.9-2
toolchainDependency.linux_arm64 = aarch64-unknown-linux-gnu-gcc-8.3.0-glibc-2.25-kernel-4.9-2
toolchainDependency.linux_mips32 = mips-unknown-linux-gnu-gcc-8.3.0-glibc-2.19-kernel-4.9-2
toolchainDependency.linux_mipsel32 = mipsel-unknown-linux-gnu-gcc-8.3.0-glibc-2.19-kernel-4.9-2
toolchainDependency.linux_arm32_hfp = arm-unknown-linux-gnueabihf-gcc-8.3.0-glibc-2.12.1-kernel-4.9-1
cacheableTargets.macos_x64 = \
macos_x64 \
ios_x64 \
ios_arm64
cacheableTargets.linux_x64 = \
linux_x64
cacheableTargets.mingw_x64 =
cacheableTargets.macos_arm64 = \
macos_arm64 \
ios_simulator_arm64 \
ios_arm64
# Targets that support compiler caches, but these caches
# are not considered stable enough to be turned on by default.
optInCacheableTargets =
# Mac OS X.
# Can be an absolute path instead of predefined value.
llvmHome.macos_x64 = $llvm.macos_x64.dev
targetToolchain.macos_x64 = target-toolchain-xcode_16.0_16A242d
libffiDir.macos_x64 = libffi-3.2.1-3-darwin-macos
additionalToolsDir.macos_x64 = xcode-addon-xcode_16.0_16A242d
targetToolchain.macos_arm64-macos_x64 = target-toolchain-xcode_16.0_16A242d
targetTriple.macos_x64 = x86_64-apple-macos
targetSysRoot.macos_x64 = target-sysroot-xcode_16.0_16A242d-macosx
targetCpu.macos_x64 = penryn
targetCpuFeatures.macos_x64=+cx16,+cx8,+fxsr,+mmx,+sahf,+sse,+sse2,+sse3,+sse4.1,+ssse3,+x87
clangFlags.macos_x64 = -cc1 -emit-obj -disable-llvm-passes -x ir
clangNooptFlags.macos_x64 = -O1
clangOptFlags.macos_x64 = -O3
clangDebugFlags.macos_x64 = -O0
linkerKonanFlags.macos_x64 = -lSystem -lc++ -lobjc -framework Foundation
linkerOptimizationFlags.macos_x64 = -dead_strip
linkerNoDebugFlags.macos_x64 = -S
stripFlags.macos_x64 = -S
linkerDynamicFlags.macos_x64 = -dylib
osVersionMin.macos_x64 = $minVersion.macos
sdkVersion.macos_x64 = $sdkVersion.macos
osVersionMinFlagLd.macos_x64 = -macos_version_min
dependencies.macos_x64 = \
lldb-4-macos
target-sysroot-xcode_16.0_16A242d-macosx.default = \
remote:internal
target-toolchain-xcode_16.0_16A242d.default = \
remote:internal
xcode-addon-xcode_16.0_16A242d.default = \
remote:internal
# macOS Apple Silicon
llvmHome.macos_arm64 = $llvm.macos_arm64.dev
targetToolchain.macos_arm64 = target-toolchain-xcode_16.0_16A242d
libffiDir.macos_arm64 = libffi-3.3-1-macos-arm64
additionalToolsDir.macos_arm64 = xcode-addon-xcode_16.0_16A242d
targetToolchain.macos_x64-macos_arm64 = target-toolchain-xcode_16.0_16A242d
targetTriple.macos_arm64 = arm64-apple-macos
targetSysRoot.macos_arm64 = target-sysroot-xcode_16.0_16A242d-macosx
# TODO: Check Clang behaviour.
targetCpu.macos_arm64 = apple-m1
targetCpuFeatures.macos_arm64 = +aes,+crc,+crypto,+dotprod,+fp-armv8,+fp16fml,+fullfp16,+lse,+neon,+ras,+rcpc,+rdm,+sha2,+sha3,+sm4,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8.5a,+v8a,+zcm,+zcz
clangFlags.macos_arm64 = -cc1 -emit-obj -disable-llvm-passes -x ir
clangNooptFlags.macos_arm64 = -O1
clangOptFlags.macos_arm64 = -O3
# See clangDebugFlags.ios_arm64
# TODO: Is it still necessary?
clangDebugFlags.macos_arm64 = -O0 -mllvm -fast-isel=false -mllvm -global-isel=false
linkerKonanFlags.macos_arm64 = -lSystem -lc++ -lobjc -framework Foundation
linkerOptimizationFlags.macos_arm64 = -dead_strip
linkerNoDebugFlags.macos_arm64 = -S
stripFlags.macos_arm64 = -S
linkerDynamicFlags.macos_arm64 = -dylib
osVersionMin.macos_arm64 = $minVersion.macos
sdkVersion.macos_arm64 = $sdkVersion.macos
osVersionMinFlagLd.macos_arm64 = -macos_version_min
dependencies.macos_arm64 = \
lldb-4-macos
target-sysroot-xcode_16.0_16A242d-macos_arm64.default = \
remote:internal
target-toolchain-xcode_16.0_16A242d-macos_arm64.default = \
remote:internal
xcode-addon-xcode_16.0_16A242d-macos_arm64.default = \
remote:internal
# Apple's 32-bit iOS.
targetToolchain.macos_x64-ios_arm32 = target-toolchain-xcode_16.0_16A242d
targetToolchain.macos_arm64-ios_arm32 = target-toolchain-xcode_16.0_16A242d
target-sysroot-xcode_16.0_16A242d-ios_arm32.default = \
remote:internal
targetTriple.ios_arm32 = armv7-apple-ios
# Shared with 64-bit version.
targetSysRoot.ios_arm32 = target-sysroot-xcode_16.0_16A242d-iphoneos
targetCpu.ios_arm32 = generic
clangFlags.ios_arm32 = -cc1 -emit-obj -disable-llvm-optzns -x ir
clangNooptFlags.ios_arm32 = -O1
clangOptFlags.ios_arm32 = -O3
clangDebugFlags.ios_arm32 = -O0
llvmInlineThreshold.ios_arm32 = 50
linkerNoDebugFlags.ios_arm32 = -S
stripFlags.ios_arm32 = -S
linkerDynamicFlags.ios_arm32 = -dylib
linkerKonanFlags.ios_arm32 = -lSystem -lc++ -lobjc -framework Foundation -framework UIKit
linkerOptimizationFlags.ios_arm32 = -dead_strip
osVersionMin.ios_arm32 = 9.0
osVersionMinFlagLd.ios_arm32 = -ios_version_min
# Apple's 64-bit iOS.
targetToolchain.macos_x64-ios_arm64 = target-toolchain-xcode_16.0_16A242d
targetToolchain.macos_arm64-ios_arm64 = target-toolchain-xcode_16.0_16A242d
target-sysroot-xcode_16.0_16A242d-iphoneos.default = \
remote:internal
targetTriple.ios_arm64 = arm64-apple-ios
targetSysRoot.ios_arm64 = target-sysroot-xcode_16.0_16A242d-iphoneos
targetCpu.ios_arm64 = apple-a7
targetCpuFeatures.ios_arm64 = +aes,+crypto,+fp-armv8,+neon,+sha2,+v8a,+zcm,+zcz
clangFlags.ios_arm64 = -cc1 -emit-obj -disable-llvm-passes -x ir
clangNooptFlags.ios_arm64 = -O1
clangOptFlags.ios_arm64 = -O3
# We force LLVM to use SelectionDAG because fast isel may miscompile sign extension.
# Related:
# https://github.com/JetBrains/kotlin-native/issues/3290
clangDebugFlags.ios_arm64 = -O0 -mllvm -fast-isel=false -mllvm -global-isel=false
linkerNoDebugFlags.ios_arm64 = -S
stripFlags.ios_arm64 = -S
linkerDynamicFlags.ios_arm64 = -dylib
linkerKonanFlags.ios_arm64 = -lSystem -lc++ -lobjc -framework Foundation -framework UIKit
linkerOptimizationFlags.ios_arm64 = -dead_strip
osVersionMin.ios_arm64 = $minVersion.ios
sdkVersion.ios_arm64 = $sdkVersion.ios
osVersionMinFlagLd.ios_arm64 = -ios_version_min
# Apple's iOS simulator.
targetToolchain.macos_x64-ios_x64 = target-toolchain-xcode_16.0_16A242d
targetToolchain.macos_arm64-ios_x64 = target-toolchain-xcode_16.0_16A242d
target-sysroot-xcode_16.0_16A242d-iphonesimulator.default = \
remote:internal
targetTriple.ios_x64 = x86_64-apple-ios-simulator
targetSysRoot.ios_x64 = target-sysroot-xcode_16.0_16A242d-iphonesimulator
targetCpu.ios_x64 = core2
targetCpuFeatures.ios_x64 = +cx16,+cx8,+fxsr,+mmx,+sahf,+sse,+sse2,+sse3,+ssse3,+x87
clangFlags.ios_x64 = -cc1 -emit-obj -disable-llvm-passes -x ir
clangNooptFlags.ios_x64 = -O1
clangOptFlags.ios_x64 = -O3
clangDebugFlags.ios_x64 = -O0
linkerKonanFlags.ios_x64 = -lSystem -lc++ -lobjc -framework Foundation -framework UIKit
linkerOptimizationFlags.ios_x64 = -dead_strip
linkerNoDebugFlags.ios_x64 = -S
stripFlags.ios_x64 = -S
linkerDynamicFlags.ios_x64 = -dylib
osVersionMin.ios_x64 = $minVersion.ios
sdkVersion.ios_x64 = $sdkVersion.ios
osVersionMinFlagLd.ios_x64 = -ios_simulator_version_min
# iOS simulator on Apple Silicon
targetToolchain.macos_x64-ios_simulator_arm64 = target-toolchain-xcode_16.0_16A242d
targetToolchain.macos_arm64-ios_simulator_arm64 = target-toolchain-xcode_16.0_16A242d
target-sysroot-xcode_16.0_16A242d-ios_simulator_arm64.default = \
remote:internal
targetTriple.ios_simulator_arm64 = arm64-apple-ios-simulator
targetSysRoot.ios_simulator_arm64 = target-sysroot-xcode_16.0_16A242d-iphonesimulator
targetCpu.ios_simulator_arm64 = apple-m1
targetCpuFeatures.ios_simulator_arm64 = +aes,+crc,+crypto,+dotprod,+fp-armv8,+fp16fml,+fullfp16,+lse,+neon,+ras,+rcpc,+rdm,+sha2,+sha3,+sm4,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8.5a,+v8a,+zcm,+zcz
clangFlags.ios_simulator_arm64 = -cc1 -emit-obj -disable-llvm-passes -x ir
clangNooptFlags.ios_simulator_arm64 = -O1
clangOptFlags.ios_simulator_arm64 = -O3
clangDebugFlags.ios_simulator_arm64 = -O0 -mllvm -fast-isel=false -mllvm -global-isel=false
linkerKonanFlags.ios_simulator_arm64 = -lSystem -lc++ -lobjc -framework Foundation -framework UIKit
linkerOptimizationFlags.ios_simulator_arm64 = -dead_strip
linkerNoDebugFlags.ios_simulator_arm64 = -S
stripFlags.ios_simulator_arm64 = -S
linkerDynamicFlags.ios_simulator_arm64 = -dylib
osVersionMin.ios_simulator_arm64 = 14.0
sdkVersion.ios_simulator_arm64 = $sdkVersion.ios
osVersionMinFlagLd.ios_simulator_arm64 = -ios_simulator_version_min
# Apple's tvOS simulator.
targetToolchain.macos_x64-tvos_x64 = target-toolchain-xcode_16.0_16A242d
targetToolchain.macos_arm64-tvos_x64 = target-toolchain-xcode_16.0_16A242d
target-sysroot-xcode_16.0_16A242d-appletvsimulator.default = \
remote:internal
targetTriple.tvos_x64 = x86_64-apple-tvos-simulator
targetSysRoot.tvos_x64 = target-sysroot-xcode_16.0_16A242d-appletvsimulator
targetCpu.tvos_x64 = core2
targetCpuFeatures.tvos_x64 = +cx16,+cx8,+fxsr,+mmx,+sahf,+sse,+sse2,+sse3,+ssse3,+x87
clangFlags.tvos_x64 = -cc1 -emit-obj -disable-llvm-passes -x ir
clangNooptFlags.tvos_x64 = -O1
clangOptFlags.tvos_x64 = -O3
clangDebugFlags.tvos_x64 = -O0
linkerKonanFlags.tvos_x64 = -lSystem -lc++ -lobjc -framework Foundation -framework UIKit
linkerOptimizationFlags.tvos_x64 = -dead_strip
linkerNoDebugFlags.tvos_x64 = -S
stripFlags.tvos_x64 = -S
linkerDynamicFlags.tvos_x64 = -dylib
osVersionMin.tvos_x64 = $minVersion.tvos
sdkVersion.tvos_x64 = $sdkVersion.tvos
osVersionMinFlagLd.tvos_x64 = -tvos_simulator_version_min
# Apple's tvOS simulator.
targetToolchain.macos_x64-tvos_simulator_arm64 = target-toolchain-xcode_16.0_16A242d
targetToolchain.macos_arm64-tvos_simulator_arm64 = target-toolchain-xcode_16.0_16A242d
target-sysroot-xcode_16.0_16A242d-tvos_simulator_arm64.default = \
remote:internal
targetTriple.tvos_simulator_arm64 = arm64-apple-tvos-simulator
targetSysRoot.tvos_simulator_arm64 = target-sysroot-xcode_16.0_16A242d-appletvsimulator
targetCpu.tvos_simulator_arm64 = apple-m1
targetCpuFeatures.tvos_simulator_arm64 = +aes,+crc,+crypto,+dotprod,+fp-armv8,+fp16fml,+fullfp16,+lse,+neon,+ras,+rcpc,+rdm,+sha2,+sha3,+sm4,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8.5a,+v8a,+zcm,+zcz
clangFlags.tvos_simulator_arm64 = -cc1 -emit-obj -disable-llvm-passes -x ir
clangNooptFlags.tvos_simulator_arm64 = -O1
clangOptFlags.tvos_simulator_arm64 = -O3
clangDebugFlags.tvos_simulator_arm64 = -O0 -mllvm -fast-isel=false -mllvm -global-isel=false
# -adhoc_codesign is needed due to the new linker in Xcode 15 forgetting to codesign: KT-62086
linkerKonanFlags.tvos_simulator_arm64 = -lSystem -lc++ -lobjc -framework Foundation -framework UIKit -adhoc_codesign
linkerOptimizationFlags.tvos_simulator_arm64 = -dead_strip
linkerNoDebugFlags.tvos_simulator_arm64 = -S
stripFlags.tvos_simulator_arm64 = -S
linkerDynamicFlags.tvos_simulator_arm64 = -dylib
osVersionMin.tvos_simulator_arm64 = 14.0
sdkVersion.tvos_simulator_arm64 = $sdkVersion.tvos
osVersionMinFlagLd.tvos_simulator_arm64 = -tvos_simulator_version_min
# Apple's 64-bit tvOS.
targetToolchain.macos_x64-tvos_arm64 = target-toolchain-xcode_16.0_16A242d
targetToolchain.macos_arm64-tvos_arm64 = target-toolchain-xcode_16.0_16A242d
target-sysroot-xcode_16.0_16A242d-appletvos.default = \
remote:internal
targetTriple.tvos_arm64 = arm64-apple-tvos
targetSysRoot.tvos_arm64 = target-sysroot-xcode_16.0_16A242d-appletvos
targetCpu.tvos_arm64 = apple-a7
targetCpuFeatures.tvos_arm64 = +aes,+crypto,+fp-armv8,+neon,+sha2,+v8a,+zcm,+zcz
clangFlags.tvos_arm64 = -cc1 -emit-obj -disable-llvm-passes -x ir
clangNooptFlags.tvos_arm64 = -O1
clangOptFlags.tvos_arm64 = -O3
clangDebugFlags.tvos_arm64 = -O0 -mllvm -fast-isel=false -mllvm -global-isel=false
linkerNoDebugFlags.tvos_arm64 = -S
stripFlags.tvos_arm64 = -S
linkerDynamicFlags.tvos_arm64 = -dylib
linkerKonanFlags.tvos_arm64 = -lSystem -lc++ -lobjc -framework Foundation -framework UIKit
linkerOptimizationFlags.tvos_arm64 = -dead_strip
osVersionMin.tvos_arm64 = $minVersion.tvos
sdkVersion.tvos_arm64 = $sdkVersion.tvos
osVersionMinFlagLd.tvos_arm64 = -tvos_version_min
# watchOS armv7k
targetToolchain.macos_x64-watchos_arm32 = target-toolchain-xcode_16.0_16A242d
targetToolchain.macos_arm64-watchos_arm32 = target-toolchain-xcode_16.0_16A242d
target-sysroot-xcode_16.0_16A242d-watchos.default = \
remote:internal
targetTriple.watchos_arm32 = armv7k-apple-watchos
targetSysRoot.watchos_arm32 = target-sysroot-xcode_16.0_16A242d-watchos
targetCpu.watchos_arm32 = cortex-a7
targetCpuFeatures.watchos_arm32 = +armv7-a,+d32,+dsp,+fp16,+fp64,+hwdiv,+hwdiv-arm,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,+vfp4,+vfp4d16,+vfp4d16sp,+vfp4sp,-aes,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16fml,-fullfp16,-sha2,-thumb-mode
clangFlags.watchos_arm32 = -cc1 -emit-obj -disable-llvm-passes -x ir
clangNooptFlags.watchos_arm32 = -O1
clangOptFlags.watchos_arm32 = -O3
clangDebugFlags.watchos_arm32 = -O0
llvmInlineThreshold.watchos_arm32 = 50
linkerKonanFlags.watchos_arm32 = -lSystem -lc++ -lobjc -framework Foundation
linkerOptimizationFlags.watchos_arm32 = -dead_strip
linkerNoDebugFlags.watchos_arm32 = -S
stripFlags.watchos_arm32 = -S
linkerDynamicFlags.watchos_arm32 = -dylib
osVersionMin.watchos_arm32 = $minVersion.watchos
sdkVersion.watchos_arm32 = $sdkVersion.watchos
osVersionMinFlagLd.watchos_arm32 = -watchos_version_min
# watchOS arm64_32
targetToolchain.macos_x64-watchos_arm64 = target-toolchain-xcode_16.0_16A242d
targetToolchain.macos_arm64-watchos_arm64 = target-toolchain-xcode_16.0_16A242d
targetTriple.watchos_arm64 = arm64_32-apple-watchos
targetSysRoot.watchos_arm64 = target-sysroot-xcode_16.0_16A242d-watchos
targetCpu.watchos_arm64 = apple-s4
targetCpuFeatures.watchos_arm64 = +aes,+crc,+crypto,+fp-armv8,+fullfp16,+lse,+neon,+ras,+rcpc,+rdm,+sha2,+v8.1a,+v8.2a,+v8.3a,+v8a,+zcm,+zcz
clangFlags.watchos_arm64 = -cc1 -emit-obj -disable-llvm-passes -x ir
clangNooptFlags.watchos_arm64 = -O1
clangOptFlags.watchos_arm64 = -O3
clangDebugFlags.watchos_arm64 = -O0 -mllvm -fast-isel=false -mllvm -global-isel=false
linkerKonanFlags.watchos_arm64 = -lSystem -lc++ -lobjc -framework Foundation
linkerOptimizationFlags.watchos_arm64 = -dead_strip
linkerNoDebugFlags.watchos_arm64 = -S
stripFlags.watchos_arm64 = -S
linkerDynamicFlags.watchos_arm64 = -dylib
osVersionMin.watchos_arm64 = 5.0
sdkVersion.watchos_arm64 = $sdkVersion.watchos
osVersionMinFlagLd.watchos_arm64 = -watchos_version_min
# watchOS arm64
targetToolchain.macos_x64-watchos_device_arm64 = target-toolchain-xcode_16.0_16A242d
targetToolchain.macos_arm64-watchos_device_arm64 = target-toolchain-xcode_16.0_16A242d
targetTriple.watchos_device_arm64 = arm64-apple-watchos
targetSysRoot.watchos_device_arm64 = target-sysroot-xcode_16.0_16A242d-watchos
targetCpu.watchos_device_arm64 = apple-a7
targetCpuFeatures.watchos_device_arm64 = +aes,+crypto,+fp-armv8,+neon,+sha2,+v8a,+zcm,+zcz
clangFlags.watchos_device_arm64 = -cc1 -emit-obj -disable-llvm-passes -x ir
clangNooptFlags.watchos_device_arm64 = -O1
clangOptFlags.watchos_device_arm64 = -O3
clangDebugFlags.watchos_device_arm64 = -O0 -mllvm -fast-isel=false -mllvm -global-isel=false
linkerKonanFlags.watchos_device_arm64 = -lSystem -lc++ -lobjc -framework Foundation
linkerOptimizationFlags.watchos_device_arm64 = -dead_strip
linkerNoDebugFlags.watchos_device_arm64 = -S
stripFlags.watchos_device_arm64 = -S
linkerDynamicFlags.watchos_device_arm64 = -dylib
osVersionMin.watchos_device_arm64 = 9.0
sdkVersion.watchos_device_arm64 = $sdkVersion.watchos
osVersionMinFlagLd.watchos_device_arm64 = -watchos_version_min
# Apple's watchOS i386 simulator.
targetToolchain.macos_x64-watchos_x86 = target-toolchain-xcode_16.0_16A242d
targetToolchain.macos_arm64-watchos_x86 = target-toolchain-xcode_16.0_16A242d
target-sysroot-xcode_16.0_16A242d-watchsimulator.default = \
remote:internal
targetTriple.watchos_x86 = i386-apple-watchos-simulator
targetSysRoot.watchos_x86 = target-sysroot-xcode_16.0_16A242d-watchsimulator
# Make sure that SSE2 is available by setting target-cpu to pentium4
targetCpu.watchos_x86 = pentium4
clangFlags.watchos_x86 = -cc1 -emit-obj -disable-llvm-passes -x ir
clangNooptFlags.watchos_x86 = -O1
clangOptFlags.watchos_x86 = -O3
clangDebugFlags.watchos_x86 = -O0
linkerKonanFlags.watchos_x86 = -lSystem -lc++ -lobjc -framework Foundation
linkerOptimizationFlags.watchos_x86 = -dead_strip
linkerNoDebugFlags.watchos_x86 = -S
stripFlags.watchos_x86 = -S
linkerDynamicFlags.watchos_x86 = -dylib
osVersionMin.watchos_x86 = 5.0
sdkVersion.watchos_x86 = $sdkVersion.watchos
osVersionMinFlagLd.watchos_x86 = -watchos_simulator_version_min
# watchOS x86_64 simulator.
targetToolchain.macos_x64-watchos_x64 = target-toolchain-xcode_16.0_16A242d
targetToolchain.macos_arm64-watchos_x64 = target-toolchain-xcode_16.0_16A242d
target-sysroot-xcode_16.0_16A242d-watchos_x64.default = \
remote:internal
targetTriple.watchos_x64 = x86_64-apple-watchos-simulator
targetSysRoot.watchos_x64 = target-sysroot-xcode_16.0_16A242d-watchsimulator
targetCpu.watchos_x64 = core2
targetCpuFeatures.watchos_x64 = +cx16,+cx8,+fxsr,+mmx,+sahf,+sse,+sse2,+sse3,+ssse3,+x87
clangFlags.watchos_x64 = -cc1 -emit-obj -disable-llvm-passes -x ir
clangNooptFlags.watchos_x64 = -O1
clangOptFlags.watchos_x64 = -O3
clangDebugFlags.watchos_x64 = -O0
linkerKonanFlags.watchos_x64 = -lSystem -lc++ -lobjc -framework Foundation
linkerOptimizationFlags.watchos_x64 = -dead_strip
linkerNoDebugFlags.watchos_x64 = -S
stripFlags.watchos_x64 = -S
linkerDynamicFlags.watchos_x64 = -dylib
osVersionMin.watchos_x64 = 7.0
sdkVersion.watchos_x64 = $sdkVersion.watchos
osVersionMinFlagLd.watchos_x64 = -watchos_simulator_version_min
# watchOS Apple Silicon simulator.
targetToolchain.macos_x64-watchos_simulator_arm64 = target-toolchain-xcode_16.0_16A242d
targetToolchain.macos_arm64-watchos_simulator_arm64 = target-toolchain-xcode_16.0_16A242d
target-sysroot-xcode_16.0_16A242d-watchos_simulator_arm64.default = \
remote:internal
targetTriple.watchos_simulator_arm64 = arm64-apple-watchos-simulator
targetSysRoot.watchos_simulator_arm64 = target-sysroot-xcode_16.0_16A242d-watchsimulator
targetCpu.watchos_simulator_arm64 = apple-m1
targetCpuFeatures.watchos_simulator_arm64 = +aes,+crc,+crypto,+dotprod,+fp-armv8,+fp16fml,+fullfp16,+lse,+neon,+ras,+rcpc,+rdm,+sha2,+sha3,+sm4,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8.5a,+v8a,+zcm,+zcz
clangFlags.watchos_simulator_arm64 = -cc1 -emit-obj -disable-llvm-passes -x ir
clangNooptFlags.watchos_simulator_arm64 = -O1
clangOptFlags.watchos_simulator_arm64 = -O3
clangDebugFlags.watchos_simulator_arm64 = -O0 -mllvm -fast-isel=false -mllvm -global-isel=false
linkerKonanFlags.watchos_simulator_arm64 = -lSystem -lc++ -lobjc -framework Foundation
linkerOptimizationFlags.watchos_simulator_arm64 = -dead_strip
linkerNoDebugFlags.watchos_simulator_arm64 = -S
stripFlags.watchos_simulator_arm64 = -S
linkerDynamicFlags.watchos_simulator_arm64 = -dylib
osVersionMin.watchos_simulator_arm64 = 7.0
sdkVersion.watchos_simulator_arm64 = $sdkVersion.watchos
osVersionMinFlagLd.watchos_simulator_arm64 = -watchos_simulator_version_min
# Linux x86-64.
llvmHome.linux_x64 = $llvm.linux_x64.dev
libffiDir.linux_x64 = libffi-3.2.1-2-linux-x86-64
gccToolchain.linux_x64 = $toolchainDependency.linux_x64
targetToolchain.linux_x64 = $gccToolchain.linux_x64/x86_64-unknown-linux-gnu
dependencies.linux_x64 = \
$toolchainDependency.linux_x64 \
lldb-4-linux
targetToolchain.mingw_x64-linux_x64 = $llvmHome.mingw_x64
dependencies.mingw_x64-linux_x64 = \
$toolchainDependency.linux_x64 \
$toolchainDependency.mingw_x64
targetToolchain.macos_x64-linux_x64 = $llvmHome.macos_x64
dependencies.macos_x64-linux_x64 = \
$toolchainDependency.linux_x64
targetToolchain.macos_arm64-linux_x64 = $llvmHome.macos_arm64
dependencies.macos_arm64-linux_x64 = \
$toolchainDependency.linux_x64
targetTriple.linux_x64 = x86_64-unknown-linux-gnu
targetSysRoot.linux_x64 = $gccToolchain.linux_x64/x86_64-unknown-linux-gnu/sysroot
# targetSysroot-relative.
libGcc.linux_x64 = ../../lib/gcc/x86_64-unknown-linux-gnu/8.3.0
targetCpu.linux_x64 = x86-64
targetCpuFeatures.linux_x64 = +cx8,+fxsr,+mmx,+sse,+sse2,+x87
clangFlags.linux_x64 = -cc1 -emit-obj -disable-llvm-optzns -x ir \
-ffunction-sections -fdata-sections
clangNooptFlags.linux_x64 = -O1
clangOptFlags.linux_x64 = -O3
clangDebugFlags.linux_x64 = -O0
dynamicLibraryRelocationMode.linux_x64 = pic
staticLibraryRelocationMode.linux_x64 = pic
linkerKonanFlags.linux_x64 = -Bstatic -lstdc++ -Bdynamic -ldl -lm -lpthread \
--defsym __cxa_demangle=Konan_cxa_demangle --gc-sections
linkerOptimizationFlags.linux_x64 =
linkerNoDebugFlags.linux_x64 = -S
linkerDynamicFlags.linux_x64 = -shared
linker.linux_x64 = $llvmHome.linux_x64/bin/ld.lld
linkerHostSpecificFlags.linux_x64-linux_x64 =
# TODO: Check ld.lld from LLVM.
linker.mingw_x64-linux_x64 = $targetToolchain.mingw_x64/bin/ld.gold
linkerHostSpecificFlags.mingw_x64-linux_x64 =
linker.macos_x64-linux_x64 = $targetToolchain.macos_x64-linux_x64/bin/ld.lld
linkerHostSpecificFlags.macos_x64-linux_x64 =
linker.macos_arm64-linux_x64 = $targetToolchain.macos_arm64-linux_x64/bin/ld.lld
linkerHostSpecificFlags.macos_arm64-linux_x64 =
dynamicLinker.linux_x64 = /lib64/ld-linux-x86-64.so.2
# targetSysRoot relative
abiSpecificLibraries.linux_x64 = lib usr/lib ../lib64 lib64 usr/lib64
# targetSysRoot relative
crtFilesLocation.linux_x64 = usr/lib
# Raspberry Pi
gccToolchain.linux_arm32_hfp = $toolchainDependency.linux_arm32_hfp
targetToolchain.linux_x64-linux_arm32_hfp = $gccToolchain.linux_arm32_hfp/arm-unknown-linux-gnueabihf
targetToolchain.mingw_x64-linux_arm32_hfp = $llvmHome.mingw_x64
targetToolchain.macos_x64-linux_arm32_hfp = $llvmHome.macos_x64
targetToolchain.macos_arm64-linux_arm32_hfp = $llvmHome.macos_arm64
# 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 = \
$toolchainDependency.linux_arm32_hfp
dependencies.mingw_x64-linux_arm32_hfp = \
$toolchainDependency.linux_arm32_hfp \
$toolchainDependency.mingw_x64
dependencies.macos_x64-linux_arm32_hfp = \
$toolchainDependency.linux_arm32_hfp
dependencies.macos_arm64-linux_arm32_hfp = \
$toolchainDependency.linux_arm32_hfp
targetTriple.linux_arm32_hfp = arm-unknown-linux-gnueabihf
linkerNoDebugFlags.linux_arm32_hfp = -S
linkerDynamicFlags.linux_arm32_hfp = -shared
linkerOptimizationFlags.linux_arm32_hfp = --gc-sections
targetSysRoot.linux_arm32_hfp = $gccToolchain.linux_arm32_hfp/arm-unknown-linux-gnueabihf/sysroot
# We could reuse host toolchain here.
linkerKonanFlags.linux_arm32_hfp = -Bstatic -lstdc++ -Bdynamic -ldl -lm -lpthread \
--defsym __cxa_demangle=Konan_cxa_demangle
# targetSysroot-relative.
libGcc.linux_arm32_hfp = ../../lib/gcc/arm-unknown-linux-gnueabihf/8.3.0
targetCpu.linux_arm32_hfp = arm1176jzf-s
# Taken from clang-produced bitcode.
# TODO: Not sure if we need so many features. Revise.
targetCpuFeatures.linux_arm32_hfp = +armv6kz,+dsp,+fp64,+strict-align,+vfp2,+vfp2sp,-aes,-d32,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fullfp16,-neon,-sha2,-thumb-mode,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp
clangFlags.linux_arm32_hfp = -cc1 -mfloat-abi hard -emit-obj -disable-llvm-optzns -x ir
clangNooptFlags.linux_arm32_hfp = -O1
clangOptFlags.linux_arm32_hfp = -O3 -ffunction-sections
clangDebugFlags.linux_arm32_hfp = -O0
dynamicLibraryRelocationMode.linux_arm32_hfp = pic
staticLibraryRelocationMode.linux_arm32_hfp = pic
linker.linux_x64-linux_arm32_hfp = $targetToolchain.linux_x64-linux_arm32_hfp/bin/ld
linkerHostSpecificFlags.linux_x64-linux_arm32_hfp =
# TODO: Check ld.lld from LLVM.
linker.mingw_x64-linux_arm32_hfp = $targetToolchain.mingw_x64/bin/ld.gold
linkerHostSpecificFlags.mingw_x64-linux_arm32_hfp =
linker.macos_x64-linux_arm32_hfp = $targetToolchain.macos_x64-linux_arm32_hfp/bin/ld.lld
linkerHostSpecificFlags.macos_x64-linux_arm32_hfp =
linker.macos_arm64-linux_arm32_hfp = $targetToolchain.macos_arm64-linux_arm32_hfp/bin/ld.lld
linkerHostSpecificFlags.macos_arm64-linux_arm32_hfp =
dynamicLinker.linux_arm32_hfp = /lib/ld-linux-armhf.so.3
# targetSysRoot relative
abiSpecificLibraries.linux_arm32_hfp = lib usr/lib
# targetSysRoot relative
crtFilesLocation.linux_arm32_hfp = usr/lib
# Linux arm64
gccToolchain.linux_arm64 = $toolchainDependency.linux_arm64
targetToolchain.linux_x64-linux_arm64 = $gccToolchain.linux_arm64/aarch64-unknown-linux-gnu
targetToolchain.mingw_x64-linux_arm64 = $llvmHome.mingw_x64
targetToolchain.macos_x64-linux_arm64 = $llvmHome.macos_x64
targetToolchain.macos_arm64-linux_arm64 = $llvmHome.macos_arm64
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 = \
$toolchainDependency.linux_arm64
dependencies.mingw_x64-linux_arm64 = \
$toolchainDependency.linux_arm64 \
$toolchainDependency.mingw_x64
dependencies.macos_x64-linux_arm64 = \
$toolchainDependency.linux_arm64
dependencies.macos_arm64-linux_arm64 = \
$toolchainDependency.linux_arm64
targetTriple.linux_arm64 = aarch64-unknown-linux-gnu
linkerNoDebugFlags.linux_arm64 = -S
linkerDynamicFlags.linux_arm64 = -shared
linkerOptimizationFlags.linux_arm64 = --gc-sections
targetSysRoot.linux_arm64 = $gccToolchain.linux_arm64/aarch64-unknown-linux-gnu/sysroot
# We could reuse host toolchain here.
linkerKonanFlags.linux_arm64 = -Bstatic -lstdc++ -Bdynamic -ldl -lm -lpthread \
--defsym __cxa_demangle=Konan_cxa_demangle
# targetSysroot-relative.
libGcc.linux_arm64 = ../../lib/gcc/aarch64-unknown-linux-gnu/8.3.0
# "generic" in runtime modules
targetCpu.linux_arm64 = cortex-a57
# targetCpuFeatures.linux_arm64 = +neon,+v8a
clangFlags.linux_arm64 = -cc1 -emit-obj -disable-llvm-optzns -x ir
clangNooptFlags.linux_arm64 = -O1
clangOptFlags.linux_arm64 = -O3 -ffunction-sections
clangDebugFlags.linux_arm64 = -O0
dynamicLibraryRelocationMode.linux_arm64 = pic
staticLibraryRelocationMode.linux_arm64 = pic
linker.linux_x64-linux_arm64 = $llvmHome.linux_x64/bin/ld.lld
linkerHostSpecificFlags.linux_x64-linux_arm64 =
# TODO: Check ld.lld from LLVM.
linker.mingw_x64-linux_arm64 = $targetToolchain.mingw_x64/bin/ld.gold
linkerHostSpecificFlags.mingw_x64-linux_arm64 =
linker.macos_x64-linux_arm64 = $targetToolchain.macos_x64-linux_arm64/bin/ld.lld
linkerHostSpecificFlags.macos_x64-linux_arm64 =
linker.macos_arm64-linux_arm64 = $targetToolchain.macos_arm64-linux_arm64/bin/ld.lld
linkerHostSpecificFlags.macos_arm64-linux_arm64 =
dynamicLinker.linux_arm64 = /lib/ld-linux-aarch64.so.1
# targetSysRoot relative
abiSpecificLibraries.linux_arm64 = lib usr/lib
# targetSysRoot relative
crtFilesLocation.linux_arm64 = usr/lib
# MIPS
gccToolchain.linux_mips32 = $toolchainDependency.linux_mips32
targetToolchain.linux_x64-linux_mips32 = $gccToolchain.linux_mips32/mips-unknown-linux-gnu
targetToolchain.mingw_x64-linux_mips32 = $llvmHome.mingw_x64
targetToolchain.macos_x64-linux_mips32 = $llvmHome.macos_x64
targetToolchain.macos_arm64-linux_mips32 = $llvmHome.macos_arm64
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 = \
$toolchainDependency.linux_mips32
dependencies.mingw_x64-linux_mips32 = \
$toolchainDependency.linux_mips32
dependencies.macos_x64-linux_mips32 = \
$toolchainDependency.linux_mips32
dependencies.macos_arm64-linux_mips32 = \
$toolchainDependency.linux_mips32
targetTriple.linux_mips32 = mips-unknown-linux-gnu
linkerOptimizationFlags.linux_mips32 = --gc-sections
linkerDynamicFlags.linux_mips32 = -shared
targetSysRoot.linux_mips32 = $gccToolchain.linux_mips32/mips-unknown-linux-gnu/sysroot
# We could reuse host toolchain here.
linkerKonanFlags.linux_mips32 = -Bstatic -lstdc++ -Bdynamic -ldl -lm -lpthread -latomic \
--defsym __cxa_demangle=Konan_cxa_demangle -z notext
# targetSysroot-relative.
libGcc.linux_mips32 = ../../lib/gcc/mips-unknown-linux-gnu/8.3.0
targetCpu.linux_mips32 = mips32r2
# We generate a single binary with a big GOT. It causes problems for MIPS.
# See https://gcc.gnu.org/onlinedocs/gcc/MIPS-Options.html about mxgot (aka -target-feature +xgot).
targetCpuFeatures.linux_mips32 = +xgot
clangFlags.linux_mips32 = -cc1 -emit-obj -disable-llvm-optzns -x ir
clangNooptFlags.linux_mips32 = -O1
clangOptFlags.linux_mips32 = -O3 -ffunction-sections
clangDebugFlags.linux_mips32 = -O0
dynamicLibraryRelocationMode.linux_mips32 = pic
staticLibraryRelocationMode.linux_mips32 = pic
executableRelocationMode.linux_mips32 = static
linker.linux_x64-linux_mips32 = $targetToolchain.linux_x64-linux_mips32/bin/ld
linker.mingw_x64-linux_mips32 = $targetToolchain.mingw_x64-linux_mips32/bin/ld.lld
linker.macos_x64-linux_mips32 = $targetToolchain.macos_x64-linux_mips32/bin/ld.lld
linker.macos_arm64-linux_mips32 = $targetToolchain.macos_arm64-linux_mips32/bin/ld.lld
linkerHostSpecificFlags.linux_x64-linux_mips32 =
dynamicLinker.linux_mips32 = /lib/ld.so.1
# targetSysRoot relative
abiSpecificLibraries.linux_mips32 = lib usr/lib
# targetSysRoot relative
crtFilesLocation.linux_mips32 = usr/lib
# MIPSel
gccToolchain.linux_mipsel32 = $toolchainDependency.linux_mipsel32
targetToolchain.linux_x64-linux_mipsel32 = $gccToolchain.linux_mipsel32/mipsel-unknown-linux-gnu
targetToolchain.mingw_x64-linux_mipsel32 = $llvmHome.mingw_x64
targetToolchain.macos_x64-linux_mipsel32 = $llvmHome.macos_x64
targetToolchain.macos_arm64-linux_mipsel32 = $llvmHome.macos_arm64
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 = \
$toolchainDependency.linux_mipsel32
dependencies.mingw_x64-linux_mipsel32 = \
$toolchainDependency.linux_mipsel32
dependencies.macos_x64-linux_mipsel32 = \
$toolchainDependency.linux_mipsel32
dependencies.macos_arm64-linux_mipsel32 = \
$toolchainDependency.linux_mipsel32
targetTriple.linux_mipsel32 = mipsel-unknown-linux-gnu
linkerOptimizationFlags.linux_mipsel32 = --gc-sections
linkerDynamicFlags.linux_mipsel32 = -shared
targetSysRoot.linux_mipsel32 = $gccToolchain.linux_mipsel32/mipsel-unknown-linux-gnu/sysroot
# We could reuse host toolchain here.
linkerKonanFlags.linux_mipsel32 = -Bstatic -lstdc++ -Bdynamic -ldl -lm -lpthread -latomic \
--defsym __cxa_demangle=Konan_cxa_demangle -z notext
# targetSysroot-relative.
libGcc.linux_mipsel32 = ../../lib/gcc/mipsel-unknown-linux-gnu/8.3.0
targetCpu.linux_mipsel32 = mips32r2
targetCpuFeatures.linux_mipsel32 = +xgot
clangFlags.linux_mipsel32 = -cc1 -emit-obj -disable-llvm-optzns -x ir
clangNooptFlags.linux_mipsel32 = -O1
clangOptFlags.linux_mipsel32 = -O3 -ffunction-sections
clangDebugFlags.linux_mipsel32 = -O0
dynamicLibraryRelocationMode.linux_mipsel32 = pic
staticLibraryRelocationMode.linux_mipsel32 = pic
linker.linux_x64-linux_mipsel32 = $targetToolchain.linux_x64-linux_mipsel32/bin/ld
linker.mingw_x64-linux_mipsel32 = $targetToolchain.mingw_x64-linux_mipsel32/bin/ld.lld
linker.macos_x64-linux_mipsel32 = $targetToolchain.macos_x64-linux_mipsel32/bin/ld.lld
linker.macos_arm64-linux_mipsel32 = $targetToolchain.macos_arm64-linux_mipsel32/bin/ld.lld
linkerHostSpecificFlags.linux_x64-linux_mipsel32 =
dynamicLinker.linux_mipsel32 = /lib/ld.so.1
# targetSysRoot relative
abiSpecificLibraries.linux_mipsel32 = lib usr/lib
# targetSysRoot relative
crtFilesLocation.linux_mipsel32 = usr/lib
# Android ARM32, based on NDK for android-21.
targetToolchain.macos_x64-android_arm32 = target-toolchain-2-osx-android_ndk
dependencies.macos_x64-android_arm32 = \
target-sysroot-1-android_ndk \
target-toolchain-2-osx-android_ndk
targetToolchain.macos_arm64-android_arm32 = target-toolchain-2-osx-android_ndk
dependencies.macos_arm64-android_arm32 = \
target-sysroot-1-android_ndk \
target-toolchain-2-osx-android_ndk
targetToolchain.linux_x64-android_arm32 = target-toolchain-2-linux-android_ndk
dependencies.linux_x64-android_arm32 = \
target-sysroot-1-android_ndk \
target-toolchain-2-linux-android_ndk
targetToolchain.mingw_x64-android_arm32 = target-toolchain-2-windows-android_ndk
dependencies.mingw_x64-android_arm32 = \
target-sysroot-1-android_ndk \
target-toolchain-2-windows-android_ndk
targetTriple.android_arm32 = arm-unknown-linux-androideabi
targetCpu.android_arm32 = arm7tdmi
targetCpuFeatures.android_arm32 = +armv4t,+soft-float,+strict-align,-aes,-bf16,-d32,-dotprod,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fp64,-fpregs,-fullfp16,-mve,-mve.fp,-neon,-sha2,-thumb-mode,-vfp2,-vfp2sp,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp
clangFlags.android_arm32 = -cc1 -emit-obj -disable-llvm-optzns -x ir -femulated-tls -mrelocation-model pic
clangOptFlags.android_arm32 = -O3 -ffunction-sections
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
# Android ARM64, based on NDK.
targetToolchain.macos_x64-android_arm64 = target-toolchain-2-osx-android_ndk
dependencies.macos_x64-android_arm64 = \
target-sysroot-1-android_ndk \
target-toolchain-2-osx-android_ndk
targetToolchain.macos_arm64-android_arm64 = target-toolchain-2-osx-android_ndk
dependencies.macos_arm64-android_arm64 = \
target-sysroot-1-android_ndk \
target-toolchain-2-osx-android_ndk
targetToolchain.linux_x64-android_arm64 = target-toolchain-2-linux-android_ndk
dependencies.linux_x64-android_arm64 = \
target-sysroot-1-android_ndk \
target-toolchain-2-linux-android_ndk
targetToolchain.mingw_x64-android_arm64 = target-toolchain-2-windows-android_ndk
dependencies.mingw_x64-android_arm64 = \
target-sysroot-1-android_ndk \
target-toolchain-2-windows-android_ndk
targetTriple.android_arm64 = aarch64-unknown-linux-android
# "generic" in runtime modules
targetCpu.android_arm64 = cortex-a57
# targetCpuFeatures.android_arm64 = +fix-cortex-a53-835769,+neon,+outline-atomics,+v8a
clangFlags.android_arm64 = -cc1 -emit-obj -disable-llvm-passes -x ir -femulated-tls -mrelocation-model pic -mno-outline-atomics
clangOptFlags.android_arm64 = -O3 -ffunction-sections
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
# Android X86, based on NDK.
targetToolchain.macos_x64-android_x86 = target-toolchain-2-osx-android_ndk
dependencies.macos_x64-android_x86 = \
target-sysroot-1-android_ndk \
target-toolchain-2-osx-android_ndk
targetToolchain.macos_arm64-android_x86 = target-toolchain-2-osx-android_ndk
dependencies.macos_arm64-android_x86 = \
target-sysroot-1-android_ndk \
target-toolchain-2-osx-android_ndk
targetToolchain.linux_x64-android_x86 = target-toolchain-2-linux-android_ndk
dependencies.linux_x64-android_x86 = \
target-sysroot-1-android_ndk \
target-toolchain-2-linux-android_ndk
targetToolchain.mingw_x64-android_x86 = target-toolchain-2-windows-android_ndk
dependencies.mingw_x64-android_x86 = \
target-sysroot-1-android_ndk \
target-toolchain-2-windows-android_ndk
targetTriple.android_x86 = i686-unknown-linux-android
# Make sure that SSE2 is available by setting target-cpu to pentium4
# "i686" in runtime modules
targetCpu.android_x86 = pentium4
# targetCpuFeatures.android_x86 = +cx8,+mmx,+sse,+sse2,+sse3,+ssse3,+x87
clangFlags.android_x86 = -cc1 -emit-obj -disable-llvm-passes -x ir -femulated-tls -mrelocation-model pic
clangOptFlags.android_x86 = -O3 -ffunction-sections
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
# Android X64, based on NDK.
targetToolchain.macos_x64-android_x64 = target-toolchain-2-osx-android_ndk
dependencies.macos_x64-android_x64 = \
target-sysroot-1-android_ndk \
target-toolchain-2-osx-android_ndk
targetToolchain.macos_arm64-android_x64 = target-toolchain-2-osx-android_ndk
dependencies.macos_arm64-android_x64 = \
target-sysroot-1-android_ndk \
target-toolchain-2-osx-android_ndk
targetToolchain.linux_x64-android_x64 = target-toolchain-2-linux-android_ndk
dependencies.linux_x64-android_x64 = \
target-sysroot-1-android_ndk \
target-toolchain-2-linux-android_ndk
targetToolchain.mingw_x64-android_x64 = target-toolchain-2-windows-android_ndk
dependencies.mingw_x64-android_x64 = \
target-sysroot-1-android_ndk \
target-toolchain-2-windows-android_ndk
targetTriple.android_x64 = x86_64-unknown-linux-android
targetCpu.android_x64 = x86-64
targetCpuFeatures.android_x64 = +crc32,+cx16,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87
clangFlags.android_x64 = -cc1 -emit-obj -disable-llvm-passes -x ir -femulated-tls -mrelocation-model pic
clangOptFlags.android_x64 = -O3 -ffunction-sections
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
# Windows x86-64, based on mingw-w64.
llvmHome.mingw_x64 = $llvm.mingw_x64.dev
libffiDir.mingw_x64 = libffi-3.3-windows-x64-1
windowsKitParts.mingw_x64 = windows-kit-x64-v1-alpha2
msvcParts.mingw_x64 = msvc-x64-v1-alpha2
linker.mingw_x64 = lld-12.0.1-windows-x64/ld.lld.exe
linker.linux_x64-mingw_x64 = $targetToolchain.linux_x64-mingw_x64/bin/ld.lld
linker.macos_x64-mingw_x64 = $targetToolchain.macos_x64-mingw_x64/bin/ld.lld
linker.macos_arm64-mingw_x64 = $targetToolchain.macos_arm64-mingw_x64/bin/ld.lld
windows-kit-x64-v1-alpha2.default = \
remote:internal
msvc-x64-v1-alpha2.default = \
remote:internal
targetToolchain.mingw_x64 = $toolchainDependency.mingw_x64
targetToolchain.linux_x64-mingw_x64 = $llvmHome.linux_x64
targetToolchain.macos_x64-mingw_x64 = $llvmHome.macos_x64
targetToolchain.macos_arm64-mingw_x64 = $llvmHome.macos_arm64
# for Windows we are currently using LLDB 9
dependencies.mingw_x64 = \
lldb-2-windows \
lld-12.0.1-windows-x64 \
$toolchainDependency.mingw_x64
dependencies.linux_x64-mingw_x64 = $toolchainDependency.mingw_x64
dependencies.macos_x64-mingw_x64 = $toolchainDependency.mingw_x64
dependencies.macos_arm64-mingw_x64 = $toolchainDependency.mingw_x64
targetTriple.mingw_x64 = x86_64-pc-windows-gnu
targetSysRoot.mingw_x64 = $toolchainDependency.mingw_x64
targetCpu.mingw_x64 = x86-64
targetCpuFeatures.mingw_x64 = +cx8,+fxsr,+mmx,+sse,+sse2,+x87
# For using with Universal Windows Platform (UWP) we need to use this slower option.
# See https://youtrack.jetbrains.com/issue/KT-27654.
# TODO: remove, once fixed in mingw, check with the bug testcase.
clangFlags.mingw_x64 = -cc1 -emit-obj -disable-llvm-passes -x ir -femulated-tls
clangOptFlags.mingw_x64 = -O3 -ffunction-sections
clangNooptFlags.mingw_x64 = -O1
linkerNoDebugFlags.mingw_x64 = -Wl,-S
linkerDynamicFlags.mingw_x64 = -shared
linkerKonanFlags.mingw_x64 = -static-libgcc -static-libstdc++ -lbcrypt \
-Wl,--dynamicbase \
-Wl,-Bstatic,--whole-archive -lwinpthread -Wl,--no-whole-archive,-Bdynamic
linkerOptimizationFlags.mingw_x64 = -Wl,--gc-sections
# Windows i686, based on mingw-w64.
targetToolchain.mingw_x64-mingw_x86 = $toolchainDependency.mingw_x86
targetToolchain.linux_x64-mingw_x86 = $llvmHome.linux_x64
targetToolchain.macos_x64-mingw_x86 = $llvmHome.macos_x64
targetToolchain.macos_arm64-mingw_x86 = $llvmHome.macos_arm64
linker.mingw_x64-mingw_x86 = lld-12.0.1-windows-x64/ld.lld.exe
linker.linux_x64-mingw_x86 = $targetToolchain.linux_x64-mingw_x86/bin/ld.lld
linker.macos_x64-mingw_x86 = $targetToolchain.macos_x64-mingw_x86/bin/ld.lld
linker.macos_arm64-mingw_x86 = $targetToolchain.macos_arm64-mingw_x86/bin/ld.lld
dependencies.mingw_x64-mingw_x86 = \
$toolchainDependency.mingw_x86 \
lld-12.0.1-windows-x64
dependencies.linux_x64-mingw_x86 = \
$toolchainDependency.mingw_x86
dependencies.macos_x64-mingw_x86 = \
$toolchainDependency.mingw_x86
dependencies.macos_arm64-mingw_x86 = \
$toolchainDependency.mingw_x86
targetTriple.mingw_x86 = i686-pc-windows-gnu
targetSysRoot.mingw_x86 = $toolchainDependency.mingw_x86
# Make sure that SSE2 is available by setting target-cpu to pentium4
targetCpu.mingw_x86 = pentium4
# For using with Universal Windows Platform (UWP) we need to use slower -emulated-tls option.
# See https://youtrack.jetbrains.com/issue/KT-27654.
# TODO: remove, once fixed in mingw, check with the bug testcase.
clangFlags.mingw_x86 = -cc1 -emit-obj -disable-llvm-passes -x ir -femulated-tls
clangOptFlags.mingw_x86 = -O3 -ffunction-sections
clangNooptFlags.mingw_x86 = -O1
linkerNoDebugFlags.mingw_x86 = -Wl,-S
linkerDynamicFlags.mingw_x86 = -shared
linkerKonanFlags.mingw_x86 = -static-libgcc -static-libstdc++ -lbcrypt \
-Wl,--dynamicbase \
-Wl,-Bstatic,--whole-archive -lwinpthread -Wl,--no-whole-archive,-Bdynamic
linkerOptimizationFlags.mingw_x86 = -Wl,--gc-sections
# WebAssembly 32-bit.
targetToolchain.macos_x64-wasm32 = target-toolchain-3-macos-wasm
dependencies.macos_x64-wasm32 = \
target-sysroot-4-embedded \
target-toolchain-3-macos-wasm
targetToolchain.macos_arm64-wasm32 = target-toolchain-3-macos-wasm
dependencies.macos_arm64-wasm32 = \
target-sysroot-4-embedded \
target-toolchain-3-macos-wasm
targetToolchain.linux_x64-wasm32 = target-toolchain-2-linux-wasm
dependencies.linux_x64-wasm32 = \
target-sysroot-4-embedded \
target-toolchain-2-linux-wasm
targetToolchain.mingw_x64-wasm32 = target-toolchain-2-mingw-wasm
dependencies.mingw_x64-wasm32 = \
target-sysroot-4-embedded \
target-toolchain-2-mingw-wasm
targetTriple.wasm32 = wasm32-unknown-unknown
targetSysRoot.wasm32 = target-sysroot-4-embedded
targetCpu.wasm32 = generic
clangFlags.wasm32 = -cc1 -emit-obj -disable-llvm-optzns -x ir
clangNooptFlags.wasm32 = -O1
clangOptFlags.wasm32 = -O3
clangDebugFlags.wasm32 = -O0
# TODO: make explicit list of external symbols
lld.wasm32 = --allow-undefined --no-entry --global-base=0 --export-dynamic
# The version of Kotlin/Native compiler
compilerVersion=@compilerVersion@