Chromium Code Reviews| Index: gyp/libjpeg-turbo.gyp |
| diff --git a/gyp/libjpeg-turbo.gyp b/gyp/libjpeg-turbo.gyp |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..15d39e6bd139b2215d33020fe8b41a0e37da0288 |
| --- /dev/null |
| +++ b/gyp/libjpeg-turbo.gyp |
| @@ -0,0 +1,298 @@ |
| +# Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| +# Use of this source code is governed by a BSD-style license that can be |
| +# found in the LICENSE file. |
| + |
| +{ |
| + 'variables': { |
| + 'shared_generated_dir': '<(SHARED_INTERMEDIATE_DIR)/third_party/libjpeg-turbo', |
| + 'conditions': [ |
| + [ 'skia_os == "win"', { |
| + 'object_suffix': 'obj', |
| + }, { |
| + 'object_suffix': 'o', |
| + }], |
| + ], |
| + }, |
| + 'targets': [ |
| + { |
| + 'target_name': 'libjpeg-turbo', |
| + 'type': 'static_library', |
| + 'include_dirs': [ |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/', |
| + ], |
| + 'defines': [ |
| + 'WITH_SIMD', |
| + 'MOTION_JPEG_SUPPORTED', |
| + 'NO_GETENV', |
| + ], |
| + 'cflags': [ |
| + '-w', # supresses warnings |
| + ], |
| + 'sources': [ |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jaricom.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcapimin.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcapistd.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcarith.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jccoefct.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jccolor.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcdctmgr.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jchuff.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jchuff.h', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcinit.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcmainct.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcmarker.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcmaster.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcomapi.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jconfig.h', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jconfigint.h', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcparam.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcphuff.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcprepct.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcsample.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdapimin.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdapistd.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdarith.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdcoefct.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdcolor.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdct.h', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jddctmgr.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdhuff.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdhuff.h', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdinput.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdmainct.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdmarker.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdmaster.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdmerge.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdphuff.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdpostct.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdsample.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jerror.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jerror.h', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jfdctflt.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jfdctfst.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jfdctint.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jidctflt.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jidctfst.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jidctint.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jidctred.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jinclude.h', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jmemmgr.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jmemnobs.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jmemsys.h', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jmorecfg.h', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jpegint.h', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jpeglib.h', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jpeglibmangler.h', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jquant1.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jquant2.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jutils.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jversion.h', |
| + ], |
| + 'direct_dependent_settings': { |
| + 'include_dirs': [ |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/', |
| + ], |
| + }, |
| + 'msvs_disabled_warnings': [4018, 4101], |
| + # 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, |
| + |
| + # Add target-specific source files. |
| + 'conditions': [ |
| + [ 'skia_arch_type == "x86"', { |
| + 'sources': [ |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jsimd_i386.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jccolor-mmx.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jccolor-sse2.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jcgray-mmx.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jcgray-sse2.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jcsample-mmx.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jcsample-sse2.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jdcolor-mmx.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jdcolor-sse2.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jdmerge-mmx.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jdmerge-sse2.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jdsample-mmx.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jdsample-sse2.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jfdctflt-3dn.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jfdctflt-sse.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jfdctfst-mmx.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jfdctfst-sse2.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jfdctint-mmx.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jfdctint-sse2.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctflt-3dn.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctflt-sse2.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctflt-sse.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctfst-mmx.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctfst-sse2.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctint-mmx.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctint-sse2.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctred-mmx.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctred-sse2.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jquant-3dn.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jquantf-sse2.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jquanti-sse2.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jquant-mmx.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jquant-sse.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jsimdcpu.asm', |
| + ], |
| + }], |
| + [ 'skia_arch_type == "x86_64"', { |
| + 'sources': [ |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jsimd_x86_64.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jccolor-sse2-64.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jcgray-sse2-64.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jcsample-sse2-64.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jdcolor-sse2-64.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jdmerge-sse2-64.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jdsample-sse2-64.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jfdctflt-sse-64.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jfdctfst-sse2-64.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jfdctint-sse2-64.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctflt-sse2-64.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctfst-sse2-64.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctint-sse2-64.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctred-sse2-64.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jquantf-sse2-64.asm', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jquanti-sse2-64.asm', |
| + ], |
| + }], |
| + [ 'skia_arch_type == "arm"', { |
| + 'conditions': [ |
| + [ 'arm_version >= 7 and (arm_neon == 1 or arm_neon_optional == 1)', { |
| + 'sources': [ |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jsimd_arm.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jsimd_arm_neon.S', |
| + ], |
| + }, { |
| + 'sources': [ |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/jsimd_none.c', |
| + ], |
| + }] |
| + ], |
| + }], |
| + [ 'skia_arch_type == "arm64"', { |
| + 'sources': [ |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jsimd_arm64.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jsimd_arm64_neon.S', |
| + ], |
| + }], |
| + [ 'skia_arch_type == "mips"', { |
| + 'sources': [ |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jsimd_mips.c', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jsimd_mips_dspr2_asm.h', |
| + '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jsimd_mips_dspr2.S', |
| + ], |
| + }], |
| + |
| + # Build rules for an asm file. |
|
scroggo
2015/06/23 15:05:51
This is messy... Is this the way Chromium does it?
msarett
2015/06/23 17:47:43
Yes this is messy - it's been quite frustrating.
|
| + # On Windows, we use the precompiled yasm binary. |
| + # On Linux, we build our patched yasm and use it except when use_system_yasm is 1. |
| + # On Mac, we always build our patched yasm and use it. |
| + [ 'skia_os == "win"', { |
| + 'variables': { |
| + 'yasm_path': '../third_party/externals/yasm/binaries/win/yasm.exe', |
| + 'conditions': [ |
| + [ 'skia_arch_type == "x86"', { |
| + 'yasm_format': '-fwin32', |
| + 'yasm_flags': [ |
| + '-D__x86__', |
| + '-DWIN32', |
| + '-DMSVC', |
| + '-Iwin/' |
| + ], |
| + }, { |
| + 'yasm_format': '-fwin64', |
| + 'yasm_flags': [ |
| + '-D__x86_64__', |
| + '-DWIN64', |
| + '-DMSVC', |
| + '-Iwin/' |
| + ], |
| + }], |
| + ], |
| + }, |
| + }], |
| + [ 'skia_os == "mac" or skia_os == "ios"', { |
| + 'dependencies': [ |
| + 'yasm.gyp:yasm#host', |
| + ], |
| + 'variables': { |
| + 'yasm_path': '<(PRODUCT_DIR)/yasm', |
| + 'conditions': [ |
| + [ 'skia_arch_type == "x86"', { |
| + 'yasm_format': '-fmacho', |
| + 'yasm_flags': [ |
| + '-D__x86__', |
| + '-DMACHO', |
| + '-Imac/' |
| + ], |
| + }, { |
| + 'yasm_format': '-fmacho64', |
| + 'yasm_flags': [ |
| + '-D__x86_64__', |
| + '-DMACHO', |
| + '-Imac/' |
| + ], |
| + }], |
| + ], |
| + }, |
| + }], |
| + [ 'skia_os == "linux" or skia_os == "freebsd" or \ |
| + (skia_os == "android" and (skia_arch_type == "x86" or skia_arch_type == "x86_64"))', { |
| + 'dependencies': [ |
| + 'yasm.gyp:yasm#host', |
| + ], |
| + 'variables': { |
| + 'yasm_path': '<(PRODUCT_DIR)/yasm', |
| + 'conditions': [ |
| + [ 'skia_arch_type == "x86"', { |
| + 'yasm_format': '-felf', |
| + 'yasm_flags': [ |
| + '-D__x86__', |
| + '-DELF', |
| + '-Ilinux/' |
| + ], |
| + }, { |
| + 'yasm_format': '-felf64', |
| + 'yasm_flags': [ |
| + '-D__x86_64__', |
| + '-DELF', |
| + '-Ilinux/' |
| + ], |
| + }], |
| + ], |
| + }, |
| + }], |
| + ], |
| + 'rules': [ |
| + { |
| + 'rule_name': 'assemble', |
| + 'extension': 'asm', |
| + 'conditions': [ |
| + [ 'skia_arch_type == "x86" or skia_arch_type == "x86_64"', { |
| + 'inputs': [ '<(yasm_path)', ], |
| + 'outputs': [ |
| + '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_suffix)', |
| + ], |
| + 'action': [ |
| + '<(yasm_path)', |
| + '<(yasm_format)', |
| + '<@(yasm_flags)', |
| + '-DRGBX_FILLER_0XFF', |
| + '-DSTRICT_MEMORY_ACCESS', |
| + '-Isimd/', |
| + '-o', '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_suffix)', |
| + '<(RULE_INPUT_PATH)', |
| + ], |
| + 'process_outputs_as_sources': 1, |
| + 'message': 'Building <(RULE_INPUT_ROOT).<(object_suffix)', |
| + }], |
| + ] |
| + }, |
| + ], |
| + }, |
| + ], |
| +} |