OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 # This file introduces two related templates that act like action and | 5 # This file introduces two related templates that act like action and |
6 # action_foreach but instead of running a Python script, it will compile a | 6 # action_foreach but instead of running a Python script, it will compile a |
7 # given tool in the host toolchain and run that (either once or over the list | 7 # given tool in the host toolchain and run that (either once or over the list |
8 # of inputs, depending on the variant). | 8 # of inputs, depending on the variant). |
9 # | 9 # |
10 # Parameters | 10 # Parameters |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 outputs = invoker.outputs | 95 outputs = invoker.outputs |
96 | 96 |
97 # Constuct the host toolchain version of the tool. | 97 # Constuct the host toolchain version of the tool. |
98 host_tool = invoker.tool + "($host_toolchain)" | 98 host_tool = invoker.tool + "($host_toolchain)" |
99 | 99 |
100 # Get the path to the executable. Currently, this assumes that the tool | 100 # Get the path to the executable. Currently, this assumes that the tool |
101 # does not specify output_name so that the target name is the name to use. | 101 # does not specify output_name so that the target name is the name to use. |
102 # If that's not the case, we'll need another argument to the script to | 102 # If that's not the case, we'll need another argument to the script to |
103 # specify this, since we can't know what the output name is (it might be in | 103 # specify this, since we can't know what the output name is (it might be in |
104 # another file not processed yet). | 104 # another file not processed yet). |
105 host_executable = get_label_info(host_tool, "root_out_dir") + "/" + | 105 host_executable = |
106 get_label_info(host_tool, "name") + _host_executable_suffix | 106 get_label_info(host_tool, "root_out_dir") + "/" + |
| 107 get_label_info(host_tool, "name") + _host_executable_suffix |
107 | 108 |
108 # Add the executable itself as an input. | 109 # Add the executable itself as an input. |
109 inputs += [ host_executable ] | 110 inputs += [ host_executable ] |
110 | 111 |
111 deps = [ host_tool ] | 112 deps = [ |
| 113 host_tool, |
| 114 ] |
112 if (defined(invoker.deps)) { | 115 if (defined(invoker.deps)) { |
113 deps += invoker.deps | 116 deps += invoker.deps |
114 } | 117 } |
115 | 118 |
116 # The script takes as arguments the binary to run, and then the arguments | 119 # The script takes as arguments the binary to run, and then the arguments |
117 # to pass it. | 120 # to pass it. |
118 args = [ | 121 args = [ rebase_path(host_executable, root_build_dir) ] + invoker.args |
119 rebase_path(host_executable, root_build_dir) | |
120 ] + invoker.args | |
121 } | 122 } |
122 } | 123 } |
123 | 124 |
124 template("compiled_action_foreach") { | 125 template("compiled_action_foreach") { |
125 assert(defined(invoker.sources), "sources must be defined for $target_name") | 126 assert(defined(invoker.sources), "sources must be defined for $target_name") |
126 assert(defined(invoker.tool), "tool must be defined for $target_name") | 127 assert(defined(invoker.tool), "tool must be defined for $target_name") |
127 assert(defined(invoker.outputs), "outputs must be defined for $target_name") | 128 assert(defined(invoker.outputs), "outputs must be defined for $target_name") |
128 assert(defined(invoker.args), "args must be defined for $target_name") | 129 assert(defined(invoker.args), "args must be defined for $target_name") |
129 | 130 |
130 action_foreach(target_name) { | 131 action_foreach(target_name) { |
(...skipping 13 matching lines...) Expand all Loading... |
144 outputs = invoker.outputs | 145 outputs = invoker.outputs |
145 | 146 |
146 # Constuct the host toolchain version of the tool. | 147 # Constuct the host toolchain version of the tool. |
147 host_tool = invoker.tool + "($host_toolchain)" | 148 host_tool = invoker.tool + "($host_toolchain)" |
148 | 149 |
149 # Get the path to the executable. Currently, this assumes that the tool | 150 # Get the path to the executable. Currently, this assumes that the tool |
150 # does not specify output_name so that the target name is the name to use. | 151 # does not specify output_name so that the target name is the name to use. |
151 # If that's not the case, we'll need another argument to the script to | 152 # If that's not the case, we'll need another argument to the script to |
152 # specify this, since we can't know what the output name is (it might be in | 153 # specify this, since we can't know what the output name is (it might be in |
153 # another file not processed yet). | 154 # another file not processed yet). |
154 host_executable = get_label_info(host_tool, "root_out_dir") + "/" + | 155 host_executable = |
155 get_label_info(host_tool, "name") + _host_executable_suffix | 156 get_label_info(host_tool, "root_out_dir") + "/" + |
| 157 get_label_info(host_tool, "name") + _host_executable_suffix |
156 | 158 |
157 # Add the executable itself as an input. | 159 # Add the executable itself as an input. |
158 inputs += [ host_executable ] | 160 inputs += [ host_executable ] |
159 | 161 |
160 deps = [ host_tool ] | 162 deps = [ |
| 163 host_tool, |
| 164 ] |
161 if (defined(invoker.deps)) { | 165 if (defined(invoker.deps)) { |
162 deps += invoker.deps | 166 deps += invoker.deps |
163 } | 167 } |
164 | 168 |
165 # The script takes as arguments the binary to run, and then the arguments | 169 # The script takes as arguments the binary to run, and then the arguments |
166 # to pass it. | 170 # to pass it. |
167 args = [ | 171 args = [ rebase_path(host_executable, root_build_dir) ] + invoker.args |
168 rebase_path(host_executable, root_build_dir) | |
169 ] + invoker.args | |
170 } | 172 } |
171 } | 173 } |
OLD | NEW |