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

Side by Side Diff: build/config/win/manifest.gni

Issue 2286413002: Move gyp-win-tool to the GN Windows toolchain. (Closed)
Patch Set: fix Created 4 years, 3 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 | build/toolchain/toolchain.gni » ('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 2015 The Chromium Authors. All rights reserved. 1 # Copyright 2015 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 # HOW MANIFESTS WORK IN THE GN BUILD 5 # HOW MANIFESTS WORK IN THE GN BUILD
6 # 6 #
7 # Use the windows_manifest template to declare a manifest generation step. 7 # Use the windows_manifest template to declare a manifest generation step.
8 # This will combine all listed .manifest files and generate a resource file 8 # This will combine all listed .manifest files and generate a resource file
9 # referencing the resulting manifest. To link this manifest, just depend on 9 # referencing the resulting manifest. To link this manifest, just depend on
10 # the manifest target from your executable or shared library. 10 # the manifest target from your executable or shared library.
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 # ] 70 # ]
71 # type = "exe" 71 # type = "exe"
72 # } 72 # }
73 # 73 #
74 # executable("doom_melon") { 74 # executable("doom_melon") {
75 # deps = [ ":doom_melon_manifest" ] 75 # deps = [ ":doom_melon_manifest" ]
76 # ... 76 # ...
77 # } 77 # }
78 78
79 if (is_win) { 79 if (is_win) {
80 # This is the environment file that gyp-win-tool will use for the current 80 # This is the environment file that tool_wrapper.py will use for the current
81 # toolchain. It is placed in root_build_dir by the toolchain setup. This 81 # toolchain. It is placed in root_build_dir by the toolchain setup. This
82 # variable is the path relative to the root_build_dir which is what 82 # variable is the path relative to the root_build_dir which is what
83 # gyp-win-tool expects as an argument. 83 # tool_wrapper.py expects as an argument.
84 _environment_file = "environment.$current_cpu" 84 _environment_file = "environment.$current_cpu"
85 85
86 template("windows_manifest") { 86 template("windows_manifest") {
87 manifest_action_name = "${target_name}__gen_manifest" 87 manifest_action_name = "${target_name}__gen_manifest"
88 rc_action_name = "${target_name}__gen_rc" 88 rc_action_name = "${target_name}__gen_rc"
89 source_set_name = target_name 89 source_set_name = target_name
90 90
91 output_manifest = "$target_gen_dir/$source_set_name.manifest" 91 output_manifest = "$target_gen_dir/$source_set_name.manifest"
92 rcfile = "$output_manifest.rc" 92 rcfile = "$output_manifest.rc"
93 93
94 # Make the final .manifest file. 94 # Make the final .manifest file.
95 action(manifest_action_name) { 95 action(manifest_action_name) {
96 visibility = [ 96 visibility = [
97 ":$source_set_name", 97 ":$source_set_name",
98 ":$rc_action_name", 98 ":$rc_action_name",
99 ] 99 ]
100 100
101 script = "$root_build_dir/gyp-win-tool" 101 script = "//build/toolchain/win/tool_wrapper.py"
102 102
103 assert(defined(invoker.sources), 103 assert(defined(invoker.sources),
104 "\"sources\" must be defined for a windows_manifest target") 104 "\"sources\" must be defined for a windows_manifest target")
105 inputs = invoker.sources 105 inputs = invoker.sources
106 106
107 outputs = [ 107 outputs = [
108 output_manifest, 108 output_manifest,
109 ] 109 ]
110 110
111 args = [ 111 args = [
112 "manifest-wrapper", 112 "manifest-wrapper",
113 _environment_file, 113 _environment_file,
114 "mt.exe", 114 "mt.exe",
115 "-nologo", 115 "-nologo",
116 "-manifest", 116 "-manifest",
117 ] 117 ]
118 args += rebase_path(invoker.sources, root_build_dir) 118 args += rebase_path(invoker.sources, root_build_dir)
119 args += [ "-out:" + rebase_path(output_manifest, root_build_dir) ] 119 args += [ "-out:" + rebase_path(output_manifest, root_build_dir) ]
120 120
121 # Apply any dependencies from the invoker to this target, since those 121 # Apply any dependencies from the invoker to this target, since those
122 # dependencies may have created the input manifest files. 122 # dependencies may have created the input manifest files.
123 forward_variables_from(invoker, [ "deps" ]) 123 forward_variables_from(invoker, [ "deps" ])
124 } 124 }
125 125
126 # Make the .rc file that references the final manifest file. 126 # Make the .rc file that references the final manifest file.
127 # 127 #
128 # This could easily be combined into one step, but this current separation 128 # This could easily be combined into one step, but this current separation
129 # of .manifest and .rc matches GYP and allows us to re-use gyp-win-tool. 129 # of .manifest and .rc matches GYP and allows us to re-use tool_wrapper.py.
130 action(rc_action_name) { 130 action(rc_action_name) {
131 visibility = [ ":$source_set_name" ] 131 visibility = [ ":$source_set_name" ]
132 132
133 script = "$root_build_dir/gyp-win-tool" 133 script = "//build/toolchain/win/tool_wrapper.py"
134 134
135 outputs = [ 135 outputs = [
136 rcfile, 136 rcfile,
137 ] 137 ]
138 138
139 # EXEs have a resource ID of 1 for their manifest, DLLs use 2. 139 # EXEs have a resource ID of 1 for their manifest, DLLs use 2.
140 assert(defined(invoker.type), 140 assert(defined(invoker.type),
141 "\"type\" must be defined for a windows_manifest") 141 "\"type\" must be defined for a windows_manifest")
142 if (invoker.type == "exe") { 142 if (invoker.type == "exe") {
143 manifest_resource_id = "1" 143 manifest_resource_id = "1"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 template("windows_manifest") { 182 template("windows_manifest") {
183 group(target_name) { 183 group(target_name) {
184 # Prevent unused variable warnings on non-Windows platforms. 184 # Prevent unused variable warnings on non-Windows platforms.
185 assert(invoker.type == "exe" || invoker.type == "dll") 185 assert(invoker.type == "exe" || invoker.type == "dll")
186 assert(invoker.sources != "") 186 assert(invoker.sources != "")
187 assert(!defined(invoker.deps) || invoker.deps != "") 187 assert(!defined(invoker.deps) || invoker.deps != "")
188 assert(!defined(invoker.visibility) || invoker.visibility != "") 188 assert(!defined(invoker.visibility) || invoker.visibility != "")
189 } 189 }
190 } 190 }
191 } 191 }
OLDNEW
« no previous file with comments | « no previous file | build/toolchain/toolchain.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698