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

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

Issue 2023703002: Beginning work on GN build (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Really add //build. Add dart_bootstrap rule. Created 4 years, 6 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. The generated
10 # source code will be compiled and linked into targets that depend on this.
11 #
12 # Parameters
13 #
14 # sources
15 # List of .idl file to process.
16 #
17 # out_dir (optional)
18 # Directory to write the generated files to. Defaults to target_gen_dir.
19 #
20 # deps (optional)
21 # visibility (optional)
22
23 template("midl") {
24 action_name = "${target_name}_idl_action"
25 source_set_name = target_name
26
27 assert(defined(invoker.sources), "Source must be defined for $target_name")
28
29 if (defined(invoker.out_dir)) {
30 out_dir = invoker.out_dir
31 } else {
32 out_dir = target_gen_dir
33 }
34
35 header_file = "{{source_name_part}}.h"
36 dlldata_file = "{{source_name_part}}.dlldata.c"
37 interface_identifier_file = "{{source_name_part}}_i.c"
38 proxy_file = "{{source_name_part}}_p.c"
39 type_library_file = "{{source_name_part}}.tlb"
40
41 action_foreach(action_name) {
42 visibility = [ ":$source_set_name" ]
43
44 # This functionality is handled by the win-tool because the GYP build has
45 # MIDL support built-in.
46 # TODO(brettw) move this to a separate MIDL wrapper script for better
47 # clarity once GYP support is not needed.
48 script = "$root_build_dir/gyp-win-tool"
49
50 sources = invoker.sources
51
52 # Note that .tlb is not included in the outputs as it is not always
53 # generated depending on the content of the input idl file.
54 outputs = [
55 "$out_dir/$header_file",
56 "$out_dir/$dlldata_file",
57 "$out_dir/$interface_identifier_file",
58 "$out_dir/$proxy_file",
59 ]
60
61 if (current_cpu == "x86") {
62 win_tool_arch = "environment.x86"
63 idl_target_platform = "win32"
64 } else if (current_cpu == "x64") {
65 win_tool_arch = "environment.x64"
66 idl_target_platform = "x64"
67 } else {
68 assert(false, "Need environment for this arch")
69 }
70
71 args = [
72 "midl-wrapper",
73 win_tool_arch,
74 rebase_path(out_dir, root_build_dir),
75 type_library_file,
76 header_file,
77 dlldata_file,
78 interface_identifier_file,
79 proxy_file,
80 "{{source}}",
81 "/char",
82 "signed",
83 "/env",
84 idl_target_platform,
85 "/Oicf",
86 ]
87
88 forward_variables_from(invoker, [ "deps" ])
89 }
90
91 source_set(target_name) {
92 forward_variables_from(invoker, [ "visibility" ])
93
94 # We only compile the IID files from the IDL tool rather than all outputs.
95 sources = process_file_template(invoker.sources,
96 [ "$out_dir/$interface_identifier_file" ])
97
98 public_deps = [
99 ":$action_name",
100 ]
101
102 configs += [ "//build/config/win:midl_warnings" ]
103 }
104 }
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