1 # Copyright (c) 2011 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 { 6 'variables': { 7 'chromium_code': 1, 8 'courgette_lib_sources': [ 9 'adjustment_method.cc', 10 'adjustment_method_2.cc', 11 'adjustment_method.h', 12 'assembly_program.cc', 13 'assembly_program.h', 14 'third_party/bsdiff.h', 15 'third_party/bsdiff_apply.cc', 16 'third_party/bsdiff_create.cc', 17 'third_party/paged_array.h', 18 'courgette.h', 19 'crc.cc', 20 'crc.h', 21 'difference_estimator.cc', 22 'difference_estimator.h', 23 'disassembler.cc', 24 'disassembler.h', 25 'disassembler_elf_32.cc', 26 'disassembler_elf_32.h', 27 'disassembler_elf_32_arm.cc', 28 'disassembler_elf_32_arm.h', 29 'disassembler_elf_32_x86.cc', 30 'disassembler_elf_32_x86.h', 31 'disassembler_win32_x86.cc', 32 'disassembler_win32_x86.h', 33 'disassembler_win32_x64.cc', 34 'disassembler_win32_x64.h', 35 'encoded_program.cc', 36 'encoded_program.h', 37 'ensemble.cc', 38 'ensemble.h', 39 'ensemble_apply.cc', 40 'ensemble_create.cc', 41 'memory_allocator.cc', 42 'memory_allocator.h', 43 'region.h', 44 'simple_delta.cc', 45 'simple_delta.h', 46 'streams.cc', 47 'streams.h', 48 'types_elf.h', 49 'types_win_pe.h', 50 'patch_generator_x86_32.h', 51 'patcher_x86_32.h', 52 ], 53 }, 54 'targets': [ 55 { 56 'target_name': 'courgette_lib', 57 'type': 'static_library', 58 'dependencies': [ 59 '../base/base.gyp:base', 60 '../third_party/lzma_sdk/lzma_sdk.gyp:lzma_sdk', 61 ], 62 'sources': [ 63 '<@(courgette_lib_sources)' 64 ], 65 }, 66 { 67 'target_name': 'courgette', 68 'type': 'executable', 69 'sources': [ 70 'courgette_tool.cc', 71 ], 72 'dependencies': [ 73 'courgette_lib', 74 '../base/base.gyp:base', 75 ], 76 'msvs_settings': { 77 'VCLinkerTool': { 78 'LargeAddressAware': 2, 79 }, 80 }, 81 }, 82 { 83 'target_name': 'courgette_minimal_tool', 84 'type': 'executable', 85 'sources': [ 86 'courgette_minimal_tool.cc', 87 ], 88 'dependencies': [ 89 'courgette_lib', 90 '../base/base.gyp:base', 91 ], 92 }, 93 { 94 'target_name': 'courgette_unittests', 95 'type': 'executable', 96 'sources': [ 97 'adjustment_method_unittest.cc', 98 'bsdiff_memory_unittest.cc', 99 'base_test_unittest.cc', 100 'base_test_unittest.h', 101 'difference_estimator_unittest.cc', 102 'disassembler_elf_32_x86_unittest.cc', 103 'disassembler_win32_x86_unittest.cc', 104 'disassembler_win32_x64_unittest.cc', 105 'encoded_program_unittest.cc', 106 'encode_decode_unittest.cc', 107 'ensemble_unittest.cc', 108 'streams_unittest.cc', 109 'typedrva_unittest.cc', 110 'versioning_unittest.cc', 111 'third_party/paged_array_unittest.cc' 112 ], 113 'dependencies': [ 114 'courgette_lib', 115 '../base/base.gyp:base', 116 '../base/base.gyp:base_i18n', 117 '../base/base.gyp:run_all_unittests', 118 '../base/base.gyp:test_support_base', 119 '../testing/gtest.gyp:gtest', 120 ], 121 'conditions': [ 122 [ 'os_posix == 1 and OS != "mac" and OS != "android" and OS != "ios"', { 123 'conditions': [ 124 ['linux_use_tcmalloc==1', { 125 'dependencies': [ 126 '../base/allocator/allocator.gyp:allocator', 127 ], 128 }], 129 ], 130 }], 131 [ 'toolkit_uses_gtk == 1', { 132 'dependencies': [ 133 # Workaround for gyp bug 69. 134 # Needed to handle the #include chain: 135 # base/test_suite.h 136 # gtk/gtk.h 137 '../build/linux/system.gyp:gtk', 138 ], 139 }], 140 ], 141 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 142 'msvs_disabled_warnings': [4267, ], 143 }, 144 { 145 'target_name': 'courgette_fuzz', 146 'type': 'executable', 147 'sources': [ 148 'base_test_unittest.cc', 149 'base_test_unittest.h', 150 'encoded_program_fuzz_unittest.cc', 151 ], 152 'dependencies': [ 153 'courgette_lib', 154 '../base/base.gyp:base', 155 '../base/base.gyp:base_i18n', 156 '../base/base.gyp:test_support_base', 157 '../testing/gtest.gyp:gtest', 158 ], 159 'conditions': [ 160 [ 'toolkit_uses_gtk == 1', { 161 'dependencies': [ 162 # Workaround for gyp bug 69. 163 # Needed to handle the #include chain: 164 # base/test_suite.h 165 # gtk/gtk.h 166 '../build/linux/system.gyp:gtk', 167 ], 168 }], 169 ], 170 }, 171 ], 172 'conditions': [ 173 ['OS=="win" and target_arch=="ia32"', { 174 'targets': [ 175 { 176 'target_name': 'courgette_lib64', 177 'type': 'static_library', 178 'dependencies': [ 179 '../base/base.gyp:base_nacl_win64', 180 '../third_party/lzma_sdk/lzma_sdk.gyp:lzma_sdk64', 181 ], 182 'sources': [ 183 '<@(courgette_lib_sources)', 184 ], 185 'configurations': { 186 'Common_Base': { 187 'msvs_target_platform': 'x64', 188 }, 189 }, 190 }, 191 { 192 'target_name': 'courgette64', 193 'type': 'executable', 194 'sources': [ 195 'courgette_tool.cc', 196 ], 197 'dependencies': [ 198 'courgette_lib64', 199 '../base/base.gyp:base_nacl_win64', 200 ], 201 'configurations': { 202 'Common_Base': { 203 'msvs_target_platform': 'x64', 204 }, 205 }, 206 }, 207 ], 208 }], 209 # The build infrastructure needs courgette to be named courgette64. 210 ['OS=="win" and target_arch=="x64"', { 211 'targets': [ 212 { 213 'target_name': 'courgette64', 214 'type': 'none', 215 'dependencies': [ 216 'courgette', 217 ], 218 'actions': [{ 219 'action_name': 'courgette64', 220 'inputs': [ 221 '<(PRODUCT_DIR)/courgette.exe', 222 ], 223 'outputs': [ 224 '<(PRODUCT_DIR)/courgette64.exe', 225 ], 226 'action': [ 227 'python', 228 '../build/cp.py', 229 '<@(_inputs)', 230 '<@(_outputs)' 231 ], 232 }], 233 }, 234 ], 235 }], 236 ], 237 } 238