| OLD | NEW |
| 1 # Copyright 2016 The Chromium Authors. All rights reserved. | 1 # Copyright 2016 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 | 6 |
| 7 # This file builds nacl64.exe, which is a 64-bit x86 Windows executable | 7 # This file builds nacl64.exe, which is a 64-bit x86 Windows executable |
| 8 # used only in the 32-bit x86 Windows build. The :broker code runs both | 8 # used only in the 32-bit x86 Windows build. The :broker code runs both |
| 9 # in nacl64.exe and in the 32-bit chrome executable, to launch | 9 # in nacl64.exe and in the 32-bit chrome executable, to launch |
| 10 # nacl64.exe and communicate with it. | 10 # nacl64.exe and communicate with it. |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 # Tests, packaging rules, etc. will expect to find nacl64.exe in the root | 51 # Tests, packaging rules, etc. will expect to find nacl64.exe in the root |
| 52 # of the output directory. It gets built in a non-default toolchain and | 52 # of the output directory. It gets built in a non-default toolchain and |
| 53 # so will be delivered in the toolchain output subdirectory. So this | 53 # so will be delivered in the toolchain output subdirectory. So this |
| 54 # just copies it to the expected place. Having this target also makes | 54 # just copies it to the expected place. Having this target also makes |
| 55 # it simpler for things to depend on nacl64, since they don't have to | 55 # it simpler for things to depend on nacl64, since they don't have to |
| 56 # use a toolchain qualifier. | 56 # use a toolchain qualifier. |
| 57 copy("nacl64") { | 57 copy("nacl64") { |
| 58 # NOTE: This must match what //build/config/BUILDCONFIG.gn uses | 58 # NOTE: This must match what //build/config/BUILDCONFIG.gn uses |
| 59 # as default toolchain for the corresponding x64 build. | 59 # as default toolchain for the corresponding x64 build. |
| 60 if (is_clang) { | 60 if (is_clang) { |
| 61 x64_toolchain = "//build/toolchain/win:clang_x64" | 61 x64_toolchain = "//build/toolchain/win:clang_nacl_win64" |
| 62 } else { | 62 } else { |
| 63 x64_toolchain = "//build/toolchain/win:x64" | 63 x64_toolchain = "//build/toolchain/win:nacl_win64" |
| 64 } | 64 } |
| 65 nacl64_label = ":nacl64($x64_toolchain)" | 65 nacl64_label = ":nacl64($x64_toolchain)" |
| 66 nacl64_out_dir = get_label_info(nacl64_label, "root_out_dir") | 66 nacl64_out_dir = get_label_info(nacl64_label, "root_out_dir") |
| 67 sources = [ | 67 sources = [ |
| 68 "$nacl64_out_dir/nacl64.exe", | 68 "$nacl64_out_dir/nacl64.exe", |
| 69 ] | 69 ] |
| 70 outputs = [ | 70 outputs = [ |
| 71 "$root_out_dir/{{source_file_part}}", | 71 "$root_out_dir/{{source_file_part}}", |
| 72 ] | 72 ] |
| 73 deps = [ | 73 deps = [ |
| 74 nacl64_label, | 74 nacl64_label, |
| 75 ] | 75 ] |
| 76 } | 76 } |
| 77 } else if (current_cpu == "x64") { | 77 } else if (current_cpu == "x64") { |
| 78 # In the x64 toolchain context, build nacl64.exe for real. | 78 # In the x64 toolchain context, build nacl64.exe for real. |
| 79 executable("nacl64") { | 79 executable("nacl64") { |
| 80 configs += [ "//build/config/win:windowed" ] | 80 configs += [ "//build/config/win:windowed" ] |
| 81 | 81 |
| 82 # //build/config/compiler:optimize{,_max} adds this for official builds | 82 # //build/config/compiler:optimize{,_max} adds this for official builds |
| 83 # only, as it only reduces binary size and is not necessary for | 83 # only, as it only reduces binary size and is not necessary for |
| 84 # correctness. But for nacl64.exe, it makes more than a six-fold | 84 # correctness. But for nacl64.exe, it makes more than a six-fold |
| 85 # difference in the binary size, so always use it. | 85 # difference in the binary size, so always use it in release builds. |
| 86 ldflags = [ "/OPT:REF" ] | 86 # Note that using this flag disables incremental linking. In debug |
| 87 # builds, incremental rebuild time is usually of more concern than |
| 88 # binary size, so incremental linking is preferable to size reduction. |
| 89 if (!is_debug) { |
| 90 ldflags = [ "/OPT:REF" ] |
| 91 } |
| 87 | 92 |
| 88 sources = [ | 93 sources = [ |
| 89 "//chrome/nacl/nacl_exe_win_64.cc", | 94 "//chrome/nacl/nacl_exe_win_64.cc", |
| 90 ] | 95 ] |
| 91 | 96 |
| 92 deps = [ | 97 deps = [ |
| 93 ":broker", | 98 ":broker", |
| 94 ":nacl64_content", | 99 ":nacl64_content", |
| 95 ":nacl64_crash_reporter_client", | 100 ":nacl64_crash_reporter_client", |
| 96 "//base", | 101 "//base", |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 148 "//chrome/installer/util:with_no_strings", | 153 "//chrome/installer/util:with_no_strings", |
| 149 "//components/browser_watcher:browser_watcher_client", | 154 "//components/browser_watcher:browser_watcher_client", |
| 150 "//components/flags_ui:switches", | 155 "//components/flags_ui:switches", |
| 151 "//components/policy", | 156 "//components/policy", |
| 152 "//content/public/common:static_switches", | 157 "//content/public/common:static_switches", |
| 153 "//ipc", | 158 "//ipc", |
| 154 "//third_party/kasko:kasko_features", | 159 "//third_party/kasko:kasko_features", |
| 155 ] | 160 ] |
| 156 } | 161 } |
| 157 } | 162 } |
| OLD | NEW |