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

Side by Side Diff: chrome/installer/mini_installer/BUILD.gn

Issue 2085813004: Add the mini_installer_syzygy GN target. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: x86 only. Created 4 years, 5 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
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 import("//build/config/features.gni") 5 import("//build/config/features.gni")
6 import("//build/config/ui.gni") 6 import("//build/config/ui.gni")
7 import("//build/config/win/visual_studio_version.gni")
7 import("//build_overrides/v8.gni") 8 import("//build_overrides/v8.gni")
8 import("//chrome/test/mini_installer/mini_installer_test.gni") 9 import("//chrome/test/mini_installer/mini_installer_test.gni")
9 import("//chrome/version.gni") 10 import("//chrome/version.gni")
10 import("//third_party/icu/config.gni") 11 import("//third_party/icu/config.gni")
11 import("//ui/base/ui_features.gni") 12 import("//ui/base/ui_features.gni")
12 13
13 config("mini_installer_compiler_flags") { 14 config("mini_installer_compiler_flags") {
14 # Disable buffer security checking. 15 # Disable buffer security checking.
15 cflags = [ "/GS-" ] 16 cflags = [ "/GS-" ]
16 } 17 }
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 66
66 public_deps = [ 67 public_deps = [
67 ":lib", 68 ":lib",
68 ] 69 ]
69 deps = [ 70 deps = [
70 "//base", 71 "//base",
71 "//testing/gtest", 72 "//testing/gtest",
72 ] 73 ]
73 } 74 }
74 75
75 packed_files_rc_file = "$target_gen_dir/packed_files.rc"
76
77 # The runtime deps are used to tell create_installer_archive what component 76 # The runtime deps are used to tell create_installer_archive what component
78 # DLLs need to be packaged in a component build. 77 # DLLs need to be packaged in a component build.
79 chrome_runtime_deps = "$root_gen_dir/chrome_component.runtime_deps" 78 chrome_runtime_deps = "$root_gen_dir/chrome_component.runtime_deps"
80 setup_runtime_deps = "$root_gen_dir/setup.runtime_deps" 79 setup_runtime_deps = "$root_gen_dir/setup.runtime_deps"
81 80
82 group("chrome_runtime_deps") { 81 group("chrome_runtime_deps") {
83 write_runtime_deps = chrome_runtime_deps 82 write_runtime_deps = chrome_runtime_deps
84 data_deps = [ 83 data_deps = [
85 "//chrome", 84 "//chrome",
86 ] 85 ]
87 } 86 }
88 87
89 group("setup_runtime_deps") { 88 group("setup_runtime_deps") {
90 write_runtime_deps = setup_runtime_deps 89 write_runtime_deps = setup_runtime_deps
91 data_deps = [ 90 data_deps = [
92 "//chrome/installer/setup", 91 "//chrome/installer/setup",
93 ] 92 ]
94 } 93 }
95 94
96 action("archive") { 95 # Generates a mini installer.
97 script = "//chrome/tools/build/win/create_installer_archive.py" 96 #
97 # out_dir (required)
98 # The output directory out_dir where the mini_installer image should be
99 # written.
100 #
101 # deps (required)
102 # Normal meaning.
103 template("generate_mini_installer") {
104 custom_deps = invoker.deps
105 output_dir = invoker.out_dir
98 106
99 release_file = "chrome.release" 107 packed_files_rc_file = "$target_gen_dir/$target_name/packed_files.rc"
108 archive_name = target_name + "_archive"
109 staging_dir = "$target_gen_dir/$target_name"
100 110
101 inputs = [ 111 action(archive_name) {
102 "$root_out_dir/chrome.exe", 112 script = "//chrome/tools/build/win/create_installer_archive.py"
103 "$root_out_dir/chrome.dll",
104 "$root_out_dir/locales/en-US.pak",
105 "$root_out_dir/setup.exe",
106 release_file,
107 ]
108 113
109 outputs = [ 114 release_file = "chrome.release"
110 # See also chrome.packed.7z conditionally added below.
111 "$root_out_dir/chrome.7z",
112 "$root_out_dir/setup.ex_",
113 packed_files_rc_file,
114 ]
115 args = [
116 "--build_dir",
117 rebase_path(root_out_dir, root_build_dir),
118 "--staging_dir",
119 rebase_path(root_gen_dir, root_build_dir),
120 "--input_file",
121 rebase_path(release_file, root_build_dir),
122 "--resource_file_path",
123 rebase_path(packed_files_rc_file, root_build_dir),
124 "--target_arch=$current_cpu",
125 "--distribution=_google_chrome",
126 "--chrome_runtime_deps",
127 rebase_path(chrome_runtime_deps, root_build_dir),
128 "--setup_runtime_deps",
129 rebase_path(setup_runtime_deps, root_build_dir),
130 115
131 # Optional arguments to generate diff installer. 116 inputs = [
132 #'--last_chrome_installer=C:/Temp/base', 117 "$output_dir/chrome.dll",
brettw 2016/06/24 23:51:43 This seems confusing. The out_dir is documented to
133 #'--setup_exe_format=DIFF', 118 "$root_out_dir/chrome.exe",
134 #'--diff_algorithm=COURGETTE', 119 "$root_out_dir/locales/en-US.pak",
120 "$root_out_dir/setup.exe",
121 release_file,
122 ]
135 123
136 # Optional argument for verbose archiving output. 124 outputs = [
137 #'--verbose', 125 # See also chrome.packed.7z conditionally added below.
138 ] 126 "$output_dir/chrome.7z",
127 "$output_dir/setup.ex_",
128 packed_files_rc_file,
129 ]
130 args = [
131 "--build_dir",
132 rebase_path(root_out_dir, root_build_dir),
133 "--staging_dir",
134 rebase_path(staging_dir, root_build_dir),
135 "--input_file",
136 rebase_path(release_file, root_build_dir),
137 "--resource_file_path",
138 rebase_path(packed_files_rc_file, root_build_dir),
139 "--target_arch=$current_cpu",
140 "--distribution=_google_chrome",
141 "--output_dir",
142 rebase_path(output_dir, root_build_dir),
143 "--chrome_runtime_deps",
144 rebase_path(chrome_runtime_deps, root_build_dir),
145 "--setup_runtime_deps",
146 rebase_path(setup_runtime_deps, root_build_dir),
139 147
140 deps = [ 148 # Optional arguments to generate diff installer.
141 ":chrome_runtime_deps", 149 #'--last_chrome_installer=C:/Temp/base',
142 ":setup_runtime_deps", 150 #'--setup_exe_format=DIFF',
143 "//chrome", 151 #'--diff_algorithm=COURGETTE',
144 "//chrome:main_dll",
145 "//chrome/browser/extensions/default_extensions",
146 "//chrome/installer/setup",
147 "//third_party/icu:icudata",
148 ]
149 152
150 if (enable_hidpi) { 153 # Optional argument for verbose archiving output.
151 args += [ "--enable_hidpi=1" ] 154 #'--verbose',
152 } 155 ]
153 if (is_component_build) { 156
154 args += [ "--component_build=1" ] 157 deps = custom_deps + [
155 } else { 158 ":chrome_runtime_deps",
156 outputs += [ "$root_out_dir/chrome.packed.7z" ] 159 ":setup_runtime_deps",
160 "//chrome",
161 "//chrome/browser/extensions/default_extensions",
162 "//chrome/installer/setup",
163 "//third_party/icu:icudata",
164 ]
165
166 if (enable_hidpi) {
167 args += [ "--enable_hidpi=1" ]
168 }
169 if (is_component_build) {
170 args += [ "--component_build=1" ]
171 } else {
172 outputs += [ "$output_dir/chrome.packed.7z" ]
173 }
174
175 if (enable_nacl) {
176 inputs += [ "$root_out_dir/nacl_irt_x86_64.nexe" ]
177 deps += [ "//ppapi/native_client:irt" ]
178 if (current_cpu == "x86") {
179 inputs += [
180 "$root_out_dir/nacl64.exe",
181 "$root_out_dir/nacl_irt_x86_32.nexe",
182 ]
183 deps += [ "//components/nacl/broker:nacl64" ]
184 }
185 }
186
187 if (icu_use_data_file) {
188 inputs += [ "$root_out_dir/icudtl.dat" ]
189 } else {
190 inputs += [ "$root_out_dir/icudt.dll" ]
191 }
192
193 if (v8_use_external_startup_data) {
194 inputs += [
195 "$root_out_dir/natives_blob.bin",
196 "$root_out_dir/snapshot_blob.bin",
197 ]
198 deps += [ "//v8" ]
199 }
200
201 depfile = "$target_gen_dir/archive.d"
202 args += [
203 "--depfile",
204 rebase_path(depfile, root_build_dir),
205 ]
157 } 206 }
158 207
159 if (enable_nacl) { 208 executable(target_name) {
160 inputs += [ "$root_out_dir/nacl_irt_x86_64.nexe" ] 209 output_name = "mini_installer"
161 deps += [ "//ppapi/native_client:irt" ] 210 sources = [
162 if (current_cpu == "x86") { 211 "mini_installer.cc",
163 inputs += [ 212 packed_files_rc_file,
164 "$root_out_dir/nacl64.exe", 213 ]
165 "$root_out_dir/nacl_irt_x86_32.nexe", 214
166 ] 215 # This target is special so we manually override most linker flags and
167 deps += [ "//components/nacl/broker:nacl64" ] 216 # specify our own to keep the size down. Also make sure that we don't use
168 } 217 # WPO as it's not supported by the mini installer.
218 configs -= [
219 "//build/config/compiler:default_optimization",
220 "//build/config:executable_config",
221 "//build/config/win:console",
222 ]
223 configs += [
224 ":mini_installer_compiler_flags",
225 "//build/config/compiler:optimize_no_wpo",
226 "//build/config/win:sdk_link",
227 "//build/config/win:windowed",
228 ]
229
230 ldflags = [
231 "/ENTRY:MainEntryPoint",
232 "/FIXED:NO",
233 "/ignore:4199",
234 "/NXCOMPAT",
235 ]
236
237 libs = [ "setupapi.lib" ]
238
239 deps = [
240 ":$archive_name",
241 ":lib",
242 ":version",
243 "//build/config/sanitizers:deps",
244 "//build/win:default_exe_manifest",
245 ]
169 } 246 }
247 }
170 248
171 if (icu_use_data_file) { 249 generate_mini_installer("mini_installer") {
172 inputs += [ "$root_out_dir/icudtl.dat" ] 250 out_dir = root_out_dir
173 } else { 251 deps = [
174 inputs += [ "$root_out_dir/icudt.dll" ] 252 "//chrome:main_dll",
175 }
176
177 if (v8_use_external_startup_data) {
178 inputs += [
179 "$root_out_dir/natives_blob.bin",
180 "$root_out_dir/snapshot_blob.bin",
181 ]
182 deps += [ "//v8" ]
183 }
184
185 depfile = "$target_gen_dir/archive.d"
186 args += [
187 "--depfile",
188 rebase_path(depfile, root_build_dir),
189 ] 253 ]
190 } 254 }
191 255
192 executable("mini_installer") { 256 if (target_cpu == "x86" && !is_clang && !is_win_fastlink) {
Dirk Pranke 2016/06/25 22:53:57 This also needs to depend on syzygy_optimize (else
193 sources = [ 257 generate_mini_installer("mini_installer_syzygy") {
194 "mini_installer.cc", 258 out_dir = "$root_out_dir/syzygy/"
195 packed_files_rc_file, 259 deps = [
196 ] 260 "//chrome/tools/build/win/syzygy:chrome_dll_syzygy",
197 261 ]
198 # This target is special so we manually override most linker flags and
199 # specify our own to keep the size down. Also make sure that we don't use
200 # WPO as it's not supported by the mini installer.
201 configs -= [
202 "//build/config/compiler:default_optimization",
203 "//build/config:executable_config",
204 "//build/config/win:console",
205 ]
206 configs += [
207 ":mini_installer_compiler_flags",
208 "//build/config/win:sdk_link",
209 "//build/config/win:windowed",
210 ]
211 if (!is_debug) {
212 configs += [ "//build/config/compiler:optimize_no_wpo" ]
213 } else {
214 configs += [ "//build/config/compiler:no_optimize" ]
215 } 262 }
216
217 ldflags = [
218 "/ENTRY:MainEntryPoint",
219 "/FIXED:NO",
220 "/ignore:4199",
221 "/NXCOMPAT",
222 ]
223
224 libs = [ "setupapi.lib" ]
225
226 deps = [
227 ":archive",
228 ":lib",
229 ":version",
230 "//build/config/sanitizers:deps",
231 "//build/win:default_exe_manifest",
232 ]
233 } 263 }
234 264
235 # next_version_mini_installer.exe can't be generated in an x86 Debug component 265 # next_version_mini_installer.exe can't be generated in an x86 Debug component
236 # build because it requires too much memory. 266 # build because it requires too much memory.
237 if (!(is_component_build && is_debug && target_cpu == "x86")) { 267 if (!(is_component_build && is_debug && target_cpu == "x86")) {
238 action("next_version_mini_installer") { 268 action("next_version_mini_installer") {
239 script = "generate_next_version_mini_installer.py" 269 script = "generate_next_version_mini_installer.py"
240 testonly = true 270 testonly = true
241 inputs = [ 271 inputs = [
242 "$root_out_dir/alternate_version_generator.exe", 272 "$root_out_dir/alternate_version_generator.exe",
243 "$root_out_dir/mini_installer.exe", 273 "$root_out_dir/mini_installer.exe",
244 ] 274 ]
245 outputs = [ 275 outputs = [
246 "$root_out_dir/$target_name.exe", 276 "$root_out_dir/$target_name.exe",
247 ] 277 ]
248 args = [ 278 args = [
249 "--out", 279 "--out",
250 "$target_name.exe", 280 "$target_name.exe",
251 ] 281 ]
252 deps = [ 282 deps = [
253 ":mini_installer", 283 ":mini_installer",
254 "//chrome/installer/test:alternate_version_generator", 284 "//chrome/installer/test:alternate_version_generator",
255 ] 285 ]
256 } 286 }
257 } 287 }
OLDNEW
« no previous file with comments | « no previous file | chrome/tools/build/win/syzygy/BUILD.gn » ('j') | chrome/tools/build/win/syzygy/BUILD.gn » ('J')

Powered by Google App Engine
This is Rietveld 408576698