# 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_lib', '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', 'create_file/chrome_create_file_unittest.cc', 'elf_imports_unittest.cc', 'ntdll_cache_unittest.cc', ], 'include_dirs': [ '..', '<(SHARED_INTERMEDIATE_DIR)', ], 'dependencies': [ 'chrome_elf_lib', '../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_lib', 'type': 'static_library', 'include_dirs': [ '..', ], 'sources': [ 'create_file/chrome_create_file.cc', 'create_file/chrome_create_file.h', 'ntdll_cache.cc', 'ntdll_cache.h', ], 'dependencies': [ 'chrome_elf_common', '../base/base.gyp:base_static', '../sandbox/sandbox.gyp:sandbox', ], }, { '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_types.h', '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/chrome.gyp:chrome_version_header', ], }, ], # targets 'conditions': [ ['component=="shared_library"', { 'targets': [ { 'target_name': 'chrome_redirects', 'type': 'shared_library', 'include_dirs': [ '..', ], 'sources': [ 'chrome_redirects.def', 'chrome_redirects_main.cc', ], 'dependencies': [ 'chrome_elf_lib', ], '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', }, }, }, ], }], ], }