Home | History | Annotate | Download | only in files
      1 # Copyright 2011 The LibYuv Project Authors. All rights reserved.
      2 #
      3 # Use of this source code is governed by a BSD-style license
      4 # that can be found in the LICENSE file in the root of the source
      5 # tree. An additional intellectual property rights grant can be found
      6 # in the file PATENTS. All contributing project authors may
      7 # be found in the AUTHORS file in the root of the source tree.
      8 
      9 {
     10   'variables': {
     11     'libyuv_disable_jpeg%': 0,
     12   },
     13   'targets': [
     14     {
     15       'target_name': 'libyuv_unittest',
     16       'type': '<(gtest_target_type)',
     17       'dependencies': [
     18         'libyuv.gyp:libyuv',
     19         'testing/gtest.gyp:gtest',
     20         'third_party/gflags/gflags.gyp:gflags',
     21       ],
     22       'direct_dependent_settings': {
     23         'defines': [
     24           'GTEST_RELATIVE_PATH',
     25         ],
     26       },
     27       'export_dependent_settings': [
     28         '<(DEPTH)/testing/gtest.gyp:gtest',
     29       ],
     30       'sources': [
     31         # headers
     32         'unit_test/unit_test.h',
     33 
     34         # sources
     35         'unit_test/basictypes_test.cc',
     36         'unit_test/compare_test.cc',
     37         'unit_test/color_test.cc',
     38         'unit_test/convert_test.cc',
     39         'unit_test/cpu_test.cc',
     40         'unit_test/math_test.cc',
     41         'unit_test/planar_test.cc',
     42         'unit_test/rotate_argb_test.cc',
     43         'unit_test/rotate_test.cc',
     44         'unit_test/scale_argb_test.cc',
     45         'unit_test/scale_test.cc',
     46         'unit_test/unit_test.cc',
     47         'unit_test/video_common_test.cc',
     48       ],
     49       'conditions': [
     50         ['OS=="linux"', {
     51           'cflags': [
     52             '-fexceptions',
     53           ],
     54         }],
     55         [ 'OS == "ios" and target_subarch == 64', {
     56           'defines': [
     57             'LIBYUV_DISABLE_NEON'
     58           ],
     59         }],
     60         [ 'OS == "ios"', {
     61           'xcode_settings': {
     62             'DEBUGGING_SYMBOLS': 'YES',
     63             'DEBUG_INFORMATION_FORMAT' : 'dwarf-with-dsym',
     64             # Work around compile issue with isosim.mm, see
     65             # https://code.google.com/p/libyuv/issues/detail?id=548 for details.
     66             'WARNING_CFLAGS': [
     67               '-Wno-sometimes-uninitialized',
     68             ],
     69           },
     70           'cflags': [
     71             '-Wno-sometimes-uninitialized',
     72           ],
     73         }],
     74         [ 'OS != "ios" and libyuv_disable_jpeg != 1', {
     75           'defines': [
     76             'HAVE_JPEG',
     77           ],
     78         }],
     79         ['OS=="android"', {
     80           'dependencies': [
     81             '<(DEPTH)/testing/android/native_test.gyp:native_test_native_code',
     82           ],
     83         }],
     84         # TODO(YangZhang): These lines can be removed when high accuracy
     85         # YUV to RGB to Neon is ported.
     86         [ '(target_arch == "armv7" or target_arch == "armv7s" \
     87           or (target_arch == "arm" and arm_version >= 7) \
     88           or target_arch == "arm64") \
     89           and (arm_neon == 1 or arm_neon_optional == 1)', {
     90           'defines': [
     91             'LIBYUV_NEON'
     92           ],
     93         }],
     94       ], # conditions
     95       'defines': [
     96         # Enable the following 3 macros to turn off assembly for specified CPU.
     97         # 'LIBYUV_DISABLE_X86',
     98         # 'LIBYUV_DISABLE_NEON',
     99         # 'LIBYUV_DISABLE_MIPS',
    100         # Enable the following macro to build libyuv as a shared library (dll).
    101         # 'LIBYUV_USING_SHARED_LIBRARY',
    102       ],
    103     },
    104     {
    105       'target_name': 'compare',
    106       'type': 'executable',
    107       'dependencies': [
    108         'libyuv.gyp:libyuv',
    109       ],
    110       'sources': [
    111         # sources
    112         'util/compare.cc',
    113       ],
    114       'conditions': [
    115         ['OS=="linux"', {
    116           'cflags': [
    117             '-fexceptions',
    118           ],
    119         }],
    120       ], # conditions
    121     },
    122     {
    123       'target_name': 'convert',
    124       'type': 'executable',
    125       'dependencies': [
    126         'libyuv.gyp:libyuv',
    127       ],
    128       'sources': [
    129         # sources
    130         'util/convert.cc',
    131       ],
    132       'conditions': [
    133         ['OS=="linux"', {
    134           'cflags': [
    135             '-fexceptions',
    136           ],
    137         }],
    138       ], # conditions
    139     },
    140     # TODO(fbarchard): Enable SSE2 and OpenMP for better performance.
    141     {
    142       'target_name': 'psnr',
    143       'type': 'executable',
    144       'sources': [
    145         # sources
    146         'util/psnr_main.cc',
    147         'util/psnr.cc',
    148         'util/ssim.cc',
    149       ],
    150       'dependencies': [
    151         'libyuv.gyp:libyuv',
    152       ],
    153       'conditions': [
    154         [ 'OS == "ios" and target_subarch == 64', {
    155           'defines': [
    156             'LIBYUV_DISABLE_NEON'
    157           ],
    158         }],
    159 
    160         [ 'OS != "ios" and libyuv_disable_jpeg != 1', {
    161           'defines': [
    162             'HAVE_JPEG',
    163           ],
    164         }],
    165       ], # conditions
    166     },
    167 
    168     {
    169       'target_name': 'cpuid',
    170       'type': 'executable',
    171       'sources': [
    172         # sources
    173         'util/cpuid.c',
    174       ],
    175       'dependencies': [
    176         'libyuv.gyp:libyuv',
    177       ],
    178     },
    179   ], # targets
    180   'conditions': [
    181     ['OS=="android"', {
    182       'targets': [
    183         {
    184           # TODO(kjellander): Figure out what to change in build/apk_test.gypi
    185           # to it can be used instead of the copied code below. Using it in its
    186           # current version was not possible, since the target starts with 'lib',
    187           # which somewhere confuses the variables.
    188           'target_name': 'libyuv_unittest_apk',
    189           'type': 'none',
    190           'variables': {
    191             # These are used to configure java_apk.gypi included below.
    192             'test_type': 'gtest',
    193             'apk_name': 'libyuv_unittest',
    194             'test_suite_name': 'libyuv_unittest',
    195             'intermediate_dir': '<(PRODUCT_DIR)/libyuv_unittest_apk',
    196             'input_shlib_path': '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)libyuv_unittest<(SHARED_LIB_SUFFIX)',
    197             'final_apk_path': '<(intermediate_dir)/libyuv_unittest-debug.apk',
    198             'java_in_dir': '<(DEPTH)/testing/android/native_test/java',
    199             'test_runner_path': '<(DEPTH)/util/android/test_runner.py',
    200             'native_lib_target': 'libyuv_unittest',
    201             'gyp_managed_install': 0,
    202           },
    203           'includes': [
    204             'build/android/test_runner.gypi',
    205             'build/java_apk.gypi',
    206            ],
    207           'dependencies': [
    208             '<(DEPTH)/base/base.gyp:base_java',
    209             # TODO(kjellander): Figure out why base_build_config_gen is needed
    210             # here. It really shouldn't since it's a dependency of base_java
    211             # above, but there's always 0 tests run if it's missing.
    212             '<(DEPTH)/base/base.gyp:base_build_config_gen',
    213             '<(DEPTH)/build/android/pylib/device/commands/commands.gyp:chromium_commands',
    214             '<(DEPTH)/build/android/pylib/remote/device/dummy/dummy.gyp:remote_device_dummy_apk',
    215             '<(DEPTH)/testing/android/appurify_support.gyp:appurify_support_java',
    216             '<(DEPTH)/testing/android/on_device_instrumentation.gyp:reporter_java',
    217             '<(DEPTH)/tools/android/android_tools.gyp:android_tools',
    218             'libyuv_unittest',
    219           ],
    220         },
    221       ],
    222     }],
    223   ],
    224 }
    225 
    226 # Local Variables:
    227 # tab-width:2
    228 # indent-tabs-mode:nil
    229 # End:
    230 # vim: set expandtab tabstop=2 shiftwidth=2:
    231