# Copyright 2015 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//build/config/chrome_build.gni") import("//build/config/compiler/compiler.gni") import("//build/config/sanitizers/sanitizers.gni") import("//build/win/syzygy/syzygy.gni") # Where the output binaries will be placed. syzygy_dest_dir = "$root_out_dir/syzygy" if (is_syzyasan) { syzygy_asan("chrome_dll_syzygy") { binary_name = "chrome.dll" dest_dir = syzygy_dest_dir deps = [ "//chrome:main_dll", ] if (is_multi_dll_chrome) { data_deps = [ ":chrome_child_dll_syzygy", ] } } if (is_multi_dll_chrome) { # Also instrument chrome_child.dll. # # For official builds, the instrumented version will be put into an # "instrumented" subdirectory and the regular output will be # uninstrumented. Otherwise, chrome_child is also instrumented to the # normal place. syzygy_asan("chrome_child_dll_syzygy") { binary_name = "chrome_child.dll" deps = [ "//chrome:chrome_child", ] if (is_official_build) { dest_dir = "$syzygy_dest_dir/instrumented" deps += [ ":chrome_child_dll_syzygy_copy" ] } else { dest_dir = syzygy_dest_dir } } if (is_official_build) { # Copies the uninstrumented chrome_child.dll. copy("chrome_child_dll_syzygy_copy") { sources = [ "$root_out_dir/chrome_child.dll", ] outputs = [ "$syzygy_dest_dir/{{source_file_part}}", ] deps = [ "//chrome:chrome_child", ] } } } } else { # No syzygy. Generate dummy targets so other targets can unconditionally # depend on these without having to duplicate our conditions. group("chrome_dll_syzygy") { } if (is_multi_dll_chrome) { group("chrome_child_dll_syzygy") { } } } # Prevent unused variable warning for code paths where this is unused. assert(syzygy_dest_dir != "")