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

Side by Side Diff: build/toolchain/win/midl.gni

Issue 3002853002: [infra] Remove dependence on //third_party/gyp/pylib/gyp/win_tool.py (Closed)
Patch Set: Remove commented code Created 3 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 | « build/toolchain/win/BUILD.gn ('k') | build/toolchain/win/setup_toolchain.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 # found in the LICENSE file.
4
5 assert(is_win)
6
7 import("//build/config/win/visual_studio_version.gni")
8
9 # This template defines a rule to invoke the MS IDL compiler.
10 #
11 # Parameters
12 #
13 # sources
14 # List of .idl file to process.
15 #
16 # out_dir (optional)
17 # Directory to write the generated files to. Defaults to target_gen_dir.
18 #
19 # deps (optional)
20 # visibility (optional)
21
22 template("midl") {
23 action_name = "${target_name}_idl_action"
24 source_set_name = target_name
25
26 assert(defined(invoker.sources), "Source must be defined for $target_name")
27
28 if (defined(invoker.out_dir)) {
29 out_dir = invoker.out_dir
30 } else {
31 out_dir = target_gen_dir
32 }
33
34 header_file = "{{source_name_part}}.h"
35 dlldata_file = "{{source_name_part}}.dlldata.c"
36 interface_identifier_file = "{{source_name_part}}_i.c"
37 proxy_file = "{{source_name_part}}_p.c"
38 type_library_file = "{{source_name_part}}.tlb"
39
40 action_foreach(action_name) {
41 visibility = [ ":$source_set_name" ]
42
43 # This functionality is handled by the win-tool because the GYP build has
44 # MIDL support built-in.
45 # TODO(brettw) move this to a separate MIDL wrapper script for better
46 # clarity once GYP support is not needed.
47 script = "$root_build_dir/gyp-win-tool"
48
49 sources = invoker.sources
50
51 # Note that .tlb is not included in the outputs as it is not always
52 # generated depending on the content of the input idl file.
53 outputs = [
54 "$out_dir/$header_file",
55 "$out_dir/$dlldata_file",
56 "$out_dir/$interface_identifier_file",
57 "$out_dir/$proxy_file",
58 ]
59
60 if (current_cpu == "x86") {
61 win_tool_arch = "environment.x86"
62 idl_target_platform = "win32"
63 } else if (current_cpu == "x64") {
64 win_tool_arch = "environment.x64"
65 idl_target_platform = "x64"
66 } else {
67 assert(false, "Need environment for this arch")
68 }
69
70 args = [
71 "midl-wrapper",
72 win_tool_arch,
73 rebase_path(out_dir, root_build_dir),
74 type_library_file,
75 header_file,
76 dlldata_file,
77 interface_identifier_file,
78 proxy_file,
79 "{{source}}",
80 "/char",
81 "signed",
82 "/env",
83 idl_target_platform,
84 "/Oicf",
85 ]
86
87 if (defined(invoker.deps)) {
88 deps = invoker.deps
89 }
90 }
91
92 source_set(target_name) {
93 if (defined(invoker.visibility)) {
94 visibility = invoker.visibility
95 }
96
97 # We only compile the IID files from the IDL tool rather than all outputs.
98 sources = process_file_template(invoker.sources,
99 [ "$out_dir/$interface_identifier_file" ])
100
101 public_deps = [
102 ":$action_name",
103 ]
104
105 config("midl_warnings") {
106 if (is_clang) {
107 # MIDL generates code like "#endif !_MIDL_USE_GUIDDEF_"
108 cflags = [ "-Wno-extra-tokens" ]
109 }
110 }
111 configs += [ ":midl_warnings" ]
112 }
113 }
OLDNEW
« no previous file with comments | « build/toolchain/win/BUILD.gn ('k') | build/toolchain/win/setup_toolchain.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698