blob: 08139f1bb3f592bbc4d3f59d6825b9aff6240655 [file] [log] [blame]
# 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 != "")