# Copyright 2016 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/buildflag_header.gni")
import("//build/config/chrome_build.gni")
import("//testing/test.gni")
buildflag_header("buildflags") {
header = "buildflags.h"
if (is_chrome_branded && is_win) {
flags = [ "USE_GOOGLE_UPDATE_INTEGRATION=1" ]
} else {
flags = [ "USE_GOOGLE_UPDATE_INTEGRATION=0" ]
}
}
if (is_win) {
# This file contains utility functions that only depend on kernel32.
# Please don't add dependencies on other system libraries.
static_library("install_static_util") {
deps = [
"//base/version_info:channel",
"//base/version_info:generate_version_info",
"//components/nacl/common:buildflags",
]
public_deps = [
":buildflags",
"//build:branding_buildflags",
"//chrome/chrome_elf:nt_registry",
]
sources = [
"../app/chrome_dll_resource.h",
"../common/chrome_icon_resources_win.h",
"//base/compiler_specific.h",
"//base/win/win_handle_types.h",
"//base/win/win_handle_types_list.inc",
"//base/win/windows_types.h",
"install_constants.h",
"install_details.cc",
"install_details.h",
"install_modes.cc",
"install_modes.h",
"install_util.cc",
"install_util.h",
"policy_path_parser.cc",
"policy_path_parser.h",
"product_install_details.cc",
"product_install_details.h",
"user_data_dir.cc",
"user_data_dir.h",
]
if (is_chrome_branded) {
sources += [
"google_chrome_install_modes.cc",
"google_chrome_install_modes.h",
]
} else if (is_chrome_for_testing_branded) {
sources += [
"google_chrome_for_testing_install_modes.cc",
"google_chrome_for_testing_install_modes.h",
]
} else {
sources += [
"chromium_install_modes.cc",
"chromium_install_modes.h",
]
}
libs = [ "kernel32.lib" ]
}
# A source set for use by the module in a process that creates the
# process-wide InstallDetails instance (i.e., chrome_elf.dll).
source_set("primary_module") {
sources = [ "get_install_details_payload.cc" ]
deps = [ ":install_static_util" ]
}
# A source set for use by modules in a process that fetch the process-wide
# InstallDetails instance from the primary module by way of
# GetInstallDetailsPayload (i.e., chrome.exe and chrome.dll).
source_set("secondary_module") {
sources = [
"initialize_from_primary_module.cc",
"initialize_from_primary_module.h",
]
deps = [ ":install_static_util" ]
}
test("install_static_unittests") {
output_name = "install_static_unittests"
sources = [
"install_details_unittest.cc",
"install_modes_unittest.cc",
"install_util_unittest.cc",
"product_install_details_unittest.cc",
"user_data_dir_win_unittest.cc",
]
include_dirs = [ "$target_gen_dir" ]
deps = [
":buildflags",
"//base",
"//base/test:run_all_unittests",
"//base/test:test_support",
"//base/version_info",
"//build:branding_buildflags",
"//chrome/install_static:install_static_util",
"//chrome/install_static/test:test_support",
"//testing/gmock",
"//testing/gtest",
]
}
}