# Copyright 2013 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. { 'variables': { 'chromium_code': 1, }, 'includes': [ '../build/util/version.gypi', '../build/win_precompile.gypi', 'blacklist.gypi', 'dll_hash.gypi', ], 'targets': [ { 'target_name': 'chrome_elf_resources', 'type': 'none', 'variables': { 'output_dir': 'chrome_elf', 'branding_path': '../chrome/app/theme/<(branding_path_component)/BRANDING', 'template_input_path': '../chrome/app/chrome_version.rc.version', }, 'sources': [ 'chrome_elf.ver', ], 'includes': [ '../chrome/version_resource_rules.gypi', ], }, { 'target_name': 'chrome_elf', 'type': 'shared_library', 'include_dirs': [ '..', ], 'sources': [ 'chrome_elf.def', 'chrome_elf_main.cc', 'chrome_elf_main.h', '<(SHARED_INTERMEDIATE_DIR)/chrome_elf/chrome_elf_version.rc', ], 'dependencies': [ 'blacklist', 'chrome_elf_breakpad', 'chrome_elf_resources', ], 'msvs_settings': { 'VCLinkerTool': { 'conditions': [ ['target_arch=="ia32"', { # Don't set an x64 base address (to avoid breaking HE-ASLR). 'BaseAddress': '0x01c20000', }], ], # Set /SUBSYSTEM:WINDOWS. 'SubSystem': '2', 'AdditionalDependencies!': [ 'user32.lib', ], 'IgnoreDefaultLibraryNames': [ 'user32.lib', ], }, }, }, { 'target_name': 'chrome_elf_unittests_exe', 'product_name': 'chrome_elf_unittests', 'type': 'executable', 'sources': [ 'blacklist/test/blacklist_test.cc', 'chrome_elf_util_unittest.cc', 'elf_imports_unittest.cc', ], 'include_dirs': [ '..', '<(SHARED_INTERMEDIATE_DIR)', ], 'dependencies': [ '../base/base.gyp:base', '../base/base.gyp:run_all_unittests', '../base/base.gyp:test_support_base', '../sandbox/sandbox.gyp:sandbox', '../testing/gtest.gyp:gtest', 'blacklist', 'blacklist_test_dll_1', 'blacklist_test_dll_2', 'blacklist_test_dll_3', 'blacklist_test_main_dll', ], }, { # A dummy target to ensure that chrome_elf.dll and chrome.exe gets built # when building chrome_elf_unittests.exe without introducing an # explicit runtime dependency. 'target_name': 'chrome_elf_unittests', 'type': 'none', 'dependencies': [ '../chrome/chrome.gyp:chrome', 'chrome_elf', 'chrome_elf_unittests_exe', ], }, { 'target_name': 'chrome_elf_constants', 'type': 'static_library', 'include_dirs': [ '..', ], 'sources': [ 'chrome_elf_constants.cc', 'chrome_elf_constants.h', ], }, { 'target_name': 'chrome_elf_common', 'type': 'static_library', 'dependencies': [ 'chrome_elf_constants', ], 'include_dirs': [ '..', ], 'sources': [ 'chrome_elf_util.cc', 'chrome_elf_util.h', 'thunk_getter.cc', 'thunk_getter.h', ], }, { 'target_name': 'chrome_elf_breakpad', 'type': 'static_library', 'include_dirs': [ '..', '<(SHARED_INTERMEDIATE_DIR)', ], 'sources': [ 'breakpad.cc', 'breakpad.h', ], 'dependencies': [ 'chrome_elf_common', '../breakpad/breakpad.gyp:breakpad_handler', '../chrome/common_constants.gyp:version_header', ], }, ], # targets 'conditions': [ ['test_isolation_mode != "noop"', { 'targets': [ { 'target_name': 'chrome_elf_unittests_run', 'type': 'none', 'dependencies': [ 'chrome_elf_unittests', ], 'includes': [ '../build/isolate.gypi' ], 'sources': [ 'chrome_elf_unittests.isolate' ], }, ], }], ], }