Home | History | Annotate | Download | only in chrome_elf
      1 # Copyright 2013 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 {
      5   'variables': {
      6     'chromium_code': 1,
      7   },
      8   'includes': [
      9     '../build/util/version.gypi',
     10     '../build/win_precompile.gypi',
     11     'blacklist.gypi',
     12     'dll_hash.gypi',
     13   ],
     14   'targets': [
     15     {
     16       'target_name': 'chrome_elf_resources',
     17       'type': 'none',
     18       'conditions': [
     19         ['branding == "Chrome"', {
     20           'variables': {
     21              'branding_path': '../chrome/app/theme/google_chrome/BRANDING',
     22           },
     23         }, { # else branding!="Chrome"
     24           'variables': {
     25              'branding_path': '../chrome/app/theme/chromium/BRANDING',
     26           },
     27         }],
     28       ],
     29       'variables': {
     30         'output_dir': 'chrome_elf',
     31         'template_input_path': '../chrome/app/chrome_version.rc.version',
     32       },
     33       'sources': [
     34         'chrome_elf.ver',
     35       ],
     36       'includes': [
     37         '../chrome/version_resource_rules.gypi',
     38       ],
     39     },
     40     {
     41       'target_name': 'chrome_elf',
     42       'type': 'shared_library',
     43       'include_dirs': [
     44         '..',
     45       ],
     46       'sources': [
     47         'chrome_elf.def',
     48         'chrome_elf_main.cc',
     49         'chrome_elf_main.h',
     50         '<(SHARED_INTERMEDIATE_DIR)/chrome_elf/chrome_elf_version.rc',
     51       ],
     52       'dependencies': [
     53         'blacklist',
     54         'chrome_elf_breakpad',
     55         'chrome_elf_lib',
     56         'chrome_elf_resources',
     57       ],
     58       'msvs_settings': {
     59         'VCLinkerTool': {
     60           'conditions': [
     61             ['target_arch=="ia32"', {
     62               # Don't set an x64 base address (to avoid breaking HE-ASLR).
     63               'BaseAddress': '0x01c20000',
     64             }],
     65           ],
     66           # Set /SUBSYSTEM:WINDOWS.
     67           'SubSystem': '2',
     68           'AdditionalDependencies!': [
     69             'user32.lib',
     70           ],
     71           'IgnoreDefaultLibraryNames': [
     72             'user32.lib',
     73           ],
     74         },
     75       },
     76     },
     77     {
     78       'target_name': 'chrome_elf_unittests_exe',
     79       'product_name': 'chrome_elf_unittests',
     80       'type': 'executable',
     81       'sources': [
     82         'blacklist/test/blacklist_test.cc',
     83         'chrome_elf_util_unittest.cc',
     84         'create_file/chrome_create_file_unittest.cc',
     85         'elf_imports_unittest.cc',
     86         'ntdll_cache_unittest.cc',
     87       ],
     88       'include_dirs': [
     89         '..',
     90         '<(SHARED_INTERMEDIATE_DIR)',
     91       ],
     92       'dependencies': [
     93         'chrome_elf_lib',
     94         '../base/base.gyp:base',
     95         '../base/base.gyp:run_all_unittests',
     96         '../base/base.gyp:test_support_base',
     97         '../sandbox/sandbox.gyp:sandbox',
     98         '../testing/gtest.gyp:gtest',
     99         'blacklist',
    100         'blacklist_test_dll_1',
    101         'blacklist_test_dll_2',
    102         'blacklist_test_dll_3',
    103         'blacklist_test_main_dll',
    104       ],
    105     },
    106     {
    107       # A dummy target to ensure that chrome_elf.dll and chrome.exe gets built
    108       # when building chrome_elf_unittests.exe without introducing an
    109       # explicit runtime dependency.
    110       'target_name': 'chrome_elf_unittests',
    111       'type': 'none',
    112       'dependencies': [
    113         '../chrome/chrome.gyp:chrome',
    114         'chrome_elf',
    115         'chrome_elf_unittests_exe',
    116       ],
    117     },
    118     {
    119       'target_name': 'chrome_elf_lib',
    120       'type': 'static_library',
    121       'include_dirs': [
    122         '..',
    123       ],
    124       'sources': [
    125         'create_file/chrome_create_file.cc',
    126         'create_file/chrome_create_file.h',
    127         'ntdll_cache.cc',
    128         'ntdll_cache.h',
    129       ],
    130       'dependencies': [
    131         'chrome_elf_common',
    132         '../base/base.gyp:base_static',
    133         '../sandbox/sandbox.gyp:sandbox',
    134       ],
    135     },
    136     {
    137       'target_name': 'chrome_elf_constants',
    138       'type': 'static_library',
    139       'include_dirs': [
    140         '..',
    141       ],
    142       'sources': [
    143         'chrome_elf_constants.cc',
    144         'chrome_elf_constants.h',
    145       ],
    146     },
    147     {
    148       'target_name': 'chrome_elf_common',
    149       'type': 'static_library',
    150       'dependencies': [
    151         'chrome_elf_constants',
    152       ],
    153       'include_dirs': [
    154         '..',
    155       ],
    156       'sources': [
    157         'chrome_elf_types.h',
    158         'chrome_elf_util.cc',
    159         'chrome_elf_util.h',
    160         'thunk_getter.cc',
    161         'thunk_getter.h',
    162       ],
    163     },
    164     {
    165       'target_name': 'chrome_elf_breakpad',
    166       'type': 'static_library',
    167       'include_dirs': [
    168         '..',
    169         '<(SHARED_INTERMEDIATE_DIR)',
    170       ],
    171       'sources': [
    172         'breakpad.cc',
    173         'breakpad.h',
    174       ],
    175       'dependencies': [
    176         'chrome_elf_common',
    177         '../breakpad/breakpad.gyp:breakpad_handler',
    178         '../chrome/chrome.gyp:chrome_version_header',
    179       ],
    180     },
    181   ], # targets
    182   'conditions': [
    183     ['component=="shared_library"', {
    184       'targets': [
    185         {
    186           'target_name': 'chrome_redirects',
    187           'type': 'shared_library',
    188           'include_dirs': [
    189             '..',
    190           ],
    191           'sources': [
    192             'chrome_redirects.def',
    193             'chrome_redirects_main.cc',
    194           ],
    195           'dependencies': [
    196             'chrome_elf_lib',
    197           ],
    198           'msvs_settings': {
    199             'VCLinkerTool': {
    200               'conditions': [
    201                 ['target_arch=="ia32"', {
    202                   # Don't set an x64 base address (to avoid breaking HE-ASLR).
    203                   'BaseAddress': '0x01c20000',
    204                 }],
    205               ],
    206               # Set /SUBSYSTEM:WINDOWS.
    207               'SubSystem': '2',
    208             },
    209           },
    210         },
    211       ],
    212     }],
    213   ],
    214 }
    215 
    216