Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(194)

Unified Diff: libvpx.gyp

Issue 11198075: Linux: restore the option to build with system libvpx (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « libvpx.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: libvpx.gyp
===================================================================
--- libvpx.gyp (revision 152423)
+++ libvpx.gyp (working copy)
@@ -3,508 +3,538 @@
# found in the LICENSE file.
{
'variables': {
- 'conditions': [
- ['os_posix==1', {
- 'asm_obj_extension': 'o',
- }],
- ['OS=="win"', {
- 'asm_obj_extension': 'obj',
- }],
+ 'use_system_libvpx%': 0,
+ },
+ 'conditions': [
+ ['use_system_libvpx==0', {
+ 'variables': {
+ 'conditions': [
+ ['os_posix==1', {
+ 'asm_obj_extension': 'o',
+ }],
+ ['OS=="win"', {
+ 'asm_obj_extension': 'obj',
+ }],
- ['target_arch=="arm" and arm_neon==1', {
- 'target_arch_full': 'arm-neon',
- }, {
- 'target_arch_full': '<(target_arch)',
- }],
+ ['target_arch=="arm" and arm_neon==1', {
+ 'target_arch_full': 'arm-neon',
+ }, {
+ 'target_arch_full': '<(target_arch)',
+ }],
- # Conversion to libvpx arch names.
- ['target_arch=="arm" and arm_neon==1', {
- 'libvpx_arch': 'armv7',
- }],
- ['target_arch=="arm" and arm_neon==0', {
- 'libvpx_arch': 'armv6',
- }],
- ['target_arch=="ia32"', {
- 'libvpx_arch': 'x86',
- }],
- ['target_arch=="x64"', {
- 'libvpx_arch': 'x86_64',
- }],
+ # Conversion to libvpx arch names.
+ ['target_arch=="arm" and arm_neon==1', {
+ 'libvpx_arch': 'armv7',
+ }],
+ ['target_arch=="arm" and arm_neon==0', {
+ 'libvpx_arch': 'armv6',
+ }],
+ ['target_arch=="ia32"', {
+ 'libvpx_arch': 'x86',
+ }],
+ ['target_arch=="x64"', {
+ 'libvpx_arch': 'x86_64',
+ }],
- ['os_posix == 1 and OS != "mac"', {
- 'OS_CATEGORY%': 'linux',
- }, {
- 'OS_CATEGORY%': '<(OS)',
- }],
- ],
+ ['os_posix == 1 and OS != "mac"', {
+ 'OS_CATEGORY%': 'linux',
+ }, {
+ 'OS_CATEGORY%': '<(OS)',
+ }],
+ ],
- # Location of the intermediate output.
- 'shared_generated_dir': '<(SHARED_INTERMEDIATE_DIR)/third_party/libvpx',
+ # Location of the intermediate output.
+ 'shared_generated_dir': '<(SHARED_INTERMEDIATE_DIR)/third_party/libvpx',
- # Override temporarily until we get a warning-free libvpx on Windows.
- # See http://crbug.com/140121
- 'win_third_party_warn_as_error': 'false',
- },
+ # Override temporarily until we get a warning-free libvpx on Windows.
+ # See http://crbug.com/140121
+ 'win_third_party_warn_as_error': 'false',
+ },
- 'conditions': [
- [ 'target_arch != "arm" and target_arch != "mipsel"', {
- 'targets': [
- {
- # This libvpx target contains both encoder and decoder.
- # Encoder is configured to be realtime only.
- 'target_name': 'libvpx',
- 'type': 'static_library',
- 'variables': {
- 'yasm_output_path': '<(SHARED_INTERMEDIATE_DIR)/third_party/libvpx',
- 'OS_CATEGORY%': '<(OS_CATEGORY)',
- 'yasm_flags': [
- '-D', 'CHROMIUM',
- '-I', 'source/config/<(OS_CATEGORY)/<(target_arch)',
- '-I', 'source/config',
- '-I', 'source/libvpx',
- '-I', '<(shared_generated_dir)', # Generated assembly offsets
- ],
- },
- 'dependencies': [
- 'gen_asm_offsets',
- ],
- 'includes': [
- '../yasm/yasm_compile.gypi'
- ],
- 'include_dirs': [
- 'source/config/<(OS_CATEGORY)/<(target_arch)',
- 'source/config',
- 'source/libvpx',
- 'source/libvpx/vp8/common',
- 'source/libvpx/vp8/decoder',
- 'source/libvpx/vp8/encoder',
- '<(shared_generated_dir)', # Provides vpx_rtcd.h.
- ],
- 'direct_dependent_settings': {
- 'include_dirs': [
- 'source/libvpx',
- ],
- },
- # VS2010 does not correctly incrementally link obj files generated
- # from asm files. This flag disables UseLibraryDependencyInputs to
- # avoid this problem.
- 'msvs_2010_disable_uldi_when_referenced': 1,
- 'conditions': [
- [ 'target_arch=="ia32"', {
- 'includes': [
- 'libvpx_srcs_x86.gypi',
+ 'conditions': [
+ [ 'target_arch != "arm" and target_arch != "mipsel"', {
+ 'targets': [
+ {
+ # This libvpx target contains both encoder and decoder.
+ # Encoder is configured to be realtime only.
+ 'target_name': 'libvpx',
+ 'type': 'static_library',
+ 'variables': {
+ 'yasm_output_path': '<(SHARED_INTERMEDIATE_DIR)/third_party/libvpx',
+ 'OS_CATEGORY%': '<(OS_CATEGORY)',
+ 'yasm_flags': [
+ '-D', 'CHROMIUM',
+ '-I', 'source/config/<(OS_CATEGORY)/<(target_arch)',
+ '-I', 'source/config',
+ '-I', 'source/libvpx',
+ '-I', '<(shared_generated_dir)', # Generated assembly offsets
+ ],
+ },
+ 'dependencies': [
+ 'gen_asm_offsets',
],
- }],
- [ 'target_arch=="x64"', {
'includes': [
- 'libvpx_srcs_x86_64.gypi',
+ '../yasm/yasm_compile.gypi'
],
- }],
- ['clang == 1', {
- 'xcode_settings': {
- 'WARNING_CFLAGS': [
- # libvpx heavily relies on implicit enum casting.
- '-Wno-conversion',
- # libvpx does `if ((a == b))` in some places.
- '-Wno-parentheses-equality',
+ 'include_dirs': [
+ 'source/config/<(OS_CATEGORY)/<(target_arch)',
+ 'source/config',
+ 'source/libvpx',
+ 'source/libvpx/vp8/common',
+ 'source/libvpx/vp8/decoder',
+ 'source/libvpx/vp8/encoder',
+ '<(shared_generated_dir)', # Provides vpx_rtcd.h.
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ 'source/libvpx',
],
},
+ # VS2010 does not correctly incrementally link obj files generated
+ # from asm files. This flag disables UseLibraryDependencyInputs to
+ # avoid this problem.
+ 'msvs_2010_disable_uldi_when_referenced': 1,
+ 'conditions': [
+ [ 'target_arch=="ia32"', {
+ 'includes': [
+ 'libvpx_srcs_x86.gypi',
+ ],
+ }],
+ [ 'target_arch=="x64"', {
+ 'includes': [
+ 'libvpx_srcs_x86_64.gypi',
+ ],
+ }],
+ ['clang == 1', {
+ 'xcode_settings': {
+ 'WARNING_CFLAGS': [
+ # libvpx heavily relies on implicit enum casting.
+ '-Wno-conversion',
+ # libvpx does `if ((a == b))` in some places.
+ '-Wno-parentheses-equality',
+ ],
+ },
+ 'cflags': [
+ '-Wno-conversion',
+ '-Wno-parentheses-equality',
+ ],
+ }],
+ [ 'chromeos == 1', {
+ # ChromeOS needs these files for animated WebM avatars.
+ 'sources': [
+ 'source/libvpx/libmkv/EbmlIDs.h',
+ 'source/libvpx/libmkv/EbmlWriter.c',
+ 'source/libvpx/libmkv/EbmlWriter.h',
+ ],
+ }],
+ ],
+ },
+ ],
+ },
+ ],
+ # 'libvpx' target for mips builds.
+ [ 'target_arch=="mipsel" ', {
+ 'targets': [
+ {
+ # This libvpx target contains both encoder and decoder.
+ # Encoder is configured to be realtime only.
+ 'target_name': 'libvpx',
+ 'type': 'static_library',
+ 'variables': {
+ 'shared_generated_dir':
+ '<(SHARED_INTERMEDIATE_DIR)/third_party/libvpx',
+ },
+ 'includes': [
+ 'libvpx_srcs_mips.gypi',
+ ],
'cflags': [
- '-Wno-conversion',
- '-Wno-parentheses-equality',
+ '-EL -static -mips32',
],
- }],
- [ 'chromeos == 1', {
- # ChromeOS needs these files for animated WebM avatars.
+ 'include_dirs': [
+ 'source/config/<(OS)/<(target_arch)',
+ 'source/config',
+ 'source/libvpx',
+ 'source/libvpx/vp8/common',
+ 'source/libvpx/vp8/decoder',
+ 'source/libvpx/vp8/encoder',
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ 'source/libvpx',
+ ],
+ },
'sources': [
- 'source/libvpx/libmkv/EbmlIDs.h',
- 'source/libvpx/libmkv/EbmlWriter.c',
- 'source/libvpx/libmkv/EbmlWriter.h',
+ 'source/config/<(OS)/<(target_arch)/vpx_config.c',
],
- }],
+ },
],
},
+ ],
+ # 'libvpx' target for ARM builds.
+ [ 'target_arch=="arm" ', {
+ 'targets': [
+ {
+ # This libvpx target contains both encoder and decoder.
+ # Encoder is configured to be realtime only.
+ 'target_name': 'libvpx',
+ 'type': 'static_library',
+ 'dependencies': [
+ 'gen_asm_offsets',
+ ],
+
+ # Copy the script to the output folder so that we can use it with
+ # absolute path.
+ 'copies': [{
+ 'destination': '<(shared_generated_dir)',
+ 'files': [
+ '<(ads2gas_script_path)',
+ ],
+ }],
+
+ # Rule to convert .asm files to .S files.
+ 'rules': [
+ {
+ 'rule_name': 'convert_asm',
+ 'extension': 'asm',
+ 'inputs': [ '<(shared_generated_dir)/<(ads2gas_script)', ],
+ 'outputs': [
+ '<(shared_generated_dir)/<(RULE_INPUT_ROOT).S',
+ ],
+ 'action': [
+ 'bash',
+ '-c',
+ 'cat <(RULE_INPUT_PATH) | perl <(shared_generated_dir)/<(ads2gas_script) > <(shared_generated_dir)/<(RULE_INPUT_ROOT).S',
+ ],
+ 'process_outputs_as_sources': 1,
+ 'message': 'Convert libvpx asm file for ARM <(RULE_INPUT_PATH).',
+ },
+ ],
+
+ 'variables': {
+ # Location of the assembly conversion script.
+ 'ads2gas_script': 'ads2gas.pl',
+ 'ads2gas_script_path': 'source/libvpx/build/make/<(ads2gas_script)',
+ },
+ 'cflags': [
+ # We need to explicitly tell the GCC assembler to look for
+ # .include directive files from the place where they're
+ # generated to.
+ '-Wa,-I,<!(pwd)/source/config/<(OS_CATEGORY)/<(target_arch_full)',
+ '-Wa,-I,<!(pwd)/source/config',
+ '-Wa,-I,<(shared_generated_dir)',
+ ],
+ 'include_dirs': [
+ 'source/config/<(OS_CATEGORY)/<(target_arch_full)',
+ 'source/config',
+ 'source/libvpx',
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ 'source/libvpx',
+ ],
+ },
+ 'conditions': [
+ # Libvpx optimizations for ARMv6 or ARMv7 without NEON.
+ ['arm_neon==0', {
+ 'includes': [
+ 'libvpx_srcs_arm.gypi',
+ ],
+ }],
+ # Libvpx optimizations for ARMv7 with NEON.
+ ['arm_neon==1', {
+ 'includes': [
+ 'libvpx_srcs_arm_neon.gypi',
+ ],
+ }],
+ ['OS == "android"', {
+ 'include_dirs': [
+ '<(android_ndk_include)',
+ '<(android_ndk_include)/machine',
+ ],
+ 'defines': [
+ 'ANDROID_CPU_ARM_FEATURE_NEON=4',
+ ],
+ }],
+ [ 'chromeos == 1', {
+ # ChromeOS needs these files for animated WebM avatars.
+ 'sources': [
+ 'source/libvpx/libmkv/EbmlIDs.h',
+ 'source/libvpx/libmkv/EbmlWriter.c',
+ 'source/libvpx/libmkv/EbmlWriter.h',
+ ],
+ }],
+ ],
+ },
+ ],
+ }],
],
- },
- ],
- # 'libvpx' target for mips builds.
- [ 'target_arch=="mipsel" ', {
'targets': [
{
- # This libvpx target contains both encoder and decoder.
- # Encoder is configured to be realtime only.
- 'target_name': 'libvpx',
- 'type': 'static_library',
- 'variables': {
- 'shared_generated_dir':
- '<(SHARED_INTERMEDIATE_DIR)/third_party/libvpx',
- },
- 'includes': [
- 'libvpx_srcs_mips.gypi',
- ],
- 'cflags': [
- '-EL -static -mips32',
- ],
+ # A tool that runs on host to tract integers from object file.
+ 'target_name': 'libvpx_obj_int_extract',
+ 'type': 'executable',
+ 'toolsets': ['host'],
'include_dirs': [
- 'source/config/<(OS)/<(target_arch)',
+ 'source/config/<(OS_CATEGORY)/<(target_arch_full)',
'source/config',
'source/libvpx',
- 'source/libvpx/vp8/common',
- 'source/libvpx/vp8/decoder',
- 'source/libvpx/vp8/encoder',
],
- 'direct_dependent_settings': {
- 'include_dirs': [
- 'source/libvpx',
- ],
- },
'sources': [
- 'source/config/<(OS)/<(target_arch)/vpx_config.c',
- ],
+ 'source/libvpx/build/make/obj_int_extract.c',
+ ]
},
- ],
- },
- ],
- # 'libvpx' target for ARM builds.
- [ 'target_arch=="arm" ', {
- 'targets': [
{
- # This libvpx target contains both encoder and decoder.
- # Encoder is configured to be realtime only.
- 'target_name': 'libvpx',
+ # A library that contains assembly offsets needed.
+ 'target_name': 'libvpx_asm_offsets',
'type': 'static_library',
- 'dependencies': [
- 'gen_asm_offsets',
- ],
-
- # Copy the script to the output folder so that we can use it with
- # absolute path.
- 'copies': [{
- 'destination': '<(shared_generated_dir)',
- 'files': [
- '<(ads2gas_script_path)',
- ],
- }],
-
- # Rule to convert .asm files to .S files.
- 'rules': [
- {
- 'rule_name': 'convert_asm',
- 'extension': 'asm',
- 'inputs': [ '<(shared_generated_dir)/<(ads2gas_script)', ],
- 'outputs': [
- '<(shared_generated_dir)/<(RULE_INPUT_ROOT).S',
- ],
- 'action': [
- 'bash',
- '-c',
- 'cat <(RULE_INPUT_PATH) | perl <(shared_generated_dir)/<(ads2gas_script) > <(shared_generated_dir)/<(RULE_INPUT_ROOT).S',
- ],
- 'process_outputs_as_sources': 1,
- 'message': 'Convert libvpx asm file for ARM <(RULE_INPUT_PATH).',
- },
- ],
-
- 'variables': {
- # Location of the assembly conversion script.
- 'ads2gas_script': 'ads2gas.pl',
- 'ads2gas_script_path': 'source/libvpx/build/make/<(ads2gas_script)',
- },
- 'cflags': [
- # We need to explicitly tell the GCC assembler to look for
- # .include directive files from the place where they're
- # generated to.
- '-Wa,-I,<!(pwd)/source/config/<(OS_CATEGORY)/<(target_arch_full)',
- '-Wa,-I,<!(pwd)/source/config',
- '-Wa,-I,<(shared_generated_dir)',
- ],
+ 'hard_dependency': 1,
'include_dirs': [
'source/config/<(OS_CATEGORY)/<(target_arch_full)',
'source/config',
'source/libvpx',
],
- 'direct_dependent_settings': {
- 'include_dirs': [
- 'source/libvpx',
- ],
- },
'conditions': [
- # Libvpx optimizations for ARMv6 or ARMv7 without NEON.
- ['arm_neon==0', {
- 'includes': [
- 'libvpx_srcs_arm.gypi',
- ],
+ ['asan==1', {
+ 'cflags!': [ '-faddress-sanitizer', ],
+ 'xcode_settings': {
+ 'OTHER_CFLAGS!': [ '-faddress-sanitizer', ],
+ },
+ 'ldflags!': [ '-faddress-sanitizer', ],
}],
- # Libvpx optimizations for ARMv7 with NEON.
- ['arm_neon==1', {
- 'includes': [
- 'libvpx_srcs_arm_neon.gypi',
+ ],
+ 'sources': [
+ '<(shared_generated_dir)/vpx_rtcd.h',
+ 'source/libvpx/vp8/common/asm_com_offsets.c',
+ 'source/libvpx/vp8/decoder/asm_dec_offsets.c',
+ 'source/libvpx/vp8/encoder/asm_enc_offsets.c',
+ ],
+ },
+ {
+ # A target that takes assembly offsets library and generate the
+ # corresponding assembly files.
+ # This target is a hard dependency because the generated .asm files
+ # are needed all assembly optimized files in libvpx.
+ 'target_name': 'gen_asm_offsets',
+ 'type': 'none',
+ 'hard_dependency': 1,
+ 'dependencies': [
+ 'libvpx_asm_offsets',
+ 'libvpx_obj_int_extract#host',
+ ],
+ 'conditions': [
+ ['OS=="win"', {
+ 'variables': {
+ 'ninja_obj_dir': '<(PRODUCT_DIR)/obj/third_party/libvpx/source/libvpx/vp8',
+ },
+ 'actions': [
+ {
+ 'action_name': 'copy_enc_offsets_obj',
+ 'inputs': [ 'copy_obj.sh' ],
+ 'outputs': [ '<(INTERMEDIATE_DIR)/asm_enc_offsets.obj' ],
+ 'action': [
+ '<(DEPTH)/third_party/libvpx/copy_obj.sh',
+ '-d', '<@(_outputs)',
+ '-s', '<(PRODUCT_DIR)/obj/libvpx_asm_offsets/asm_enc_offsets.obj',
+ '-s', '<(ninja_obj_dir)/encoder/libvpx_asm_offsets.asm_enc_offsets.obj',
+ ],
+ 'process_output_as_sources': 1,
+ },
+ {
+ 'action_name': 'copy_dec_offsets_obj',
+ 'inputs': [ 'copy_obj.sh' ],
+ 'outputs': [ '<(INTERMEDIATE_DIR)/asm_dec_offsets.obj' ],
+ 'action': [
+ '<(DEPTH)/third_party/libvpx/copy_obj.sh',
+ '-d', '<@(_outputs)',
+ '-s', '<(PRODUCT_DIR)/obj/libvpx_asm_offsets/asm_dec_offsets.obj',
+ '-s', '<(ninja_obj_dir)/decoder/libvpx_asm_offsets.asm_dec_offsets.obj',
+ ],
+ 'process_output_as_sources': 1,
+ },
+ {
+ 'action_name': 'copy_com_offsets_obj',
+ 'inputs': [ 'copy_obj.sh' ],
+ 'outputs': [ '<(INTERMEDIATE_DIR)/asm_com_offsets.obj' ],
+ 'action': [
+ '<(DEPTH)/third_party/libvpx/copy_obj.sh',
+ '-d', '<@(_outputs)',
+ '-s', '<(PRODUCT_DIR)/obj/libvpx_asm_offsets/asm_com_offsets.obj',
+ '-s', '<(ninja_obj_dir)/common/libvpx_asm_offsets.asm_com_offsets.obj',
+ ],
+ 'process_output_as_sources': 1,
+ },
],
- }],
- ['OS == "android"', {
- 'include_dirs': [
- '<(android_ndk_include)',
- '<(android_ndk_include)/machine',
+ 'sources': [
+ '<(INTERMEDIATE_DIR)/asm_com_offsets.obj',
+ '<(INTERMEDIATE_DIR)/asm_dec_offsets.obj',
+ '<(INTERMEDIATE_DIR)/asm_enc_offsets.obj',
],
- 'defines': [
- 'ANDROID_CPU_ARM_FEATURE_NEON=4',
+ }, {
+ 'actions': [
+ {
+ # Take archived .a file and unpack it unto .o files.
+ 'action_name': 'unpack_lib_posix',
+ 'inputs': [
+ 'unpack_lib_posix.sh',
+ ],
+ 'outputs': [
+ '<(INTERMEDIATE_DIR)/asm_com_offsets.o',
+ '<(INTERMEDIATE_DIR)/asm_dec_offsets.o',
+ '<(INTERMEDIATE_DIR)/asm_enc_offsets.o',
+ ],
+ 'action': [
+ '<(DEPTH)/third_party/libvpx/unpack_lib_posix.sh',
+ '-d', '<(INTERMEDIATE_DIR)',
+ '-a', '<(LIB_DIR)/libvpx_asm_offsets.a',
+ '-a', '<(LIB_DIR)/third_party/libvpx/libvpx_asm_offsets.a',
+ '-f', 'asm_com_offsets.o',
+ '-f', 'asm_dec_offsets.o',
+ '-f', 'asm_enc_offsets.o',
+ ],
+ 'process_output_as_sources': 1,
+ },
],
- }],
- [ 'chromeos == 1', {
- # ChromeOS needs these files for animated WebM avatars.
+ # Need this otherwise gyp won't run the rule on them.
'sources': [
- 'source/libvpx/libmkv/EbmlIDs.h',
- 'source/libvpx/libmkv/EbmlWriter.c',
- 'source/libvpx/libmkv/EbmlWriter.h',
+ '<(INTERMEDIATE_DIR)/asm_com_offsets.o',
+ '<(INTERMEDIATE_DIR)/asm_dec_offsets.o',
+ '<(INTERMEDIATE_DIR)/asm_enc_offsets.o',
],
}],
],
- },
- ],
- }],
- ],
- 'targets': [
- {
- # A tool that runs on host to tract integers from object file.
- 'target_name': 'libvpx_obj_int_extract',
- 'type': 'executable',
- 'toolsets': ['host'],
- 'include_dirs': [
- 'source/config/<(OS_CATEGORY)/<(target_arch_full)',
- 'source/config',
- 'source/libvpx',
- ],
- 'sources': [
- 'source/libvpx/build/make/obj_int_extract.c',
- ]
- },
- {
- # A library that contains assembly offsets needed.
- 'target_name': 'libvpx_asm_offsets',
- 'type': 'static_library',
- 'hard_dependency': 1,
- 'include_dirs': [
- 'source/config/<(OS_CATEGORY)/<(target_arch_full)',
- 'source/config',
- 'source/libvpx',
- ],
- 'conditions': [
- ['asan==1', {
- 'cflags!': [ '-faddress-sanitizer', ],
- 'xcode_settings': {
- 'OTHER_CFLAGS!': [ '-faddress-sanitizer', ],
- },
- 'ldflags!': [ '-faddress-sanitizer', ],
- }],
- ],
- 'sources': [
- '<(shared_generated_dir)/vpx_rtcd.h',
- 'source/libvpx/vp8/common/asm_com_offsets.c',
- 'source/libvpx/vp8/decoder/asm_dec_offsets.c',
- 'source/libvpx/vp8/encoder/asm_enc_offsets.c',
- ],
- },
- {
- # A target that takes assembly offsets library and generate the
- # corresponding assembly files.
- # This target is a hard dependency because the generated .asm files
- # are needed all assembly optimized files in libvpx.
- 'target_name': 'gen_asm_offsets',
- 'type': 'none',
- 'hard_dependency': 1,
- 'dependencies': [
- 'libvpx_asm_offsets',
- 'libvpx_obj_int_extract#host',
- ],
- 'conditions': [
- ['OS=="win"', {
- 'variables': {
- 'ninja_obj_dir': '<(PRODUCT_DIR)/obj/third_party/libvpx/source/libvpx/vp8',
- },
- 'actions': [
+ 'rules': [
{
- 'action_name': 'copy_enc_offsets_obj',
- 'inputs': [ 'copy_obj.sh' ],
- 'outputs': [ '<(INTERMEDIATE_DIR)/asm_enc_offsets.obj' ],
+ # Rule to extract integer values for each symbol from an object file.
+ 'rule_name': 'obj_int_extract',
+ 'extension': '<(asm_obj_extension)',
+ 'inputs': [
+ '<(PRODUCT_DIR)/libvpx_obj_int_extract',
+ 'obj_int_extract.sh',
+ ],
+ 'outputs': [
+ '<(shared_generated_dir)/<(RULE_INPUT_ROOT).asm',
+ ],
+ 'variables': {
+ 'conditions': [
+ ['target_arch=="arm"', {
+ 'asm_format': 'gas',
+ }, {
+ 'asm_format': 'rvds',
+ }],
+ ],
+ },
'action': [
- '<(DEPTH)/third_party/libvpx/copy_obj.sh',
- '-d', '<@(_outputs)',
- '-s', '<(PRODUCT_DIR)/obj/libvpx_asm_offsets/asm_enc_offsets.obj',
- '-s', '<(ninja_obj_dir)/encoder/libvpx_asm_offsets.asm_enc_offsets.obj',
+ '<(DEPTH)/third_party/libvpx/obj_int_extract.sh',
+ '-e', '<(PRODUCT_DIR)/libvpx_obj_int_extract',
+ '-f', '<(asm_format)',
+ '-b', '<(RULE_INPUT_PATH)',
+ '-o', '<(shared_generated_dir)/<(RULE_INPUT_ROOT).asm',
],
- 'process_output_as_sources': 1,
+ 'message': 'Generate assembly offsets <(RULE_INPUT_PATH).',
},
+ ],
+ },
+ {
+ 'target_name': 'simple_encoder',
+ 'type': 'executable',
+ 'dependencies': [
+ 'libvpx',
+ ],
+
+ # Copy the script to the output folder so that we can use it with
+ # absolute path.
+ 'copies': [{
+ 'destination': '<(shared_generated_dir)/simple_encoder',
+ 'files': [
+ 'source/libvpx/examples/gen_example_code.sh',
+ ],
+ }],
+
+ # Rule to convert .txt files to .c files.
+ 'rules': [
{
- 'action_name': 'copy_dec_offsets_obj',
- 'inputs': [ 'copy_obj.sh' ],
- 'outputs': [ '<(INTERMEDIATE_DIR)/asm_dec_offsets.obj' ],
- 'action': [
- '<(DEPTH)/third_party/libvpx/copy_obj.sh',
- '-d', '<@(_outputs)',
- '-s', '<(PRODUCT_DIR)/obj/libvpx_asm_offsets/asm_dec_offsets.obj',
- '-s', '<(ninja_obj_dir)/decoder/libvpx_asm_offsets.asm_dec_offsets.obj',
+ 'rule_name': 'generate_example',
+ 'extension': 'txt',
+ 'inputs': [ '<(shared_generated_dir)/simple_encoder/gen_example_code.sh', ],
+ 'outputs': [
+ '<(shared_generated_dir)/<(RULE_INPUT_ROOT).c',
],
- 'process_output_as_sources': 1,
- },
- {
- 'action_name': 'copy_com_offsets_obj',
- 'inputs': [ 'copy_obj.sh' ],
- 'outputs': [ '<(INTERMEDIATE_DIR)/asm_com_offsets.obj' ],
'action': [
- '<(DEPTH)/third_party/libvpx/copy_obj.sh',
- '-d', '<@(_outputs)',
- '-s', '<(PRODUCT_DIR)/obj/libvpx_asm_offsets/asm_com_offsets.obj',
- '-s', '<(ninja_obj_dir)/common/libvpx_asm_offsets.asm_com_offsets.obj',
+ 'bash',
+ '-c',
+ '<(shared_generated_dir)/simple_encoder/gen_example_code.sh <(RULE_INPUT_PATH) > <(shared_generated_dir)/<(RULE_INPUT_ROOT).c',
],
- 'process_output_as_sources': 1,
+ 'process_outputs_as_sources': 1,
+ 'message': 'Generate libvpx example code <(RULE_INPUT_PATH).',
},
],
'sources': [
- '<(INTERMEDIATE_DIR)/asm_com_offsets.obj',
- '<(INTERMEDIATE_DIR)/asm_dec_offsets.obj',
- '<(INTERMEDIATE_DIR)/asm_enc_offsets.obj',
+ 'source/libvpx/examples/simple_encoder.txt',
+ ]
+ },
+ {
+ 'target_name': 'simple_decoder',
+ 'type': 'executable',
+ 'dependencies': [
+ 'libvpx',
],
- }, {
- 'actions': [
+
+ # Copy the script to the output folder so that we can use it with
+ # absolute path.
+ 'copies': [{
+ 'destination': '<(shared_generated_dir)/simple_decoder',
+ 'files': [
+ 'source/libvpx/examples/gen_example_code.sh',
+ ],
+ }],
+
+ # Rule to convert .txt files to .c files.
+ 'rules': [
{
- # Take archived .a file and unpack it unto .o files.
- 'action_name': 'unpack_lib_posix',
- 'inputs': [
- 'unpack_lib_posix.sh',
- ],
+ 'rule_name': 'generate_example',
+ 'extension': 'txt',
+ 'inputs': [ '<(shared_generated_dir)/simple_decoder/gen_example_code.sh', ],
'outputs': [
- '<(INTERMEDIATE_DIR)/asm_com_offsets.o',
- '<(INTERMEDIATE_DIR)/asm_dec_offsets.o',
- '<(INTERMEDIATE_DIR)/asm_enc_offsets.o',
+ '<(shared_generated_dir)/<(RULE_INPUT_ROOT).c',
],
'action': [
- '<(DEPTH)/third_party/libvpx/unpack_lib_posix.sh',
- '-d', '<(INTERMEDIATE_DIR)',
- '-a', '<(LIB_DIR)/libvpx_asm_offsets.a',
- '-a', '<(LIB_DIR)/third_party/libvpx/libvpx_asm_offsets.a',
- '-f', 'asm_com_offsets.o',
- '-f', 'asm_dec_offsets.o',
- '-f', 'asm_enc_offsets.o',
+ 'bash',
+ '-c',
+ '<(shared_generated_dir)/simple_decoder/gen_example_code.sh <(RULE_INPUT_PATH) > <(shared_generated_dir)/<(RULE_INPUT_ROOT).c',
],
- 'process_output_as_sources': 1,
+ 'process_outputs_as_sources': 1,
+ 'message': 'Generate libvpx example code <(RULE_INPUT_PATH).',
},
],
- # Need this otherwise gyp won't run the rule on them.
'sources': [
- '<(INTERMEDIATE_DIR)/asm_com_offsets.o',
- '<(INTERMEDIATE_DIR)/asm_dec_offsets.o',
- '<(INTERMEDIATE_DIR)/asm_enc_offsets.o',
- ],
- }],
+ 'source/libvpx/examples/simple_decoder.txt',
+ ]
+ },
],
- 'rules': [
+ }, { # use_system_libvpx==1
+ 'targets': [
{
- # Rule to extract integer values for each symbol from an object file.
- 'rule_name': 'obj_int_extract',
- 'extension': '<(asm_obj_extension)',
- 'inputs': [
- '<(PRODUCT_DIR)/libvpx_obj_int_extract',
- 'obj_int_extract.sh',
- ],
- 'outputs': [
- '<(shared_generated_dir)/<(RULE_INPUT_ROOT).asm',
- ],
- 'variables': {
- 'conditions': [
- ['target_arch=="arm"', {
- 'asm_format': 'gas',
- }, {
- 'asm_format': 'rvds',
- }],
+ 'target_name': 'libvpx',
+ 'type': 'none',
+ 'direct_dependent_settings': {
+ 'cflags': [
+ '<!@(pkg-config --cflags vpx)',
],
+ 'defines': [
+ 'USE_SYSTEM_LIBVPX',
+ ],
},
- 'action': [
- '<(DEPTH)/third_party/libvpx/obj_int_extract.sh',
- '-e', '<(PRODUCT_DIR)/libvpx_obj_int_extract',
- '-f', '<(asm_format)',
- '-b', '<(RULE_INPUT_PATH)',
- '-o', '<(shared_generated_dir)/<(RULE_INPUT_ROOT).asm',
- ],
- 'message': 'Generate assembly offsets <(RULE_INPUT_PATH).',
+ 'link_settings': {
+ 'ldflags': [
+ '<!@(pkg-config --libs-only-L --libs-only-other vpx)',
+ ],
+ 'libraries': [
+ '<!@(pkg-config --libs-only-l vpx)',
+ ],
+ },
},
],
- },
- {
- 'target_name': 'simple_encoder',
- 'type': 'executable',
- 'dependencies': [
- 'libvpx',
- ],
-
- # Copy the script to the output folder so that we can use it with
- # absolute path.
- 'copies': [{
- 'destination': '<(shared_generated_dir)/simple_encoder',
- 'files': [
- 'source/libvpx/examples/gen_example_code.sh',
- ],
- }],
-
- # Rule to convert .txt files to .c files.
- 'rules': [
- {
- 'rule_name': 'generate_example',
- 'extension': 'txt',
- 'inputs': [ '<(shared_generated_dir)/simple_encoder/gen_example_code.sh', ],
- 'outputs': [
- '<(shared_generated_dir)/<(RULE_INPUT_ROOT).c',
- ],
- 'action': [
- 'bash',
- '-c',
- '<(shared_generated_dir)/simple_encoder/gen_example_code.sh <(RULE_INPUT_PATH) > <(shared_generated_dir)/<(RULE_INPUT_ROOT).c',
- ],
- 'process_outputs_as_sources': 1,
- 'message': 'Generate libvpx example code <(RULE_INPUT_PATH).',
- },
- ],
- 'sources': [
- 'source/libvpx/examples/simple_encoder.txt',
- ]
- },
- {
- 'target_name': 'simple_decoder',
- 'type': 'executable',
- 'dependencies': [
- 'libvpx',
- ],
-
- # Copy the script to the output folder so that we can use it with
- # absolute path.
- 'copies': [{
- 'destination': '<(shared_generated_dir)/simple_decoder',
- 'files': [
- 'source/libvpx/examples/gen_example_code.sh',
- ],
- }],
-
- # Rule to convert .txt files to .c files.
- 'rules': [
- {
- 'rule_name': 'generate_example',
- 'extension': 'txt',
- 'inputs': [ '<(shared_generated_dir)/simple_decoder/gen_example_code.sh', ],
- 'outputs': [
- '<(shared_generated_dir)/<(RULE_INPUT_ROOT).c',
- ],
- 'action': [
- 'bash',
- '-c',
- '<(shared_generated_dir)/simple_decoder/gen_example_code.sh <(RULE_INPUT_PATH) > <(shared_generated_dir)/<(RULE_INPUT_ROOT).c',
- ],
- 'process_outputs_as_sources': 1,
- 'message': 'Generate libvpx example code <(RULE_INPUT_PATH).',
- },
- ],
- 'sources': [
- 'source/libvpx/examples/simple_decoder.txt',
- ]
- },
+ }],
],
}
« no previous file with comments | « libvpx.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698