1*4e366538SXin Li# Copyright 2011 The LibYuv Project Authors. All rights reserved. 2*4e366538SXin Li# 3*4e366538SXin Li# Use of this source code is governed by a BSD-style license 4*4e366538SXin Li# that can be found in the LICENSE file in the root of the source 5*4e366538SXin Li# tree. An additional intellectual property rights grant can be found 6*4e366538SXin Li# in the file PATENTS. All contributing project authors may 7*4e366538SXin Li# be found in the AUTHORS file in the root of the source tree. 8*4e366538SXin Li 9*4e366538SXin Li{ 10*4e366538SXin Li 'includes': [ 11*4e366538SXin Li 'libyuv.gypi', 12*4e366538SXin Li ], 13*4e366538SXin Li # Make sure that if we are being compiled to an xcodeproj, nothing tries to 14*4e366538SXin Li # include a .pch. 15*4e366538SXin Li 'xcode_settings': { 16*4e366538SXin Li 'GCC_PREFIX_HEADER': '', 17*4e366538SXin Li 'GCC_PRECOMPILE_PREFIX_HEADER': 'NO', 18*4e366538SXin Li }, 19*4e366538SXin Li 'variables': { 20*4e366538SXin Li 'use_system_libjpeg%': 0, 21*4e366538SXin Li # Can be enabled if your jpeg has GYP support. 22*4e366538SXin Li 'libyuv_disable_jpeg%': 1, 23*4e366538SXin Li # 'chromium_code' treats libyuv as internal and increases warning level. 24*4e366538SXin Li 'chromium_code': 1, 25*4e366538SXin Li # clang compiler default variable usable by other apps that include libyuv. 26*4e366538SXin Li 'clang%': 0, 27*4e366538SXin Li # Link-Time Optimizations. 28*4e366538SXin Li 'use_lto%': 0, 29*4e366538SXin Li 'mips_msa%': 0, # Default to msa off. 30*4e366538SXin Li 'build_neon': 0, 31*4e366538SXin Li 'build_msa': 0, 32*4e366538SXin Li 'conditions': [ 33*4e366538SXin Li ['(target_arch == "armv7" or target_arch == "armv7s" or \ 34*4e366538SXin Li (target_arch == "arm" and arm_version >= 7) or target_arch == "arm64")\ 35*4e366538SXin Li and (arm_neon == 1 or arm_neon_optional == 1)', { 36*4e366538SXin Li 'build_neon': 1, 37*4e366538SXin Li }], 38*4e366538SXin Li ['(target_arch == "mipsel" or target_arch == "mips64el")\ 39*4e366538SXin Li and (mips_msa == 1)', 40*4e366538SXin Li { 41*4e366538SXin Li 'build_msa': 1, 42*4e366538SXin Li }], 43*4e366538SXin Li ], 44*4e366538SXin Li }, 45*4e366538SXin Li 46*4e366538SXin Li 'targets': [ 47*4e366538SXin Li { 48*4e366538SXin Li 'target_name': 'libyuv', 49*4e366538SXin Li # Change type to 'shared_library' to build .so or .dll files. 50*4e366538SXin Li 'type': 'static_library', 51*4e366538SXin Li 'variables': { 52*4e366538SXin Li 'optimize': 'max', # enable O2 and ltcg. 53*4e366538SXin Li }, 54*4e366538SXin Li # Allows libyuv.a redistributable library without external dependencies. 55*4e366538SXin Li 'standalone_static_library': 1, 56*4e366538SXin Li 'conditions': [ 57*4e366538SXin Li # Disable -Wunused-parameter 58*4e366538SXin Li ['clang == 1', { 59*4e366538SXin Li 'cflags': [ 60*4e366538SXin Li '-Wno-unused-parameter', 61*4e366538SXin Li ], 62*4e366538SXin Li }], 63*4e366538SXin Li ['build_neon != 0', { 64*4e366538SXin Li 'defines': [ 65*4e366538SXin Li 'LIBYUV_NEON', 66*4e366538SXin Li ], 67*4e366538SXin Li 'cflags!': [ 68*4e366538SXin Li '-mfpu=vfp', 69*4e366538SXin Li '-mfpu=vfpv3', 70*4e366538SXin Li '-mfpu=vfpv3-d16', 71*4e366538SXin Li # '-mthumb', # arm32 not thumb 72*4e366538SXin Li ], 73*4e366538SXin Li 'conditions': [ 74*4e366538SXin Li # Disable LTO in libyuv_neon target due to gcc 4.9 compiler bug. 75*4e366538SXin Li ['clang == 0 and use_lto == 1', { 76*4e366538SXin Li 'cflags!': [ 77*4e366538SXin Li '-flto', 78*4e366538SXin Li '-ffat-lto-objects', 79*4e366538SXin Li ], 80*4e366538SXin Li }], 81*4e366538SXin Li # arm64 does not need -mfpu=neon option as neon is not optional 82*4e366538SXin Li ['target_arch != "arm64"', { 83*4e366538SXin Li 'cflags': [ 84*4e366538SXin Li '-mfpu=neon', 85*4e366538SXin Li # '-marm', # arm32 not thumb 86*4e366538SXin Li ], 87*4e366538SXin Li }], 88*4e366538SXin Li ], 89*4e366538SXin Li }], 90*4e366538SXin Li ['build_msa != 0', { 91*4e366538SXin Li 'defines': [ 92*4e366538SXin Li 'LIBYUV_MSA', 93*4e366538SXin Li ], 94*4e366538SXin Li }], 95*4e366538SXin Li ['OS != "ios" and libyuv_disable_jpeg != 1', { 96*4e366538SXin Li 'defines': [ 97*4e366538SXin Li 'HAVE_JPEG' 98*4e366538SXin Li ], 99*4e366538SXin Li 'conditions': [ 100*4e366538SXin Li # Caveat system jpeg support may not support motion jpeg 101*4e366538SXin Li [ 'use_system_libjpeg == 1', { 102*4e366538SXin Li 'dependencies': [ 103*4e366538SXin Li '<(DEPTH)/third_party/libjpeg/libjpeg.gyp:libjpeg', 104*4e366538SXin Li ], 105*4e366538SXin Li }, { 106*4e366538SXin Li 'dependencies': [ 107*4e366538SXin Li '<(DEPTH)/third_party/libjpeg_turbo/libjpeg.gyp:libjpeg', 108*4e366538SXin Li ], 109*4e366538SXin Li }], 110*4e366538SXin Li [ 'use_system_libjpeg == 1', { 111*4e366538SXin Li 'link_settings': { 112*4e366538SXin Li 'libraries': [ 113*4e366538SXin Li '-ljpeg', 114*4e366538SXin Li ], 115*4e366538SXin Li } 116*4e366538SXin Li }], 117*4e366538SXin Li ], 118*4e366538SXin Li }], 119*4e366538SXin Li ], #conditions 120*4e366538SXin Li 'defines': [ 121*4e366538SXin Li # Enable the following 3 macros to turn off assembly for specified CPU. 122*4e366538SXin Li # 'LIBYUV_DISABLE_X86', 123*4e366538SXin Li # 'LIBYUV_DISABLE_NEON', 124*4e366538SXin Li # 'LIBYUV_DISABLE_DSPR2', 125*4e366538SXin Li # Enable the following macro to build libyuv as a shared library (dll). 126*4e366538SXin Li # 'LIBYUV_USING_SHARED_LIBRARY', 127*4e366538SXin Li # TODO(fbarchard): Make these into gyp defines. 128*4e366538SXin Li ], 129*4e366538SXin Li 'include_dirs': [ 130*4e366538SXin Li 'include', 131*4e366538SXin Li '.', 132*4e366538SXin Li ], 133*4e366538SXin Li 'direct_dependent_settings': { 134*4e366538SXin Li 'include_dirs': [ 135*4e366538SXin Li 'include', 136*4e366538SXin Li '.', 137*4e366538SXin Li ], 138*4e366538SXin Li 'conditions': [ 139*4e366538SXin Li ['OS == "android" and target_arch == "arm64"', { 140*4e366538SXin Li 'ldflags': [ 141*4e366538SXin Li '-Wl,--dynamic-linker,/system/bin/linker64', 142*4e366538SXin Li ], 143*4e366538SXin Li }], 144*4e366538SXin Li ['OS == "android" and target_arch != "arm64"', { 145*4e366538SXin Li 'ldflags': [ 146*4e366538SXin Li '-Wl,--dynamic-linker,/system/bin/linker', 147*4e366538SXin Li ], 148*4e366538SXin Li }], 149*4e366538SXin Li ], #conditions 150*4e366538SXin Li }, 151*4e366538SXin Li 'sources': [ 152*4e366538SXin Li '<@(libyuv_sources)', 153*4e366538SXin Li ], 154*4e366538SXin Li }, 155*4e366538SXin Li ], # targets. 156*4e366538SXin Li} 157*4e366538SXin Li 158*4e366538SXin Li# Local Variables: 159*4e366538SXin Li# tab-width:2 160*4e366538SXin Li# indent-tabs-mode:nil 161*4e366538SXin Li# End: 162*4e366538SXin Li# vim: set expandtab tabstop=2 shiftwidth=2: 163