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