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

Side by Side Diff: build/toolchain/win/BUILD.gn

Issue 2192643002: Make sure PDB files are in runtime_deps for GN builds. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: we generate pdbs even when symbol_level==1 Created 4 years, 4 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 | « no previous file | components/nacl/broker/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2013 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 import("//build/config/clang/clang.gni") 5 import("//build/config/clang/clang.gni")
6 import("//build/config/compiler/compiler.gni")
6 import("//build/config/sanitizers/sanitizers.gni") 7 import("//build/config/sanitizers/sanitizers.gni")
7 import("//build/config/win/visual_studio_version.gni") 8 import("//build/config/win/visual_studio_version.gni")
8 import("//build/toolchain/goma.gni") 9 import("//build/toolchain/goma.gni")
9 import("//build/toolchain/toolchain.gni") 10 import("//build/toolchain/toolchain.gni")
10 import("//build/toolchain/concurrent_links.gni") 11 import("//build/toolchain/concurrent_links.gni")
11 12
12 # Should only be running on Windows. 13 # Should only be running on Windows.
13 assert(is_win) 14 assert(is_win)
14 15
15 # Setup the Visual Studio state. 16 # Setup the Visual Studio state.
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 default_output_dir = "{{target_out_dir}}" 173 default_output_dir = "{{target_out_dir}}"
173 174
174 # The use of inputs_newline is to work around a fixed per-line buffer 175 # The use of inputs_newline is to work around a fixed per-line buffer
175 # size in the linker. 176 # size in the linker.
176 rspfile_content = "{{inputs_newline}}" 177 rspfile_content = "{{inputs_newline}}"
177 } 178 }
178 179
179 tool("solink") { 180 tool("solink") {
180 dllname = "{{output_dir}}/{{target_output_name}}{{output_extension}}" # e .g. foo.dll 181 dllname = "{{output_dir}}/{{target_output_name}}{{output_extension}}" # e .g. foo.dll
181 libname = "${dllname}.lib" # e.g. foo.dll.lib 182 libname = "${dllname}.lib" # e.g. foo.dll.lib
183 pdbname = "${dllname}.pdb"
182 rspfile = "${dllname}.rsp" 184 rspfile = "${dllname}.rsp"
183 185
184 command = "$python_path gyp-win-tool link-wrapper $env False $link /nologo /IMPLIB:$libname /DLL /OUT:$dllname /PDB:${dllname}.pdb @$rspfile" 186 command = "$python_path gyp-win-tool link-wrapper $env False $link /nologo /IMPLIB:$libname /DLL /OUT:$dllname /PDB:$pdbname @$rspfile"
185 187
186 default_output_extension = ".dll" 188 default_output_extension = ".dll"
187 default_output_dir = "{{root_out_dir}}" 189 default_output_dir = "{{root_out_dir}}"
188 description = "LINK(DLL) {{output}}" 190 description = "LINK(DLL) {{output}}"
189 outputs = [ 191 outputs = [
190 dllname, 192 dllname,
191 libname, 193 libname,
192 ] 194 ]
193 link_output = libname 195 link_output = libname
194 depend_output = libname 196 depend_output = libname
195 runtime_outputs = [ dllname ] 197 runtime_outputs = [ dllname ]
198 if (symbol_level != 0) {
199 outputs += [ pdbname ]
200 runtime_outputs += [ pdbname ]
201 }
196 202
197 # Since the above commands only updates the .lib file when it changes, ask 203 # Since the above commands only updates the .lib file when it changes, ask
198 # Ninja to check if the timestamp actually changed to know if downstream 204 # Ninja to check if the timestamp actually changed to know if downstream
199 # dependencies should be recompiled. 205 # dependencies should be recompiled.
200 restat = true 206 restat = true
201 207
202 # The use of inputs_newline is to work around a fixed per-line buffer 208 # The use of inputs_newline is to work around a fixed per-line buffer
203 # size in the linker. 209 # size in the linker.
204 rspfile_content = "{{libs}} {{solibs}} {{inputs_newline}} {{ldflags}}" 210 rspfile_content = "{{libs}} {{solibs}} {{inputs_newline}} {{ldflags}}"
205 } 211 }
206 212
207 tool("solink_module") { 213 tool("solink_module") {
208 dllname = "{{output_dir}}/{{target_output_name}}{{output_extension}}" # e .g. foo.dll 214 dllname = "{{output_dir}}/{{target_output_name}}{{output_extension}}" # e .g. foo.dll
215 pdbname = "${dllname}.pdb"
209 rspfile = "${dllname}.rsp" 216 rspfile = "${dllname}.rsp"
210 217
211 command = "$python_path gyp-win-tool link-wrapper $env False $link /nologo /DLL /OUT:$dllname /PDB:${dllname}.pdb @$rspfile" 218 command = "$python_path gyp-win-tool link-wrapper $env False $link /nologo /DLL /OUT:$dllname /PDB:$pdbname @$rspfile"
212 219
213 default_output_extension = ".dll" 220 default_output_extension = ".dll"
214 default_output_dir = "{{root_out_dir}}" 221 default_output_dir = "{{root_out_dir}}"
215 description = "LINK_MODULE(DLL) {{output}}" 222 description = "LINK_MODULE(DLL) {{output}}"
216 outputs = [ 223 outputs = [
217 dllname, 224 dllname,
218 ] 225 ]
226 if (symbol_level != 0) {
227 outputs += [ pdbname ]
228 }
229 runtime_outputs = outputs
219 230
220 # The use of inputs_newline is to work around a fixed per-line buffer 231 # The use of inputs_newline is to work around a fixed per-line buffer
221 # size in the linker. 232 # size in the linker.
222 rspfile_content = "{{libs}} {{solibs}} {{inputs_newline}} {{ldflags}}" 233 rspfile_content = "{{libs}} {{solibs}} {{inputs_newline}} {{ldflags}}"
223 } 234 }
224 235
225 tool("link") { 236 tool("link") {
226 rspfile = "{{output}}.rsp" 237 exename = "{{output_dir}}/{{target_output_name}}{{output_extension}}"
238 pdbname = "$exename.pdb"
239 rspfile = "$exename.rsp"
227 240
228 command = "$python_path gyp-win-tool link-wrapper $env False $link /nologo /OUT:{{output}} /PDB:{{output}}.pdb @$rspfile" 241 command = "$python_path gyp-win-tool link-wrapper $env False $link /nologo /OUT:$exename /PDB:$pdbname @$rspfile"
229 242
230 default_output_extension = ".exe" 243 default_output_extension = ".exe"
231 default_output_dir = "{{root_out_dir}}" 244 default_output_dir = "{{root_out_dir}}"
232 description = "LINK {{output}}" 245 description = "LINK {{output}}"
233 outputs = [ 246 outputs = [
234 "{{output_dir}}/{{target_output_name}}{{output_extension}}", 247 exename,
235 ] 248 ]
249 if (symbol_level != 0) {
250 outputs += [ pdbname ]
251 }
252 runtime_outputs = outputs
236 253
237 # The use of inputs_newline is to work around a fixed per-line buffer 254 # The use of inputs_newline is to work around a fixed per-line buffer
238 # size in the linker. 255 # size in the linker.
239 rspfile_content = "{{inputs_newline}} {{libs}} {{solibs}} {{ldflags}}" 256 rspfile_content = "{{inputs_newline}} {{libs}} {{solibs}} {{ldflags}}"
240 } 257 }
241 258
242 # These two are really entirely generic, but have to be repeated in 259 # These two are really entirely generic, but have to be repeated in
243 # each toolchain because GN doesn't allow a template to be used here. 260 # each toolchain because GN doesn't allow a template to be used here.
244 # See //build/toolchain/toolchain.gni for details. 261 # See //build/toolchain/toolchain.gni for details.
245 tool("stamp") { 262 tool("stamp") {
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
413 430
414 msvc_toolchain("winrt_x64") { 431 msvc_toolchain("winrt_x64") {
415 environment = "environment.winrt_x64" 432 environment = "environment.winrt_x64"
416 cl = "${goma_prefix}\"${vc_bin_dir}/cl.exe\"" 433 cl = "${goma_prefix}\"${vc_bin_dir}/cl.exe\""
417 is_clang = false 434 is_clang = false
418 435
419 toolchain_cpu = "x64" 436 toolchain_cpu = "x64"
420 toolchain_os = current_os 437 toolchain_os = current_os
421 } 438 }
422 } 439 }
OLDNEW
« no previous file with comments | « no previous file | components/nacl/broker/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698