xref: /aosp_15_r20/external/cronet/build/config/ios/BUILD.gn (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# Copyright 2014 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard Workerimport("//build/config/ios/ios_sdk.gni")
6*6777b538SAndroid Build Coastguard Workerimport("//build/toolchain/apple/toolchain.gni")
7*6777b538SAndroid Build Coastguard Workerimport("//build/toolchain/rbe.gni")
8*6777b538SAndroid Build Coastguard Workerimport("//build/toolchain/siso.gni")
9*6777b538SAndroid Build Coastguard Workerimport("//build/toolchain/toolchain.gni")
10*6777b538SAndroid Build Coastguard Workerimport("//build_overrides/build.gni")
11*6777b538SAndroid Build Coastguard Worker
12*6777b538SAndroid Build Coastguard Worker# This is included by reference in the //build/config/compiler config that
13*6777b538SAndroid Build Coastguard Worker# is applied to all targets. It is here to separate out the logic.
14*6777b538SAndroid Build Coastguard Workerconfig("compiler") {
15*6777b538SAndroid Build Coastguard Worker  # These flags are shared between the C compiler and linker.
16*6777b538SAndroid Build Coastguard Worker  common_flags = []
17*6777b538SAndroid Build Coastguard Worker
18*6777b538SAndroid Build Coastguard Worker  # CPU architecture.
19*6777b538SAndroid Build Coastguard Worker  if (current_cpu == "x64") {
20*6777b538SAndroid Build Coastguard Worker    triplet_cpu = "x86_64"
21*6777b538SAndroid Build Coastguard Worker  } else if (current_cpu == "x86") {
22*6777b538SAndroid Build Coastguard Worker    triplet_cpu = "i386"
23*6777b538SAndroid Build Coastguard Worker  } else if (current_cpu == "arm" || current_cpu == "armv7") {
24*6777b538SAndroid Build Coastguard Worker    triplet_cpu = "armv7"
25*6777b538SAndroid Build Coastguard Worker  } else if (current_cpu == "arm64") {
26*6777b538SAndroid Build Coastguard Worker    triplet_cpu = "arm64"
27*6777b538SAndroid Build Coastguard Worker  } else {
28*6777b538SAndroid Build Coastguard Worker    assert(false, "unsupported cpu: $current_cpu")
29*6777b538SAndroid Build Coastguard Worker  }
30*6777b538SAndroid Build Coastguard Worker
31*6777b538SAndroid Build Coastguard Worker  # Environment.
32*6777b538SAndroid Build Coastguard Worker  if (target_environment == "simulator") {
33*6777b538SAndroid Build Coastguard Worker    triplet_environment = "-simulator"
34*6777b538SAndroid Build Coastguard Worker  } else if (target_environment == "device") {
35*6777b538SAndroid Build Coastguard Worker    triplet_environment = ""
36*6777b538SAndroid Build Coastguard Worker  } else if (target_environment == "catalyst") {
37*6777b538SAndroid Build Coastguard Worker    triplet_environment = "-macabi"
38*6777b538SAndroid Build Coastguard Worker  } else {
39*6777b538SAndroid Build Coastguard Worker    assert(false, "unsupported environment: $target_environment")
40*6777b538SAndroid Build Coastguard Worker  }
41*6777b538SAndroid Build Coastguard Worker
42*6777b538SAndroid Build Coastguard Worker  # OS.
43*6777b538SAndroid Build Coastguard Worker  triplet_os = "apple-ios"
44*6777b538SAndroid Build Coastguard Worker
45*6777b538SAndroid Build Coastguard Worker  # Set target.
46*6777b538SAndroid Build Coastguard Worker  common_flags = [
47*6777b538SAndroid Build Coastguard Worker    "-target",
48*6777b538SAndroid Build Coastguard Worker    "$triplet_cpu-$triplet_os$ios_deployment_target$triplet_environment",
49*6777b538SAndroid Build Coastguard Worker  ]
50*6777b538SAndroid Build Coastguard Worker
51*6777b538SAndroid Build Coastguard Worker  # This is here so that all files get recompiled after an Xcode update.
52*6777b538SAndroid Build Coastguard Worker  # (defines are passed via the command line, and build system rebuild things
53*6777b538SAndroid Build Coastguard Worker  # when their commandline changes). Nothing should ever read this define.
54*6777b538SAndroid Build Coastguard Worker  defines = [ "CR_XCODE_VERSION=$xcode_version" ]
55*6777b538SAndroid Build Coastguard Worker
56*6777b538SAndroid Build Coastguard Worker  asmflags = common_flags
57*6777b538SAndroid Build Coastguard Worker  cflags = common_flags
58*6777b538SAndroid Build Coastguard Worker  swiftflags = common_flags
59*6777b538SAndroid Build Coastguard Worker
60*6777b538SAndroid Build Coastguard Worker  swiftflags += [
61*6777b538SAndroid Build Coastguard Worker    "-swift-version",
62*6777b538SAndroid Build Coastguard Worker    "5",
63*6777b538SAndroid Build Coastguard Worker  ]
64*6777b538SAndroid Build Coastguard Worker
65*6777b538SAndroid Build Coastguard Worker  cflags_objcc = [
66*6777b538SAndroid Build Coastguard Worker    # When using -std=c++20 or higher, clang automatically returns true for
67*6777b538SAndroid Build Coastguard Worker    # `__has_feature(modules)` as it enables cxx modules. This is problematic
68*6777b538SAndroid Build Coastguard Worker    # because Objective-C code uses this to detect whether `@import` can be
69*6777b538SAndroid Build Coastguard Worker    # used (this feature is also named modules).
70*6777b538SAndroid Build Coastguard Worker    #
71*6777b538SAndroid Build Coastguard Worker    # Since Chromium does not yet enable cxx modules, nor clang modules,
72*6777b538SAndroid Build Coastguard Worker    # force disable the cxx modules, which cause `__has_features(modules)`
73*6777b538SAndroid Build Coastguard Worker    # to return false unless clang modules are explicitly enabled.
74*6777b538SAndroid Build Coastguard Worker    "-Xclang",
75*6777b538SAndroid Build Coastguard Worker    "-fno-cxx-modules",
76*6777b538SAndroid Build Coastguard Worker  ]
77*6777b538SAndroid Build Coastguard Worker  if (ios_chrome_generate_order_file) {
78*6777b538SAndroid Build Coastguard Worker    cflags_objcc += [ "-fsanitize-coverage=func,trace-pc-guard" ]
79*6777b538SAndroid Build Coastguard Worker  }
80*6777b538SAndroid Build Coastguard Worker
81*6777b538SAndroid Build Coastguard Worker  ldflags = common_flags
82*6777b538SAndroid Build Coastguard Worker
83*6777b538SAndroid Build Coastguard Worker  # This is on by default in ld64 for our deployment target, but not yet
84*6777b538SAndroid Build Coastguard Worker  # in ld64.lld. Force it on.
85*6777b538SAndroid Build Coastguard Worker  if (ios_deployment_target != "11.0" && ios_deployment_target != "12.0" &&
86*6777b538SAndroid Build Coastguard Worker      ios_deployment_target != "13.0" && ios_deployment_target != "13.4" &&
87*6777b538SAndroid Build Coastguard Worker      ios_deployment_target != "14.0") {
88*6777b538SAndroid Build Coastguard Worker    ldflags += [ "-Wl,-fixup_chains" ]
89*6777b538SAndroid Build Coastguard Worker  }
90*6777b538SAndroid Build Coastguard Worker
91*6777b538SAndroid Build Coastguard Worker  if (ios_is_app_extension) {
92*6777b538SAndroid Build Coastguard Worker    ldflags += [ "-fapplication-extension" ]
93*6777b538SAndroid Build Coastguard Worker    cflags += [ "-fapplication-extension" ]
94*6777b538SAndroid Build Coastguard Worker  }
95*6777b538SAndroid Build Coastguard Worker}
96*6777b538SAndroid Build Coastguard Worker
97*6777b538SAndroid Build Coastguard Worker# This is included by reference in the //build/config/compiler:runtime_library
98*6777b538SAndroid Build Coastguard Worker# config that is applied to all targets. It is here to separate out the logic
99*6777b538SAndroid Build Coastguard Worker# that is iOS-only. Please see that target for advice on what should go in
100*6777b538SAndroid Build Coastguard Worker# :runtime_library vs. :compiler.
101*6777b538SAndroid Build Coastguard Workerconfig("runtime_library") {
102*6777b538SAndroid Build Coastguard Worker  # The variable ios_sdk_path is relative to root_build_dir when using RBE
103*6777b538SAndroid Build Coastguard Worker  # and system Xcode (since RBE only supports paths relative to source).
104*6777b538SAndroid Build Coastguard Worker  # Rebase the value in that case since gn does not convert paths in compiler
105*6777b538SAndroid Build Coastguard Worker  # flags (since it is not aware they are paths).
106*6777b538SAndroid Build Coastguard Worker  _sdk_root = ios_sdk_path
107*6777b538SAndroid Build Coastguard Worker  if (use_system_xcode && (use_remoteexec || use_siso)) {
108*6777b538SAndroid Build Coastguard Worker    _sdk_root = rebase_path(ios_sdk_path, root_build_dir)
109*6777b538SAndroid Build Coastguard Worker  }
110*6777b538SAndroid Build Coastguard Worker
111*6777b538SAndroid Build Coastguard Worker  common_flags = [
112*6777b538SAndroid Build Coastguard Worker    "-isysroot",
113*6777b538SAndroid Build Coastguard Worker    _sdk_root,
114*6777b538SAndroid Build Coastguard Worker  ]
115*6777b538SAndroid Build Coastguard Worker  swiftflags = [
116*6777b538SAndroid Build Coastguard Worker    "-sdk",
117*6777b538SAndroid Build Coastguard Worker    _sdk_root,
118*6777b538SAndroid Build Coastguard Worker  ]
119*6777b538SAndroid Build Coastguard Worker
120*6777b538SAndroid Build Coastguard Worker  if (target_environment == "catalyst") {
121*6777b538SAndroid Build Coastguard Worker    common_flags += [
122*6777b538SAndroid Build Coastguard Worker      "-isystem",
123*6777b538SAndroid Build Coastguard Worker      "$_sdk_root/System/iOSSupport/usr/include",
124*6777b538SAndroid Build Coastguard Worker      "-iframework",
125*6777b538SAndroid Build Coastguard Worker      "$_sdk_root/System/iOSSupport/System/Library/Frameworks",
126*6777b538SAndroid Build Coastguard Worker    ]
127*6777b538SAndroid Build Coastguard Worker
128*6777b538SAndroid Build Coastguard Worker    swiftflags += [
129*6777b538SAndroid Build Coastguard Worker      "-isystem",
130*6777b538SAndroid Build Coastguard Worker      "$_sdk_root/System/iOSSupport/usr/include",
131*6777b538SAndroid Build Coastguard Worker      "-Fsystem",
132*6777b538SAndroid Build Coastguard Worker      "$_sdk_root/System/iOSSupport/System/Library/Frameworks",
133*6777b538SAndroid Build Coastguard Worker    ]
134*6777b538SAndroid Build Coastguard Worker  }
135*6777b538SAndroid Build Coastguard Worker
136*6777b538SAndroid Build Coastguard Worker  asmflags = common_flags
137*6777b538SAndroid Build Coastguard Worker  cflags = common_flags
138*6777b538SAndroid Build Coastguard Worker  ldflags = common_flags
139*6777b538SAndroid Build Coastguard Worker}
140*6777b538SAndroid Build Coastguard Worker
141*6777b538SAndroid Build Coastguard Workerconfig("ios_executable_flags") {
142*6777b538SAndroid Build Coastguard Worker  ldflags = []
143*6777b538SAndroid Build Coastguard Worker
144*6777b538SAndroid Build Coastguard Worker  # On "catalyst", the bundle structure is different (uses the same structure
145*6777b538SAndroid Build Coastguard Worker  # as a regular macOS app), so an additional -rpath is required.
146*6777b538SAndroid Build Coastguard Worker  if (target_environment == "catalyst") {
147*6777b538SAndroid Build Coastguard Worker    ldflags += [ "-Wl,-rpath,@loader_path/../Frameworks" ]
148*6777b538SAndroid Build Coastguard Worker  }
149*6777b538SAndroid Build Coastguard Worker
150*6777b538SAndroid Build Coastguard Worker  ldflags += [ "-Wl,-rpath,@executable_path/Frameworks" ]
151*6777b538SAndroid Build Coastguard Worker}
152*6777b538SAndroid Build Coastguard Worker
153*6777b538SAndroid Build Coastguard Workerconfig("ios_extension_executable_flags") {
154*6777b538SAndroid Build Coastguard Worker  configs = default_executable_configs
155*6777b538SAndroid Build Coastguard Worker
156*6777b538SAndroid Build Coastguard Worker  ldflags = [
157*6777b538SAndroid Build Coastguard Worker    "-e",
158*6777b538SAndroid Build Coastguard Worker    "_NSExtensionMain",
159*6777b538SAndroid Build Coastguard Worker  ]
160*6777b538SAndroid Build Coastguard Worker
161*6777b538SAndroid Build Coastguard Worker  # On "catalyst", the bundle structure is different (uses the same structure
162*6777b538SAndroid Build Coastguard Worker  # as a regular macOS app), so an additional -rpath is required.
163*6777b538SAndroid Build Coastguard Worker  if (target_environment == "catalyst") {
164*6777b538SAndroid Build Coastguard Worker    ldflags += [ "-Wl,-rpath,@loader_path/../../../../Frameworks" ]
165*6777b538SAndroid Build Coastguard Worker  }
166*6777b538SAndroid Build Coastguard Worker
167*6777b538SAndroid Build Coastguard Worker  ldflags += [ "-Wl,-rpath,@executable_path/../../Frameworks" ]
168*6777b538SAndroid Build Coastguard Worker}
169*6777b538SAndroid Build Coastguard Worker
170*6777b538SAndroid Build Coastguard Workerconfig("ios_dynamic_flags") {
171*6777b538SAndroid Build Coastguard Worker  ldflags = [
172*6777b538SAndroid Build Coastguard Worker    # Always load Objective-C categories and class.
173*6777b538SAndroid Build Coastguard Worker    "-Wl,-ObjC",
174*6777b538SAndroid Build Coastguard Worker  ]
175*6777b538SAndroid Build Coastguard Worker
176*6777b538SAndroid Build Coastguard Worker  # The path to the Swift compatibility libraries (required to run code built
177*6777b538SAndroid Build Coastguard Worker  # with version N of the SDK on older version of the OS) is relative to the
178*6777b538SAndroid Build Coastguard Worker  # toolchains directory and changes with the environment when using the
179*6777b538SAndroid Build Coastguard Worker  # system toolchain. When using the hermetic swift toolchain instead, those
180*6777b538SAndroid Build Coastguard Worker  # libraries are relative to $swift_toolchain_path.
181*6777b538SAndroid Build Coastguard Worker  if (swift_toolchain_path == "") {
182*6777b538SAndroid Build Coastguard Worker    _swift_compatibility_libs_prefix = ios_toolchains_path
183*6777b538SAndroid Build Coastguard Worker  } else {
184*6777b538SAndroid Build Coastguard Worker    _swift_compatibility_libs_prefix = swift_toolchain_path
185*6777b538SAndroid Build Coastguard Worker  }
186*6777b538SAndroid Build Coastguard Worker
187*6777b538SAndroid Build Coastguard Worker  if (target_environment == "simulator") {
188*6777b538SAndroid Build Coastguard Worker    _swift_compatibility_libs_suffix = "iphonesimulator"
189*6777b538SAndroid Build Coastguard Worker  } else if (target_environment == "device") {
190*6777b538SAndroid Build Coastguard Worker    _swift_compatibility_libs_suffix = "iphoneos"
191*6777b538SAndroid Build Coastguard Worker  } else if (target_environment == "catalyst") {
192*6777b538SAndroid Build Coastguard Worker    # The Swift compatibility libraries have changed location starting with
193*6777b538SAndroid Build Coastguard Worker    # Xcode 13.0, so check the version of Xcode when deciding which path to
194*6777b538SAndroid Build Coastguard Worker    # use.
195*6777b538SAndroid Build Coastguard Worker    if (xcode_version_int >= 1300) {
196*6777b538SAndroid Build Coastguard Worker      _swift_compatibility_libs_suffix = "macosx"
197*6777b538SAndroid Build Coastguard Worker    } else {
198*6777b538SAndroid Build Coastguard Worker      _swift_compatibility_libs_suffix = "maccatalyst"
199*6777b538SAndroid Build Coastguard Worker    }
200*6777b538SAndroid Build Coastguard Worker  }
201*6777b538SAndroid Build Coastguard Worker
202*6777b538SAndroid Build Coastguard Worker  lib_dirs = [
203*6777b538SAndroid Build Coastguard Worker    "$ios_sdk_path/usr/lib/swift",
204*6777b538SAndroid Build Coastguard Worker    "$_swift_compatibility_libs_prefix/usr/lib/swift/" +
205*6777b538SAndroid Build Coastguard Worker        "$_swift_compatibility_libs_suffix",
206*6777b538SAndroid Build Coastguard Worker  ]
207*6777b538SAndroid Build Coastguard Worker
208*6777b538SAndroid Build Coastguard Worker  # When building for catalyst, some Swift support libraries are in a
209*6777b538SAndroid Build Coastguard Worker  # different directory which needs to be added to the search path.
210*6777b538SAndroid Build Coastguard Worker  if (target_environment == "catalyst") {
211*6777b538SAndroid Build Coastguard Worker    lib_dirs += [ "$ios_sdk_path/System/iOSSupport/usr/lib/swift" ]
212*6777b538SAndroid Build Coastguard Worker  }
213*6777b538SAndroid Build Coastguard Worker}
214*6777b538SAndroid Build Coastguard Worker
215*6777b538SAndroid Build Coastguard Workerconfig("ios_shared_library_flags") {
216*6777b538SAndroid Build Coastguard Worker  ldflags = [
217*6777b538SAndroid Build Coastguard Worker    "-Wl,-rpath,@executable_path/Frameworks",
218*6777b538SAndroid Build Coastguard Worker    "-Wl,-rpath,@loader_path/Frameworks",
219*6777b538SAndroid Build Coastguard Worker  ]
220*6777b538SAndroid Build Coastguard Worker}
221*6777b538SAndroid Build Coastguard Worker
222*6777b538SAndroid Build Coastguard Workerconfig("xctest_config") {
223*6777b538SAndroid Build Coastguard Worker  # Add some directories to the system framework search path to make
224*6777b538SAndroid Build Coastguard Worker  # them available to the compiler while silencing warnings in the
225*6777b538SAndroid Build Coastguard Worker  # framework headers. This is required for XCTest.
226*6777b538SAndroid Build Coastguard Worker  common_flags = [
227*6777b538SAndroid Build Coastguard Worker    "-iframework",
228*6777b538SAndroid Build Coastguard Worker    rebase_path("$ios_sdk_platform_path/Developer/Library/Frameworks",
229*6777b538SAndroid Build Coastguard Worker                root_build_dir),
230*6777b538SAndroid Build Coastguard Worker    "-iframework",
231*6777b538SAndroid Build Coastguard Worker    rebase_path("$ios_sdk_path/Developer/Library/Frameworks", root_build_dir),
232*6777b538SAndroid Build Coastguard Worker  ]
233*6777b538SAndroid Build Coastguard Worker  cflags = common_flags
234*6777b538SAndroid Build Coastguard Worker  ldflags = common_flags
235*6777b538SAndroid Build Coastguard Worker  swiftflags = common_flags
236*6777b538SAndroid Build Coastguard Worker
237*6777b538SAndroid Build Coastguard Worker  include_dirs = [ "$ios_sdk_platform_path/Developer/usr/lib" ]
238*6777b538SAndroid Build Coastguard Worker  lib_dirs = [ "$ios_sdk_platform_path/Developer/usr/lib" ]
239*6777b538SAndroid Build Coastguard Worker  frameworks = [
240*6777b538SAndroid Build Coastguard Worker    "Foundation.framework",
241*6777b538SAndroid Build Coastguard Worker    "XCTest.framework",
242*6777b538SAndroid Build Coastguard Worker  ]
243*6777b538SAndroid Build Coastguard Worker}
244*6777b538SAndroid Build Coastguard Worker
245*6777b538SAndroid Build Coastguard Worker# TODO(crbug.com/1444308): any target that uses this config will miscompile.
246*6777b538SAndroid Build Coastguard Worker# This needs to be fixed if we want to use Swift - C++ interop.
247*6777b538SAndroid Build Coastguard Workerconfig("enable_swift_cxx_interop") {
248*6777b538SAndroid Build Coastguard Worker  swiftflags = [ "-enable-experimental-cxx-interop" ]
249*6777b538SAndroid Build Coastguard Worker}
250*6777b538SAndroid Build Coastguard Worker
251*6777b538SAndroid Build Coastguard Workergroup("xctest") {
252*6777b538SAndroid Build Coastguard Worker  public_configs = [ ":xctest_config" ]
253*6777b538SAndroid Build Coastguard Worker}
254*6777b538SAndroid Build Coastguard Worker
255*6777b538SAndroid Build Coastguard Worker_xctrunner_path =
256*6777b538SAndroid Build Coastguard Worker    "$ios_sdk_platform_path/Developer/Library/Xcode/Agents/XCTRunner.app"
257*6777b538SAndroid Build Coastguard Worker
258*6777b538SAndroid Build Coastguard Worker# When building with RBE, $ios_sdk_platform_path corresponds to a symlink
259*6777b538SAndroid Build Coastguard Worker# below $root_build_dir that points to the real SDK to use. Because the files
260*6777b538SAndroid Build Coastguard Worker# are below $root_build_dir, it is not possible to list them as a target input
261*6777b538SAndroid Build Coastguard Worker# without gn complaining (as it can't find a target creating those files).
262*6777b538SAndroid Build Coastguard Worker#
263*6777b538SAndroid Build Coastguard Worker# The symlinks are created by //build/config/apple/sdk_info.py script invoked
264*6777b538SAndroid Build Coastguard Worker# via exec_script() from //build/config/{ios/ios_sdk.gni,mac/mac_sdk.gni}.
265*6777b538SAndroid Build Coastguard Worker# As the invocation is done by exec_script, there is no target that can list
266*6777b538SAndroid Build Coastguard Worker# those files as output.
267*6777b538SAndroid Build Coastguard Worker#
268*6777b538SAndroid Build Coastguard Worker# To workaround this, add a target that pretends to create those files
269*6777b538SAndroid Build Coastguard Worker# (but does nothing). See https://crbug.com/1061487 for why this is needed.
270*6777b538SAndroid Build Coastguard Workerif (use_system_xcode && (use_remoteexec || use_siso)) {
271*6777b538SAndroid Build Coastguard Worker  action("copy_xctrunner_app") {
272*6777b538SAndroid Build Coastguard Worker    testonly = true
273*6777b538SAndroid Build Coastguard Worker    script = "//build/noop.py"
274*6777b538SAndroid Build Coastguard Worker    outputs = [
275*6777b538SAndroid Build Coastguard Worker      "$_xctrunner_path/Info.plist",
276*6777b538SAndroid Build Coastguard Worker      "$_xctrunner_path/PkgInfo",
277*6777b538SAndroid Build Coastguard Worker      "$_xctrunner_path/XCTRunner",
278*6777b538SAndroid Build Coastguard Worker    ]
279*6777b538SAndroid Build Coastguard Worker  }
280*6777b538SAndroid Build Coastguard Worker}
281*6777b538SAndroid Build Coastguard Worker
282*6777b538SAndroid Build Coastguard Worker# When creating the test runner for an XCUITest, the arm64e slice of the binary
283*6777b538SAndroid Build Coastguard Worker# must be removed (at least until the app ships with arm64e slice which is not
284*6777b538SAndroid Build Coastguard Worker# yet supported by Apple).
285*6777b538SAndroid Build Coastguard Workeraction("xctest_runner_without_arm64e") {
286*6777b538SAndroid Build Coastguard Worker  testonly = true
287*6777b538SAndroid Build Coastguard Worker  script = "//build/config/ios/strip_arm64e.py"
288*6777b538SAndroid Build Coastguard Worker  sources = [ "$_xctrunner_path/XCTRunner" ]
289*6777b538SAndroid Build Coastguard Worker  outputs = [ "$target_out_dir/XCTRunner" ]
290*6777b538SAndroid Build Coastguard Worker  args = [
291*6777b538SAndroid Build Coastguard Worker    "--output",
292*6777b538SAndroid Build Coastguard Worker    rebase_path(outputs[0], root_build_dir),
293*6777b538SAndroid Build Coastguard Worker    "--input",
294*6777b538SAndroid Build Coastguard Worker    rebase_path(sources[0], root_build_dir),
295*6777b538SAndroid Build Coastguard Worker    "--xcode-version",
296*6777b538SAndroid Build Coastguard Worker    xcode_version,
297*6777b538SAndroid Build Coastguard Worker  ]
298*6777b538SAndroid Build Coastguard Worker
299*6777b538SAndroid Build Coastguard Worker  # When running under ASan, the ASan runtime library must be packaged alongside
300*6777b538SAndroid Build Coastguard Worker  # the test runner binary.
301*6777b538SAndroid Build Coastguard Worker  deps = [ "//build/config/sanitizers:deps" ]
302*6777b538SAndroid Build Coastguard Worker  if (use_system_xcode && (use_remoteexec || use_siso)) {
303*6777b538SAndroid Build Coastguard Worker    deps += [ ":copy_xctrunner_app" ]
304*6777b538SAndroid Build Coastguard Worker  }
305*6777b538SAndroid Build Coastguard Worker}
306