|  | # 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, | 
|  | "--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, | 
|  | ] | 
|  | } | 
|  | } |