| 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. |
| if (current_os == "win") { |
| supported_toolchains = [ "//llvm/utils/gn/build/toolchain:stage2_win" ] |
| } else { |
| 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. |
| if (host_os == "mac" && have_ios_sdks) { |
| 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)" ] |
| } |
| } |
| } |