| # Copyright 2019 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/config/ios/deployment_target.gni") |
| |
| config("compiler") { |
| configs = [ |
| ":include_dirs", |
| ":cpp_standard", |
| ":objc_use_arc", |
| ":objc_abi_version", |
| ] |
| cflags = [ "-g" ] |
| swiftflags = [ "-g" ] |
| } |
| |
| config("shared_binary") { |
| if (current_os == "ios" || current_os == "mac") { |
| configs = [ |
| ":rpath_config", |
| ":swift_libdir", |
| ] |
| } |
| } |
| |
| config("objc_abi_version") { |
| cflags_objc = [ "-fobjc-abi-version=2" ] |
| cflags_objcc = cflags_objc |
| ldflags = [ |
| "-Xlinker", |
| "-objc_abi_version", |
| "-Xlinker", |
| "2", |
| ] |
| } |
| |
| config("include_dirs") { |
| include_dirs = [ |
| "//", |
| root_gen_dir, |
| ] |
| } |
| |
| config("objc_use_arc") { |
| cflags_objc = [ |
| "-fobjc-arc", |
| "-fobjc-weak", |
| ] |
| cflags_objcc = cflags_objc |
| } |
| |
| config("cpp_standard") { |
| cflags_c = [ "--std=c11" ] |
| cflags_cc = [ |
| "--std=c++17", |
| "--stdlib=libc++", |
| ] |
| ldflags = [ "--stdlib=libc++" ] |
| } |
| |
| if (current_os == "ios" || current_os == "mac") { |
| config("rpath_config") { |
| ldflags = [ |
| "-Xlinker", |
| "-rpath", |
| "-Xlinker", |
| "@executable_path/Frameworks", |
| "-Xlinker", |
| "-rpath", |
| "-Xlinker", |
| "@loader_path/Frameworks", |
| ] |
| } |
| |
| _sdk_info = exec_script("//build/config/ios/scripts/sdk_info.py", |
| [ |
| "--target-cpu", |
| current_cpu, |
| "--target-environment", |
| target_environment, |
| "--deployment-target", |
| ios_deployment_target, |
| ], |
| "json") |
| |
| _lib_swift_dir = "${_sdk_info.toolchain_path}/usr/lib/swift" |
| if (current_os == "ios") { |
| if (_sdk_info.is_simulator) { |
| _system_lib_swift_dir = "$_lib_swift_dir/iphonesimulator" |
| } else { |
| _system_lib_swift_dir = "$_lib_swift_dir/iphoneos" |
| } |
| } else { |
| _system_lib_swift_dir = "$_lib_swift_dir/macosx" |
| } |
| |
| config("swift_libdir") { |
| lib_dirs = [ |
| "${_sdk_info.sdk_path}/usr/lib/swift", |
| _system_lib_swift_dir, |
| ] |
| } |
| } |