blob: 0b612a87c6ec5e73c2d58b5915cf63822b6f9ec2 [file] [log] [blame]
# 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',
'conditions': [
['branding == "Chrome"', {
'variables': {
'branding_path': '../chrome/app/theme/google_chrome/BRANDING',
},
}, { # else branding!="Chrome"
'variables': {
'branding_path': '../chrome/app/theme/chromium/BRANDING',
},
}],
],
'variables': {
'output_dir': 'chrome_elf',
'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',
},
},
},
],
}],
],
}