Refactor the GYP file for libjpeg-turbo.
This change cleans up the GYP file for libjpeg-turbo so we can directly build asm files in its 'libjpeg' target. (We can now do this because GYP Issue 102 is fixed.) Also, this change adds a 'RGBX_FILLER_OXFF' flag so libjpeg-turbo can produce the RGBA pixels compatible to Chrome/WebKit, i.e. we can remove the memory copy in gfx::JPEGCodec::Decode().
BUG=none
TEST=build Chromium without errors when 'use_libjpeg_turbo' is 1.
Review URL: http://codereview.chromium.org/6260004
git-svn-id: http://src.chromium.org/svn/trunk/deps/third_party/libjpeg_turbo@71642 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
diff --git a/libjpeg.gyp b/libjpeg.gyp
index 7bdd9c6..c1e687a 100644
--- a/libjpeg.gyp
+++ b/libjpeg.gyp
@@ -1,4 +1,4 @@
-# Copyright (c) 2010 The Chromium Authors. All rights reserved.
+# Copyright (c) 2011 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.
@@ -6,7 +6,7 @@
'variables': {
'shared_generated_dir': '<(SHARED_INTERMEDIATE_DIR)/third_party/libjpeg_turbo',
'conditions': [
- ['chromeos==1 or OS=="freebsd" or OS=="openbsd"', {
+ [ 'chromeos==1 or OS=="freebsd" or OS=="openbsd"', {
# Link to system .so since we already use it due to GTK.
# See crbug.com/30288 and 31427 for why we skip OS=="linux" above.
'use_system_libjpeg%': 1,
@@ -32,9 +32,6 @@
'defines': [
'WITH_SIMD',
],
- 'dependencies': [
- 'libjpeg_asm',
- ],
'sources': [
'jconfig.h',
'jpeglib.h',
@@ -104,71 +101,6 @@
[ 'target_arch=="ia32"', {
'sources': [
'simd/jsimd_i386.c',
- # Object files assembled by the 'libjpeg_asm' project.
- '<(shared_generated_dir)/jsimdcpu.<(object_suffix)',
- '<(shared_generated_dir)/jccolmmx.<(object_suffix)',
- '<(shared_generated_dir)/jdcolmmx.<(object_suffix)',
- '<(shared_generated_dir)/jcsammmx.<(object_suffix)',
- '<(shared_generated_dir)/jdsammmx.<(object_suffix)',
- '<(shared_generated_dir)/jdmermmx.<(object_suffix)',
- '<(shared_generated_dir)/jcqntmmx.<(object_suffix)',
- '<(shared_generated_dir)/jfmmxfst.<(object_suffix)',
- '<(shared_generated_dir)/jfmmxint.<(object_suffix)',
- '<(shared_generated_dir)/jimmxred.<(object_suffix)',
- '<(shared_generated_dir)/jimmxint.<(object_suffix)',
- '<(shared_generated_dir)/jimmxfst.<(object_suffix)',
- '<(shared_generated_dir)/jcqnt3dn.<(object_suffix)',
- '<(shared_generated_dir)/jf3dnflt.<(object_suffix)',
- '<(shared_generated_dir)/ji3dnflt.<(object_suffix)',
- '<(shared_generated_dir)/jcqntsse.<(object_suffix)',
- '<(shared_generated_dir)/jfsseflt.<(object_suffix)',
- '<(shared_generated_dir)/jisseflt.<(object_suffix)',
- '<(shared_generated_dir)/jccolss2.<(object_suffix)',
- '<(shared_generated_dir)/jdcolss2.<(object_suffix)',
- '<(shared_generated_dir)/jcsamss2.<(object_suffix)',
- '<(shared_generated_dir)/jdsamss2.<(object_suffix)',
- '<(shared_generated_dir)/jdmerss2.<(object_suffix)',
- '<(shared_generated_dir)/jcqnts2i.<(object_suffix)',
- '<(shared_generated_dir)/jfss2fst.<(object_suffix)',
- '<(shared_generated_dir)/jfss2int.<(object_suffix)',
- '<(shared_generated_dir)/jiss2red.<(object_suffix)',
- '<(shared_generated_dir)/jiss2int.<(object_suffix)',
- '<(shared_generated_dir)/jiss2fst.<(object_suffix)',
- '<(shared_generated_dir)/jcqnts2f.<(object_suffix)',
- '<(shared_generated_dir)/jiss2flt.<(object_suffix)',
- ],
- }],
- [ 'target_arch=="x64"', {
- 'sources': [
- 'simd/jsimd_x86_64.c',
- # Object files assembled by the 'libjpeg_asm' project.
- '<(shared_generated_dir)/jfsseflt-64.<(object_suffix)',
- '<(shared_generated_dir)/jccolss2-64.<(object_suffix)',
- '<(shared_generated_dir)/jdcolss2-64.<(object_suffix)',
- '<(shared_generated_dir)/jcsamss2-64.<(object_suffix)',
- '<(shared_generated_dir)/jdsamss2-64.<(object_suffix)',
- '<(shared_generated_dir)/jdmerss2-64.<(object_suffix)',
- '<(shared_generated_dir)/jcqnts2i-64.<(object_suffix)',
- '<(shared_generated_dir)/jfss2fst-64.<(object_suffix)',
- '<(shared_generated_dir)/jfss2int-64.<(object_suffix)',
- '<(shared_generated_dir)/jiss2red-64.<(object_suffix)',
- '<(shared_generated_dir)/jiss2int-64.<(object_suffix)',
- '<(shared_generated_dir)/jiss2fst-64.<(object_suffix)',
- '<(shared_generated_dir)/jcqnts2f-64.<(object_suffix)',
- '<(shared_generated_dir)/jiss2flt-64.<(object_suffix)',
- ],
- }],
- ],
- },
- {
- # A project that assembles asm files and creates object files.
- 'target_name': 'libjpeg_asm',
- 'type': 'none',
- 'conditions': [
- # Add platform-dependent source files.
- [ 'target_arch=="ia32"', {
- 'sources': [
- # The asm files for ia32.
'simd/jsimdcpu.asm',
'simd/jccolmmx.asm',
'simd/jdcolmmx.asm',
@@ -204,7 +136,7 @@
}],
[ 'target_arch=="x64"', {
'sources': [
- # The asm files for x64.
+ 'simd/jsimd_x86_64.c',
'simd/jfsseflt-64.asm',
'simd/jccolss2-64.asm',
'simd/jdcolss2-64.asm',
@@ -233,7 +165,7 @@
{
'rule_name': 'assemble',
'extension': 'asm',
- 'inputs': [ '<(yasm_path)', ],
+ 'inputs': [ '<(RULE_INPUT_PATH)', ],
'outputs': [
'<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_suffix)',
],
@@ -242,12 +174,13 @@
'-fwin32',
'-DWIN32',
'-DMSVC',
+ '-DRGBX_FILLER_0XFF',
'-Iwin/',
'-Isimd/',
'-o', '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_suffix)',
'<(RULE_INPUT_PATH)',
],
- 'process_outputs_as_sources': 0,
+ 'process_outputs_as_sources': 1,
'message': 'Building <(RULE_INPUT_ROOT).<(object_suffix)',
},
],
@@ -271,12 +204,13 @@
'<(yasm_path)',
'-fmacho',
'-DMACHO',
+ '-DRGBX_FILLER_0XFF',
'-Imac/',
'-Isimd/',
'-o', '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_suffix)',
'<(RULE_INPUT_PATH)',
],
- 'process_outputs_as_sources': 0,
+ 'process_outputs_as_sources': 1,
'message': 'Building <(RULE_INPUT_ROOT).<(object_suffix)',
},
],
@@ -301,7 +235,7 @@
{
'rule_name': 'assemble',
'extension': 'asm',
- 'inputs': [ '<(yasm_path)', ],
+ 'inputs': [ '<(RULE_INPUT_PATH)', ],
'outputs': [
'<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_suffix)',
],
@@ -310,12 +244,13 @@
'<(yasm_format)',
'-DELF',
'<(yasm_flag)',
+ '-DRGBX_FILLER_0XFF',
'-Ilinux/',
'-Isimd/',
'-o', '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_suffix)',
'<(RULE_INPUT_PATH)',
],
- 'process_outputs_as_sources': 0,
+ 'process_outputs_as_sources': 1,
'message': 'Building <(RULE_INPUT_ROOT).<(object_suffix)',
},
],