chromium/chrome/notification_helper/BUILD.gn

# Copyright 2018 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/config/chrome_build.gni")
import("//build/config/ui.gni")
import("//chrome/process_version_rc_template.gni")
import("//testing/test.gni")

executable("notification_helper") {
  sources = [
    "notification_helper.cc",
    "notification_helper.rc",
    "notification_helper_crash_reporter_client.cc",
    "notification_helper_crash_reporter_client.h",
  ]

  configs -= [
    "//build/config/compiler:cet_shadow_stack",
    "//build/config/win:console",
  ]
  configs += [ "//build/config/win:windowed" ]

  deps = [
    ":constants",
    ":lib",
    ":version_resources",
    "//base",
    "//build/win:default_exe_manifest",
    "//chrome/common:version_header",
    "//chrome/install_static:install_static_util",
    "//chrome/install_static:primary_module",
    "//components/crash/core/app",
    "//components/crash/core/app:crash_export_thunks",
    "//components/version_info:channel",
  ]

  libs = [ "runtimeobject.lib" ]
}

source_set("lib") {
  visibility = [ ":*" ]
  sources = [
    "com_server_module.cc",
    "com_server_module.h",
    "notification_activator.cc",
    "notification_activator.h",
    "notification_helper_util.cc",
    "notification_helper_util.h",
    "trace_util.cc",
    "trace_util.h",
  ]

  deps = [
    "//base",
    "//chrome/common:non_code_constants",
    "//chrome/install_static:install_static_util",
  ]
}

source_set("constants") {
  sources = [
    "notification_helper_constants.cc",
    "notification_helper_constants.h",
  ]
}

process_version_rc_template("version_resources") {
  sources = [ "notification_helper_exe.ver" ]
  output = "$target_gen_dir/notification_helper_exe.rc"
}

test("notification_helper_unittests") {
  use_xvfb = use_xvfb_in_this_config

  sources = [
    "com_server_module_unittest.cc",
    "notification_helper_process_unittest.cc",
    "run_all_unittests.cc",
  ]

  deps = [
    ":lib",
    "//base",
    "//base/test:test_support",
    "//chrome/install_static:install_static_util",
    "//chrome/install_static/test:test_support",
    "//chrome/installer/setup:lib",
    "//chrome/installer/util:with_no_strings",
    "//testing/gtest",
  ]

  data_deps = [ ":notification_helper" ]

  libs = [ "runtimeobject.lib" ]
}