| OLD | NEW |
| 1 # Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2010 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 # TODO(fbarchard): Turn off --enable-memalign-hack for all but windows. | 5 # TODO(fbarchard): Turn off --enable-memalign-hack for all but windows. |
| 6 # TODO(ajwong): Determine if we want to statically link libz. | 6 # TODO(ajwong): Determine if we want to statically link libz. |
| 7 | 7 |
| 8 | 8 |
| 9 | 9 |
| 10 { | 10 { |
| 11 'target_defaults': { | 11 'target_defaults': { |
| 12 'conditions': [ | 12 'conditions': [ |
| 13 ['OS!="linux" and OS!="freebsd" and OS!="openbsd"', { | 13 ['OS!="linux" and OS!="freebsd" and OS!="openbsd" and OS!="solaris"', { |
| 14 'sources/': [['exclude', '/linux/']] | 14 'sources/': [['exclude', '/linux/']] |
| 15 }], | 15 }], |
| 16 ['OS!="mac"', {'sources/': [['exclude', '/mac/']]}], | 16 ['OS!="mac"', {'sources/': [['exclude', '/mac/']]}], |
| 17 ['OS!="win"', {'sources/': [['exclude', '/win/']]}], | 17 ['OS!="win"', {'sources/': [['exclude', '/win/']]}], |
| 18 ], | 18 ], |
| 19 'variables': { | 19 'variables': { |
| 20 # Since we are not often debugging FFmpeg, and performance is | 20 # Since we are not often debugging FFmpeg, and performance is |
| 21 # unacceptable without optimization, freeze the optimizations to -O2. | 21 # unacceptable without optimization, freeze the optimizations to -O2. |
| 22 # If someone really wants -O1 , they can change these in their checkout. | 22 # If someone really wants -O1 , they can change these in their checkout. |
| 23 # If you want -O0, see the Gotchas in README.Chromium for why that | 23 # If you want -O0, see the Gotchas in README.Chromium for why that |
| (...skipping 21 matching lines...) Expand all Loading... |
| 45 'shared_generated_dir': '<(SHARED_INTERMEDIATE_DIR)/third_party/ffmpeg', | 45 'shared_generated_dir': '<(SHARED_INTERMEDIATE_DIR)/third_party/ffmpeg', |
| 46 'asm_library': 'ffmpegasm', | 46 'asm_library': 'ffmpegasm', |
| 47 }, | 47 }, |
| 48 'conditions': [ | 48 'conditions': [ |
| 49 # This condition is for migrating from pre-built binaries to an in-tree | 49 # This condition is for migrating from pre-built binaries to an in-tree |
| 50 # source build. Most of these should be removed once FFmpeg is built on | 50 # source build. Most of these should be removed once FFmpeg is built on |
| 51 # mac and linux. Windows will take more work. | 51 # mac and linux. Windows will take more work. |
| 52 # | 52 # |
| 53 # TODO(ajwong): Per the comment above, reduce this conditional's size and | 53 # TODO(ajwong): Per the comment above, reduce this conditional's size and |
| 54 # determine if in-tree build in Windows is tractable. | 54 # determine if in-tree build in Windows is tractable. |
| 55 ['(OS!="linux" and OS!="freebsd" and OS!="openbsd" and OS!="mac") or use_sys
tem_ffmpeg!=0', { | 55 ['(OS!="linux" and OS!="freebsd" and OS!="openbsd" and OS!="solaris" and OS!
="mac") or use_system_ffmpeg!=0', { |
| 56 'variables': { | 56 'variables': { |
| 57 'target_for_binaries': 'ffmpeg_binaries', | 57 'target_for_binaries': 'ffmpeg_binaries', |
| 58 'ffmpeg_include_root': 'include', | 58 'ffmpeg_include_root': 'include', |
| 59 }, | 59 }, |
| 60 },{ # else OS=="linux" | 60 },{ # else OS=="linux" |
| 61 'variables': { | 61 'variables': { |
| 62 'target_for_binaries': 'ffmpegsumo_nolink', | 62 'target_for_binaries': 'ffmpegsumo_nolink', |
| 63 'ffmpeg_include_root': 'source/patched-ffmpeg-mt', | 63 'ffmpeg_include_root': 'source/patched-ffmpeg-mt', |
| 64 'conditions': [ | 64 'conditions': [ |
| 65 ['target_arch=="x64" or target_arch=="ia32"', { | 65 ['target_arch=="x64" or target_arch=="ia32"', { |
| (...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 301 'source/patched-ffmpeg-mt/libavcodec/arm/mpegvideo_armv5te_s.S', | 301 'source/patched-ffmpeg-mt/libavcodec/arm/mpegvideo_armv5te_s.S', |
| 302 ], | 302 ], |
| 303 }], | 303 }], |
| 304 ['target_arch=="arm" and ffmpeg_branding=="ChromeOS"', { | 304 ['target_arch=="arm" and ffmpeg_branding=="ChromeOS"', { |
| 305 'sources': [ | 305 'sources': [ |
| 306 'source/patched-ffmpeg-mt/libavcodec/h264_mp4toannexb_bsf.c', | 306 'source/patched-ffmpeg-mt/libavcodec/h264_mp4toannexb_bsf.c', |
| 307 # TODO(fbarchard): mpeg4video_es_bsf.c requires a patch | 307 # TODO(fbarchard): mpeg4video_es_bsf.c requires a patch |
| 308 # 'source/patched-ffmpeg-mt/libavcodec/mpeg4video_es_bsf.c', | 308 # 'source/patched-ffmpeg-mt/libavcodec/mpeg4video_es_bsf.c', |
| 309 ], | 309 ], |
| 310 }], # target_arch=="arm" and ffmpeg_branding=="ChromeOS" | 310 }], # target_arch=="arm" and ffmpeg_branding=="ChromeOS" |
| 311 ['OS=="linux" or OS=="freebsd" or OS=="openbsd"', { | 311 ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', { |
| 312 'defines': [ | 312 'defines': [ |
| 313 '_ISOC99_SOURCE', | 313 '_ISOC99_SOURCE', |
| 314 '_LARGEFILE_SOURCE', | 314 '_LARGEFILE_SOURCE', |
| 315 ], | 315 ], |
| 316 'cflags': [ | 316 'cflags': [ |
| 317 '-std=c99', | 317 '-std=c99', |
| 318 '-pthread', | 318 '-pthread', |
| 319 '-fno-math-errno', | 319 '-fno-math-errno', |
| 320 ], | 320 ], |
| 321 'cflags!': [ | 321 'cflags!': [ |
| (...skipping 15 matching lines...) Expand all Loading... |
| 337 ['ffmpeg_asm_lib==1', { | 337 ['ffmpeg_asm_lib==1', { |
| 338 'libraries': [ | 338 'libraries': [ |
| 339 # TODO(ajwong): When scons is dead, collapse this with the | 339 # TODO(ajwong): When scons is dead, collapse this with the |
| 340 # absolute path entry inside the OS="mac" conditional, and | 340 # absolute path entry inside the OS="mac" conditional, and |
| 341 # move it out of the conditionals block altogether. | 341 # move it out of the conditionals block altogether. |
| 342 '-l<(asm_library)', | 342 '-l<(asm_library)', |
| 343 ], | 343 ], |
| 344 }], | 344 }], |
| 345 ], | 345 ], |
| 346 }, | 346 }, |
| 347 }], # OS=="linux" or OS=="freebsd" or OS=="openbsd" | 347 }], # OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris
" |
| 348 ['OS=="mac"', { | 348 ['OS=="mac"', { |
| 349 'libraries': [ | 349 'libraries': [ |
| 350 # TODO(ajwong): Move into link_settings when this is fixed: | 350 # TODO(ajwong): Move into link_settings when this is fixed: |
| 351 # | 351 # |
| 352 # http://code.google.com/p/gyp/issues/detail?id=108 | 352 # http://code.google.com/p/gyp/issues/detail?id=108 |
| 353 '<(shared_generated_dir)/<(STATIC_LIB_PREFIX)<(asm_library)<(STA
TIC_LIB_SUFFIX)', | 353 '<(shared_generated_dir)/<(STATIC_LIB_PREFIX)<(asm_library)<(STA
TIC_LIB_SUFFIX)', |
| 354 ], | 354 ], |
| 355 'link_settings': { | 355 'link_settings': { |
| 356 'libraries': [ | 356 'libraries': [ |
| 357 '$(SDKROOT)/usr/lib/libz.dylib', | 357 '$(SDKROOT)/usr/lib/libz.dylib', |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 421 }], | 421 }], |
| 422 ], | 422 ], |
| 423 'sources': [ | 423 'sources': [ |
| 424 # The FFmpeg yasm files. | 424 # The FFmpeg yasm files. |
| 425 'source/patched-ffmpeg-mt/libavcodec/x86/dsputil_yasm.asm', | 425 'source/patched-ffmpeg-mt/libavcodec/x86/dsputil_yasm.asm', |
| 426 'source/patched-ffmpeg-mt/libavcodec/x86/fft_mmx.asm', | 426 'source/patched-ffmpeg-mt/libavcodec/x86/fft_mmx.asm', |
| 427 ], | 427 ], |
| 428 'rules': [ | 428 'rules': [ |
| 429 { | 429 { |
| 430 'conditions': [ | 430 'conditions': [ |
| 431 ['OS=="linux" or OS=="freebsd" or OS=="openbsd"', { | 431 ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"
', { |
| 432 'variables': { | 432 'variables': { |
| 433 'obj_format': 'elf', | 433 'obj_format': 'elf', |
| 434 }, | 434 }, |
| 435 'conditions': [ | 435 'conditions': [ |
| 436 ['target_arch=="ia32"', { | 436 ['target_arch=="ia32"', { |
| 437 'variables': { | 437 'variables': { |
| 438 'yasm_flags': [ | 438 'yasm_flags': [ |
| 439 '-DARCH_X86_32', | 439 '-DARCH_X86_32', |
| 440 '-m', 'x86', | 440 '-m', 'x86', |
| 441 ], | 441 ], |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 539 # Most people will want to depend on this target instead of on | 539 # Most people will want to depend on this target instead of on |
| 540 # ffmpegsumo directly since ffmpegsumo is meant to be | 540 # ffmpegsumo directly since ffmpegsumo is meant to be |
| 541 # used via dlopen() in chrome. | 541 # used via dlopen() in chrome. |
| 542 'target_name': 'ffmpegsumo_nolink', | 542 'target_name': 'ffmpegsumo_nolink', |
| 543 'type': 'executable', | 543 'type': 'executable', |
| 544 'sources': [ 'dummy_nolink.cc' ], | 544 'sources': [ 'dummy_nolink.cc' ], |
| 545 'dependencies': [ | 545 'dependencies': [ |
| 546 'ffmpegsumo', | 546 'ffmpegsumo', |
| 547 ], | 547 ], |
| 548 'conditions': [ | 548 'conditions': [ |
| 549 ['OS=="linux" or OS=="freebsd" or OS=="openbsd"', { | 549 ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', { |
| 550 'copies': [ | 550 'copies': [ |
| 551 { | 551 { |
| 552 # On Make and Scons builds, the library does not end up in | 552 # On Make and Scons builds, the library does not end up in |
| 553 # the PRODUCT_DIR. | 553 # the PRODUCT_DIR. |
| 554 # | 554 # |
| 555 # http://code.google.com/p/gyp/issues/detail?id=57 | 555 # http://code.google.com/p/gyp/issues/detail?id=57 |
| 556 # | 556 # |
| 557 # TODO(ajwong): Fix gyp, fix the world. | 557 # TODO(ajwong): Fix gyp, fix the world. |
| 558 'destination': '<(PRODUCT_DIR)', | 558 'destination': '<(PRODUCT_DIR)', |
| 559 'files': ['<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)ffmpegsumo<(S
HARED_LIB_SUFFIX)'], | 559 'files': ['<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)ffmpegsumo<(S
HARED_LIB_SUFFIX)'], |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 711 '-s', '<(stubs_filename_root)', | 711 '-s', '<(stubs_filename_root)', |
| 712 '-p', '<(project_path)', | 712 '-p', '<(project_path)', |
| 713 '<@(_inputs)', | 713 '<@(_inputs)', |
| 714 ], | 714 ], |
| 715 'process_outputs_as_sources': 1, | 715 'process_outputs_as_sources': 1, |
| 716 'message': 'Generating FFmpeg stubs for dynamic loading.', | 716 'message': 'Generating FFmpeg stubs for dynamic loading.', |
| 717 }, | 717 }, |
| 718 ], | 718 ], |
| 719 }, | 719 }, |
| 720 ], | 720 ], |
| 721 ['OS=="linux" or OS=="freebsd"', { | 721 ['OS=="linux" or OS=="freebsd" or OS=="solaris"', { |
| 722 'link_settings': { | 722 'link_settings': { |
| 723 'libraries': [ | 723 'libraries': [ |
| 724 # We need dl for dlopen() and friends. | 724 # We need dl for dlopen() and friends. |
| 725 '-ldl', | 725 '-ldl', |
| 726 ], | 726 ], |
| 727 }, | 727 }, |
| 728 }], | 728 }], |
| 729 ], # conditions | 729 ], # conditions |
| 730 }, | 730 }, |
| 731 { | 731 { |
| (...skipping 12 matching lines...) Expand all Loading... |
| 744 'conditions': [ | 744 'conditions': [ |
| 745 ['OS=="win"', { | 745 ['OS=="win"', { |
| 746 'variables': { | 746 'variables': { |
| 747 'source_files': [ | 747 'source_files': [ |
| 748 'binaries/<(ffmpeg_bin_dir)/avcodec-52.dll', | 748 'binaries/<(ffmpeg_bin_dir)/avcodec-52.dll', |
| 749 'binaries/<(ffmpeg_bin_dir)/avformat-52.dll', | 749 'binaries/<(ffmpeg_bin_dir)/avformat-52.dll', |
| 750 'binaries/<(ffmpeg_bin_dir)/avutil-50.dll', | 750 'binaries/<(ffmpeg_bin_dir)/avutil-50.dll', |
| 751 ], | 751 ], |
| 752 }, | 752 }, |
| 753 'dependencies': ['../../build/win/system.gyp:cygwin'], | 753 'dependencies': ['../../build/win/system.gyp:cygwin'], |
| 754 }], ['OS=="linux" or OS=="freebsd" or OS=="openbsd"', { | 754 }], ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', { |
| 755 'variables': { | 755 'variables': { |
| 756 # TODO(ajwong): Clean this up after we've finished | 756 # TODO(ajwong): Clean this up after we've finished |
| 757 # migrating to in-tree build. | 757 # migrating to in-tree build. |
| 758 'source_files': [ | 758 'source_files': [ |
| 759 ], | 759 ], |
| 760 }, | 760 }, |
| 761 }], ['OS=="mac"', { | 761 }], ['OS=="mac"', { |
| 762 # TODO(ajwong): These files are also copied in: | 762 # TODO(ajwong): These files are also copied in: |
| 763 # webkit/tools/test_shell/test_shell.gypi and | 763 # webkit/tools/test_shell/test_shell.gypi and |
| 764 # chrome/chrome.gyp | 764 # chrome/chrome.gyp |
| (...skipping 14 matching lines...) Expand all Loading... |
| 779 ], | 779 ], |
| 780 }, | 780 }, |
| 781 ], | 781 ], |
| 782 } | 782 } |
| 783 | 783 |
| 784 # Local Variables: | 784 # Local Variables: |
| 785 # tab-width:2 | 785 # tab-width:2 |
| 786 # indent-tabs-mode:nil | 786 # indent-tabs-mode:nil |
| 787 # End: | 787 # End: |
| 788 # vim: set expandtab tabstop=2 shiftwidth=2: | 788 # vim: set expandtab tabstop=2 shiftwidth=2: |
| OLD | NEW |