# 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.

{
  'variables': {
    'shared_generated_dir': '<(SHARED_INTERMEDIATE_DIR)/third_party/libjpeg_turbo',
    'conditions': [
      [ '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,
      }, {  # chromeos!=1 and OS!="freebsd" and OS!="openbsd"
        'use_system_libjpeg%': 0,
      }],
      [ 'OS=="win"', {
        'object_suffix': 'obj',
      }, {
        'object_suffix': 'o',
      }],
    ],

    'use_system_yasm%': 0,
  },
  'conditions': [
    [ 'use_system_libjpeg==0', {
      'targets': [
        {
          'target_name': 'libjpeg',
          'type': '<(library)',
          'include_dirs': [
            '.',
          ],
          'defines': [
            'WITH_SIMD', 'MOTION_JPEG_SUPPORTED',
          ],
          'sources': [
            'jaricom.c',
            'jcapimin.c',
            'jcapistd.c',
            'jcarith.c',
            'jccoefct.c',
            'jccolor.c',
            'jcdctmgr.c',
            'jchuff.c',
            'jchuff.h',
            'jcinit.c',
            'jcmainct.c',
            'jcmarker.c',
            'jcmaster.c',
            'jcomapi.c',
            'jconfig.h',
            'jcparam.c',
            'jcphuff.c',
            'jcprepct.c',
            'jcsample.c',
            'jdapimin.c',
            'jdapistd.c',
            'jdarith.c',
            'jdatadst.c',
            'jdatasrc.c',
            'jdcoefct.c',
            'jdcolor.c',
            'jdct.h',
            'jddctmgr.c',
            'jdhuff.c',
            'jdhuff.h',
            'jdinput.c',
            'jdmainct.c',
            'jdmarker.c',
            'jdmaster.c',
            'jdmerge.c',
            'jdphuff.c',
            'jdpostct.c',
            'jdsample.c',
            'jerror.c',
            'jerror.h',
            'jfdctflt.c',
            'jfdctfst.c',
            'jfdctint.c',
            'jidctflt.c',
            'jidctfst.c',
            'jidctint.c',
            'jidctred.c',
            'jinclude.h',
            'jmemmgr.c',
            'jmemnobs.c',
            'jmemsys.h',
            'jmorecfg.h',
            'jpegint.h',
            'jpeglib.h',
            'jpeglibmangler.h',
            'jquant1.c',
            'jquant2.c',
            'jutils.c',
            'jversion.h',
          ],
          'direct_dependent_settings': {
            'include_dirs': [
              '.',
            ],
          },
          'msvs_disabled_warnings': [4018, 4101],
          'conditions': [
            [ 'OS!="win"', {'product_name': 'jpeg_turbo'}],
            # Add target-specific source files.
            [ 'target_arch=="ia32"', {
              'sources': [
                'simd/jsimd_i386.c',
                'simd/jccolmmx.asm',
                'simd/jccolss2.asm',
                'simd/jcgrammx.asm',
                'simd/jcgrass2.asm',
                'simd/jcqnt3dn.asm',
                'simd/jcqntmmx.asm',
                'simd/jcqnts2f.asm',
                'simd/jcqnts2i.asm',
                'simd/jcqntsse.asm',
                'simd/jcsammmx.asm',
                'simd/jcsamss2.asm',
                'simd/jdcolmmx.asm',
                'simd/jdcolss2.asm',
                'simd/jdmermmx.asm',
                'simd/jdmerss2.asm',
                'simd/jdsammmx.asm',
                'simd/jdsamss2.asm',
                'simd/jf3dnflt.asm',
                'simd/jfmmxfst.asm',
                'simd/jfmmxint.asm',
                'simd/jfss2fst.asm',
                'simd/jfss2int.asm',
                'simd/jfsseflt.asm',
                'simd/ji3dnflt.asm',
                'simd/jimmxfst.asm',
                'simd/jimmxint.asm',
                'simd/jimmxred.asm',
                'simd/jiss2flt.asm',
                'simd/jiss2fst.asm',
                'simd/jiss2int.asm',
                'simd/jiss2red.asm',
                'simd/jisseflt.asm',
                'simd/jsimdcpu.asm',
              ],
            }],
            [ 'target_arch=="x64"', {
              'sources': [
                'simd/jsimd_x86_64.c',
                'simd/jccolss2-64.asm',
                'simd/jcgrass2-64.asm',
                'simd/jcqnts2f-64.asm',
                'simd/jcqnts2i-64.asm',
                'simd/jcsamss2-64.asm',
                'simd/jdcolss2-64.asm',
                'simd/jdmerss2-64.asm',
                'simd/jdsamss2-64.asm',
                'simd/jfss2fst-64.asm',
                'simd/jfss2int-64.asm',
                'simd/jfsseflt-64.asm',
                'simd/jiss2flt-64.asm',
                'simd/jiss2fst-64.asm',
                'simd/jiss2int-64.asm',
                'simd/jiss2red-64.asm',
              ],
            }],
            [ 'target_arch=="arm"', {
              'sources': [
                'simd/jsimd_arm.c',
                'simd/jsimd_arm_neon.S',
              ],
            }],

            # Build rules for an asm file.
            # 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 because of
            # <http://www.tortall.net/projects/yasm/ticket/236>.
            [ 'OS=="win"', {
              'variables': {
                'yasm_path': '../yasm/binaries/win/yasm<(EXECUTABLE_SUFFIX)',
                'yasm_format': '-fwin32',
                'yasm_flags': [
                  '-DWIN32',
                  '-DMSVC',
                  '-Iwin/'
                ],
              },
            }],
            [ 'OS=="mac"', {
              'dependencies': [
                '../yasm/yasm.gyp:yasm#host',
              ],
              'variables': {
                'yasm_path': '<(PRODUCT_DIR)/yasm',
                'yasm_format': '-fmacho',
                'yasm_flags': [
                  '-DMACHO',
                  '-Imac/'
                ],
              },
            }],
            [ 'OS=="linux"', {
              'conditions': [
                [ 'use_system_yasm==0', {
                  'dependencies': [
                    '../yasm/yasm.gyp:yasm#host',
                  ],
                }],
              ],
              'variables': {
                'conditions': [
                  [ 'use_system_yasm==1', {
                    'yasm_path': '<!(which yasm)',
                  }, {
                    'yasm_path': '<(PRODUCT_DIR)/yasm',
                  }],
                  [ 'target_arch=="ia32"', {
                    'yasm_format': '-felf',
                    'yasm_flag': '-D__X86__',
                    'yasm_flags': [
                      '-D__x86__',
                      '-DELF',
                      '-Ilinux/'
                    ],
                  }, {
                    'yasm_format': '-felf64',
                    'yasm_flag': '-D__x86_64__',
                    'yasm_flags': [
                      '-D__x86_64__',
                      '-DELF',
                      '-Ilinux/'
                    ],
                  }],
                ],
              },
            }],
          ],
          'rules': [
            {
              'rule_name': 'assemble',
              'extension': 'asm',
              '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)',
            },
          ],
        },
      ],
    }, { # else: use_system_libjpeg != 0
      'targets': [
        {
          'target_name': 'libjpeg',
          'type': 'settings',
          'direct_dependent_settings': {
            'defines': [
              'USE_SYSTEM_LIBJPEG',
            ],
          },
          'link_settings': {
            'libraries': [
              '-ljpeg',
            ],
          },
        },
      ],
    }],
  ],
}

# Local Variables:
# tab-width:2
# indent-tabs-mode:nil
# End:
# vim: set expandtab tabstop=2 shiftwidth=2:
