Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: third_party/yasm/yasm_assemble.gni

Issue 1972173003: Fix some TODOs in the yasm build. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « build/linux/unbundle/yasm.gn ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 provides the yasm_assemble() template which uses YASM to assemble 5 # This provides the yasm_assemble() template which uses YASM to assemble
6 # assembly files. 6 # assembly files.
7 # 7 #
8 # Files to be assembled with YASM should have an extension of .asm. 8 # Files to be assembled with YASM should have an extension of .asm.
9 # 9 #
10 # Parameters 10 # Parameters
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 } 87 }
88 } 88 }
89 89
90 if (is_win) { 90 if (is_win) {
91 asm_obj_extension = "obj" 91 asm_obj_extension = "obj"
92 } else { 92 } else {
93 asm_obj_extension = "o" 93 asm_obj_extension = "o"
94 } 94 }
95 95
96 template("yasm_assemble") { 96 template("yasm_assemble") {
97 # TODO(ajwong): Support use_system_yasm.
98 assert(defined(invoker.sources), "Need sources defined for $target_name") 97 assert(defined(invoker.sources), "Need sources defined for $target_name")
99 98
100 # Only depend on YASM on x86 systems. Force compilation of .asm files for 99 # Only depend on YASM on x86 systems. Force compilation of .asm files for
101 # ARM to fail. 100 # ARM to fail.
102 assert(current_cpu == "x86" || current_cpu == "x64") 101 assert(current_cpu == "x86" || current_cpu == "x64")
103 102
104 action_name = "${target_name}_action" 103 action_name = "${target_name}_action"
105 source_set_name = target_name 104 source_set_name = target_name
106 105
107 action_foreach(action_name) { 106 action_foreach(action_name) {
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 ] 158 ]
160 159
161 # Extra defines. 160 # Extra defines.
162 if (defined(invoker.defines)) { 161 if (defined(invoker.defines)) {
163 foreach(def, invoker.defines) { 162 foreach(def, invoker.defines) {
164 args += [ "-D$def" ] 163 args += [ "-D$def" ]
165 } 164 }
166 } 165 }
167 166
168 # Output file. 167 # Output file.
169 #
170 # TODO(brettw) it might be nice if there was a source expansion for the
171 # path of the source file relative to the source root. Then we could
172 # exactly duplicate the naming and location of object files from the
173 # native build, which would be:
174 # "$root_out_dir/${target_name}.{{source_dir_part}}.$asm_obj_extension"
175 outputs = [ 168 outputs = [
176 "$target_out_dir/{{source_name_part}}.o", 169 "$target_out_dir/$source_set_name/{{source_name_part}}.o",
177 ] 170 ]
178 args += [ 171 args += [
179 "-o", 172 "-o",
180 rebase_path(outputs[0], root_build_dir), 173 rebase_path(outputs[0], root_build_dir),
181 "{{source}}", 174 "{{source}}",
182 ] 175 ]
183 176
184 # The wrapper script run_yasm will write the depfile to the same name as 177 # The wrapper script run_yasm will write the depfile to the same name as
185 # the output but with .d appended (like gcc will). 178 # the output but with .d appended (like gcc will).
186 depfile = outputs[0] + ".d" 179 depfile = outputs[0] + ".d"
187 } 180 }
188 181
189 # Gather the .o files into a linkable thing. This doesn't actually link 182 # Gather the .o files into a linkable thing. This doesn't actually link
190 # anything (a source set just compiles files to link later), but will pass 183 # anything (a source set just compiles files to link later), but will pass
191 # the object files generated by the action up the dependency chain. 184 # the object files generated by the action up the dependency chain.
192 source_set(source_set_name) { 185 source_set(source_set_name) {
193 if (defined(invoker.visibility)) { 186 if (defined(invoker.visibility)) {
194 visibility = invoker.visibility 187 visibility = invoker.visibility
195 } 188 }
196 189
197 sources = get_target_outputs(":$action_name") 190 sources = get_target_outputs(":$action_name")
198 191
199 deps = [ 192 deps = [
200 ":$action_name", 193 ":$action_name",
201 ] 194 ]
202 } 195 }
203 } 196 }
OLDNEW
« no previous file with comments | « build/linux/unbundle/yasm.gn ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698