OLD | NEW |
1 # Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 # There's a couple key GYP variables that control how FFmpeg is built: | 5 # There's a couple key GYP variables that control how FFmpeg is built: |
6 # ffmpeg_branding | 6 # ffmpeg_branding |
7 # Controls whether we build the Chromium or Google Chrome version of | 7 # Controls whether we build the Chromium or Google Chrome version of |
8 # FFmpeg. The Google Chrome version contains additional codecs. | 8 # FFmpeg. The Google Chrome version contains additional codecs. |
9 # Typical values are Chromium, Chrome, ChromiumOS, and ChromeOS. | 9 # Typical values are Chromium, Chrome, ChromiumOS, and ChromeOS. |
10 # use_system_ffmpeg | 10 # use_system_ffmpeg |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 'target_name': 'ffmpegsumo', | 80 'target_name': 'ffmpegsumo', |
81 'type': 'loadable_module', | 81 'type': 'loadable_module', |
82 'sources': [ | 82 'sources': [ |
83 'config/<(ffmpeg_branding)/<(os_config)/<(ffmpeg_config)/config.h', | 83 'config/<(ffmpeg_branding)/<(os_config)/<(ffmpeg_config)/config.h', |
84 'config/libavutil/avconfig.h', | 84 'config/libavutil/avconfig.h', |
85 ], | 85 ], |
86 'include_dirs': [ | 86 'include_dirs': [ |
87 'config/<(ffmpeg_branding)/<(os_config)/<(ffmpeg_config)', | 87 'config/<(ffmpeg_branding)/<(os_config)/<(ffmpeg_config)', |
88 'patched-ffmpeg', | 88 'patched-ffmpeg', |
89 'config', | 89 'config', |
90 # TODO(fischman): when both mac & linux are building from | |
91 # libvpx source replace this hackery with a simple target | |
92 # dependency on libvpx and let that export its headers. | |
93 '../libvpx/include', | |
94 ], | 90 ], |
95 'defines': [ | 91 'defines': [ |
96 'HAVE_AV_CONFIG_H', | 92 'HAVE_AV_CONFIG_H', |
97 '_POSIX_C_SOURCE=200112', | 93 '_POSIX_C_SOURCE=200112', |
98 '_XOPEN_SOURCE=600', | 94 '_XOPEN_SOURCE=600', |
99 ], | 95 ], |
100 'cflags': [ | 96 'cflags': [ |
101 '-fomit-frame-pointer', | 97 '-fomit-frame-pointer', |
102 ], | 98 ], |
103 'includes': [ | 99 'includes': [ |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
180 # Don't warn about libavformat using its own deprecated APIs. | 176 # Don't warn about libavformat using its own deprecated APIs. |
181 '-Wno-deprecated-declarations', | 177 '-Wno-deprecated-declarations', |
182 ], | 178 ], |
183 'cflags!': [ | 179 'cflags!': [ |
184 # Ensure the symbols are exported. | 180 # Ensure the symbols are exported. |
185 # | 181 # |
186 # TODO(ajwong): Manually tag the API that we use to be | 182 # TODO(ajwong): Manually tag the API that we use to be |
187 # exported. | 183 # exported. |
188 '-fvisibility=hidden', | 184 '-fvisibility=hidden', |
189 ], | 185 ], |
190 'dependencies': [ | |
191 '../libvpx/libvpx.gyp:libvpx', | |
192 ], | |
193 'link_settings': { | 186 'link_settings': { |
194 'ldflags': [ | 187 'ldflags': [ |
195 '-Wl,-Bsymbolic', | 188 '-Wl,-Bsymbolic', |
196 '-L<(shared_generated_dir)', | 189 '-L<(shared_generated_dir)', |
197 ], | 190 ], |
198 'libraries': [ | 191 'libraries': [ |
199 '-lz', | 192 '-lz', |
200 ], | 193 ], |
201 }, | 194 }, |
202 'variables': { | 195 'variables': { |
(...skipping 27 matching lines...) Expand all Loading... |
230 }], # OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris
" | 223 }], # OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris
" |
231 ['OS=="mac"', { | 224 ['OS=="mac"', { |
232 'conditions': [ | 225 'conditions': [ |
233 ['mac_breakpad==1', { | 226 ['mac_breakpad==1', { |
234 'variables': { | 227 'variables': { |
235 # A real .dSYM is needed for dump_syms to operate on. | 228 # A real .dSYM is needed for dump_syms to operate on. |
236 'mac_real_dsym': 1, | 229 'mac_real_dsym': 1, |
237 }, | 230 }, |
238 }], | 231 }], |
239 ], | 232 ], |
240 'dependencies': [ | |
241 '../libvpx/libvpx.gyp:libvpx', | |
242 ], | |
243 'link_settings': { | 233 'link_settings': { |
244 'libraries': [ | 234 'libraries': [ |
245 '$(SDKROOT)/usr/lib/libz.dylib', | 235 '$(SDKROOT)/usr/lib/libz.dylib', |
246 ], | 236 ], |
247 }, | 237 }, |
248 'xcode_settings': { | 238 'xcode_settings': { |
249 'GCC_SYMBOLS_PRIVATE_EXTERN': 'NO', # No -fvisibility=hidden | 239 'GCC_SYMBOLS_PRIVATE_EXTERN': 'NO', # No -fvisibility=hidden |
250 'GCC_DYNAMIC_NO_PIC': 'YES', # -mdynamic-no-pic | 240 'GCC_DYNAMIC_NO_PIC': 'YES', # -mdynamic-no-pic |
251 # (equiv -fno-PIC) | 241 # (equiv -fno-PIC) |
252 'DYLIB_INSTALL_NAME_BASE': '@loader_path', | 242 'DYLIB_INSTALL_NAME_BASE': '@loader_path', |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
319 'process_outputs_as_sources': 1, | 309 'process_outputs_as_sources': 1, |
320 'message': 'Build ffmpeg yasm build <(RULE_INPUT_PATH).', | 310 'message': 'Build ffmpeg yasm build <(RULE_INPUT_PATH).', |
321 }, | 311 }, |
322 ], | 312 ], |
323 }, | 313 }, |
324 ], | 314 ], |
325 }], | 315 }], |
326 ], # conditions | 316 ], # conditions |
327 'targets': [ | 317 'targets': [ |
328 { | 318 { |
329 # Determine whether we should export libvpx symbols. | |
330 'variables': { | 319 'variables': { |
331 'generate_stubs_script': '../../tools/generate_stubs/generate_stubs.py', | 320 'generate_stubs_script': '../../tools/generate_stubs/generate_stubs.py', |
332 'extra_header': 'ffmpeg_stub_headers.fragment', | 321 'extra_header': 'ffmpeg_stub_headers.fragment', |
333 'conditions': [ | 322 'sig_files': [ |
334 ['use_system_ffmpeg==1', { | 323 # Note that these must be listed in dependency order. |
335 'sig_files': [ | 324 # (i.e. if A depends on B, then B must be listed before A.) |
336 # Note that these must be listed in dependency order. | 325 'avutil-51.sigs', |
337 # (i.e. if A depends on B, then B must be listed before A.) | 326 'avcodec-53.sigs', |
338 # See: http://code.google.com/p/chromium/issues/detail?id=70687 | 327 'avformat-53.sigs', |
339 'avutil-51.sigs', | |
340 'avcodec-53.novpx_sigs', | |
341 'avformat-53.sigs', | |
342 ], | |
343 }, { # otherwise we export libvpx symbols. | |
344 'sig_files': [ | |
345 # Note that these must be listed in dependency order. | |
346 # (i.e. if A depends on B, then B must be listed before A.) | |
347 'avutil-51.sigs', | |
348 'avcodec-53.sigs', | |
349 'avformat-53.sigs', | |
350 ], | |
351 }], | |
352 ], | 328 ], |
353 }, | 329 }, |
354 | 330 |
355 'target_name': 'ffmpeg', | 331 'target_name': 'ffmpeg', |
356 'msvs_guid': 'D7A94F58-576A-45D9-A45F-EB87C63ABBB0', | 332 'msvs_guid': 'D7A94F58-576A-45D9-A45F-EB87C63ABBB0', |
357 'sources': [ | 333 'sources': [ |
358 # Hacks to introduce C99 types into Visual Studio. | 334 # Hacks to introduce C99 types into Visual Studio. |
359 'include/win/inttypes.h', | 335 'include/win/inttypes.h', |
360 'include/win/stdint.h', | 336 'include/win/stdint.h', |
361 | 337 |
362 # Files needed for stub generation rules. | 338 # Files needed for stub generation rules. |
363 '<@(sig_files)', | 339 '<@(sig_files)', |
364 '<(extra_header)' | 340 '<(extra_header)' |
365 ], | 341 ], |
366 'defines': [ | 342 'defines': [ |
367 '__STDC_CONSTANT_MACROS', # FFmpeg uses INT64_C. | 343 '__STDC_CONSTANT_MACROS', # FFmpeg uses INT64_C. |
368 ], | 344 ], |
369 'include_dirs': [ | |
370 # TODO(fischman): when both mac & linux are building from | |
371 # libvpx source replace this hackery with a simple target | |
372 # dependency on libvpx and let that export its headers. | |
373 '../libvpx/include', | |
374 ], | |
375 'hard_dependency': 1, | 345 'hard_dependency': 1, |
376 | 346 |
377 # Do not fear the massive conditional blocks! They do the following: | 347 # Do not fear the massive conditional blocks! They do the following: |
378 # 1) Use the Window stub generator on Windows | 348 # 1) Use the Window stub generator on Windows |
379 # 2) Else, use the POSIX stub generator on non-Windows | 349 # 2) Else, use the POSIX stub generator on non-Windows |
380 # a) Use system includes when use_system_ffmpeg!=0 | 350 # a) Use system includes when use_system_ffmpeg!=0 |
381 # b) Else, use our local copy in patched-ffmpeg | 351 # b) Else, use our local copy in patched-ffmpeg |
382 'conditions': [ | 352 'conditions': [ |
383 ['OS=="win"', { | 353 ['OS=="win"', { |
384 'variables': { | 354 'variables': { |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
565 ], # conditions | 535 ], # conditions |
566 }, | 536 }, |
567 ], # targets | 537 ], # targets |
568 } | 538 } |
569 | 539 |
570 # Local Variables: | 540 # Local Variables: |
571 # tab-width:2 | 541 # tab-width:2 |
572 # indent-tabs-mode:nil | 542 # indent-tabs-mode:nil |
573 # End: | 543 # End: |
574 # vim: set expandtab tabstop=2 shiftwidth=2: | 544 # vim: set expandtab tabstop=2 shiftwidth=2: |
OLD | NEW |