import("//llvm/lib/Target/targets.gni") import("//llvm/utils/gn/build/mac_sdk.gni") import("//llvm/utils/gn/build/toolchain/compiler.gni") # In the GN build, compiler-rt is always built by just-built clang and lld. # FIXME: For macOS and iOS builds, depend on lib in all needed target arch # toolchains and then lipo them together for the final output. supported_toolchains = [ "//llvm/utils/gn/build/toolchain:stage2_unix" ] if (android_ndk_path != "") { supported_toolchains += [ "//llvm/utils/gn/build/toolchain:stage2_android_aarch64", "//llvm/utils/gn/build/toolchain:stage2_android_arm", ] } group("compiler-rt") { deps = [] foreach(toolchain, supported_toolchains) { deps += [ "//compiler-rt/lib($toolchain)" ] } # FIXME: Do this only if a gn arg compiler_rt_enable_ios is set? # That would match the cmake build. # iOS SDKs aren't available in the commandline tools SDK. if (host_os == "mac" && !mac_use_commandline_tools_sdk) { if (llvm_build_AArch64) { deps += [ "//compiler-rt/lib/builtins(//llvm/utils/gn/build/toolchain:stage2_ios_aarch64)" ] } if (llvm_build_X86) { deps += [ "//compiler-rt/lib/builtins(//llvm/utils/gn/build/toolchain:stage2_iossim_x64)" ] } } }