blob: cfde4691703a1cbb259d75752b71c19d70ab58ec [file] [log] [blame]
Ben Murdoch097c5b22016-05-18 11:27:45 +01001# Copyright (c) 2012 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
5# Xcode throws an error if an iOS target depends on a Mac OS X target. So
6# any place a utility program needs to be build and run, an action is
7# used to run ninja as script to work around this.
8# Example:
9# {
10# 'target_name': 'foo',
11# 'type': 'none',
12# 'variables': {
13# # The name of a directory used for ninja. This cannot be shared with
14# # another mac build.
15# 'ninja_output_dir': 'ninja-foo',
16# # The full path to the location in which the ninja executable should be
17# # placed. This cannot be shared with another mac build.
18# 'ninja_product_dir':
19# '<(DEPTH)/xcodebuild/<(ninja_output_dir)/<(CONFIGURATION_NAME)',
20# # The list of all the gyp files that contain the targets to run.
21# 're_run_targets': [
22# 'foo.gyp',
23# ],
24# },
25# 'includes': ['path_to/mac_build.gypi'],
26# 'actions': [
27# {
28# 'action_name': 'compile foo',
29# 'inputs': [],
30# 'outputs': [],
31# 'action': [
32# '<@(ninja_cmd)',
33# # All the targets to build.
34# 'foo1',
35# 'foo2',
36# ],
37# },
38# ],
39# }
40{
41 'variables': {
42 'variables': {
43 'parent_generator%': '<(GENERATOR)',
44 },
45 'parent_generator%': '<(parent_generator)',
46 # Common ninja command line flags.
47 'ninja_cmd': [
48 # Bounce through clean_env to clean up the environment so things
49 # set by the iOS build don't pollute the Mac build.
50 '<(DEPTH)/build/ios/clean_env.py',
51 # ninja must be found in the PATH.
52 'ADD_TO_PATH=<!(echo $PATH)',
53 'ninja',
54 '-C',
55 '<(ninja_product_dir)',
56 ],
57
58 # Common syntax to rerun gyp to generate the Mac projects.
59 're_run_gyp': [
60 'build/gyp_chromium',
61 '--depth=.',
62 # Don't use anything set for the iOS side of things.
63 '--ignore-environment',
64 # Generate for ninja
65 '--format=ninja',
66 # Generate files into xcodebuild/ninja
67 '-Goutput_dir=xcodebuild/<(ninja_output_dir)',
68 # nacl isn't in the iOS checkout, make sure it's turned off
69 '-Ddisable_nacl=1',
70 # Pass through the Mac SDK version.
71 '-Dmac_sdk=<(mac_sdk)',
72 '-Dparent_generator=<(parent_generator)',
73 '-DOS=mac',
74 ],
75
76 # Rerun gyp for each of the projects needed. This is what actually
77 # generates the projects on disk.
78 're_run_gyp_execution':
79 '<!(cd <(DEPTH) && <@(re_run_gyp) <@(re_run_targets))',
80 },
81 # Since these are used to generate things needed by other targets, make
82 # them hard dependencies so they are always built first.
83 'hard_dependency': 1,
84}