• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2019 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import("//build/config/ios/deployment_target.gni")
6
7config("compiler") {
8  configs = [
9    ":include_dirs",
10    ":cpp_standard",
11    ":objc_use_arc",
12    ":objc_abi_version",
13  ]
14  cflags = [ "-g" ]
15  swiftflags = [ "-g" ]
16}
17
18config("shared_binary") {
19  if (current_os == "ios" || current_os == "mac") {
20    configs = [
21      ":rpath_config",
22      ":swift_libdir",
23    ]
24  }
25}
26
27config("objc_abi_version") {
28  cflags_objc = [ "-fobjc-abi-version=2" ]
29  cflags_objcc = cflags_objc
30  ldflags = [
31    "-Xlinker",
32    "-objc_abi_version",
33    "-Xlinker",
34    "2",
35  ]
36}
37
38config("include_dirs") {
39  include_dirs = [
40    "//",
41    root_gen_dir,
42  ]
43}
44
45config("objc_use_arc") {
46  cflags_objc = [
47    "-fobjc-arc",
48    "-fobjc-weak",
49  ]
50  cflags_objcc = cflags_objc
51}
52
53config("cpp_standard") {
54  cflags_c = [ "--std=c11" ]
55  cflags_cc = [
56    "--std=c++17",
57    "--stdlib=libc++",
58  ]
59  ldflags = [ "--stdlib=libc++" ]
60}
61
62if (current_os == "ios" || current_os == "mac") {
63  config("rpath_config") {
64    ldflags = [
65      "-Xlinker",
66      "-rpath",
67      "-Xlinker",
68      "@executable_path/Frameworks",
69      "-Xlinker",
70      "-rpath",
71      "-Xlinker",
72      "@loader_path/Frameworks",
73    ]
74  }
75
76  _sdk_info = exec_script("//build/config/ios/scripts/sdk_info.py",
77                          [
78                            "--target-cpu",
79                            current_cpu,
80                            "--deployment-target",
81                            ios_deployment_target,
82                          ],
83                          "json")
84
85  _lib_swift_dir = "${_sdk_info.toolchain_path}/usr/lib/swift"
86  if (current_os == "ios") {
87    if (_sdk_info.is_simulator) {
88      _system_lib_swift_dir = "$_lib_swift_dir/iphonesimulator"
89    } else {
90      _system_lib_swift_dir = "$_lib_swift_dir/iphoneos"
91    }
92  } else {
93    _system_lib_swift_dir = "$_lib_swift_dir/macosx"
94  }
95
96  config("swift_libdir") {
97    lib_dirs = [
98      "${_sdk_info.sdk_path}/usr/lib/swift",
99      _system_lib_swift_dir,
100    ]
101  }
102}
103