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