# Copyright 2018 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/toolchain/win/midl.gni") import("//chrome/process_version_rc_template.gni") import("//testing/test.gni") midl("elevation_service_idl") { sources = [ "elevation_service_idl.idl", ] } # Must be in a config because of how GN orders flags (otherwise /W4 will appear # after this, and turn it back on). config("no-missing-braces") { # Macros invoked by WRL CoCreatableClass omit optional braces. cflags = [ "-Wno-missing-braces" ] } # This service needs to work with Windows 7, so explicitly setting the defines # to reflect this. Otherwise, WRL uses APIs that are only available in later # Windows versions. config("winver") { defines = [ "NTDDI_VERSION=NTDDI_WIN7", "_WIN32_WINNT=_WIN32_WINNT_WIN7", "WINVER=_WIN32_WINNT_WIN7", ] } executable("elevation_service") { sources = [ "elevation_service.cc", "elevation_service.rc", ] configs -= [ "//build/config/win:console" ] configs += [ "//build/config/win:windowed" ] configs += [ ":no-missing-braces" ] configs -= [ "//build/config/win:winver" ] configs += [ ":winver" ] deps = [ ":lib", ":version_resources", "//base", "//build/win:default_exe_manifest", "//chrome/install_static:primary_module", ] } source_set("lib") { visibility = [ ":*" ] public = [ "elevator.h", "service_main.h", ] sources = [ "elevator.cc", "service_main.cc", ] configs += [ ":no-missing-braces" ] configs -= [ "//build/config/win:winver" ] configs += [ ":winver" ] public_deps = [ ":elevation_service_idl", "//base", ] deps = [ "//chrome/install_static:install_static_util", ] } process_version_rc_template("version_resources") { sources = [ "elevation_service_exe.ver", ] output = "$target_gen_dir/elevation_service_exe.rc" } test("elevation_service_unittests") { sources = [ "run_all_unittests.cc", "service_main_unittest.cc", ] configs -= [ "//build/config/win:winver" ] configs += [ ":winver" ] deps = [ ":lib", "//base", "//base/test:test_support", "//chrome/install_static:install_static_util", "//chrome/install_static/test:test_support", "//testing/gtest", ] data_deps = [ ":elevation_service", ] }