Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / libyuv / libyuv.gyp
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   'includes': [
11     'libyuv.gypi',
12   ],
13   'variables': {
14     'use_system_libjpeg%': 0,
15     'libyuv_disable_jpeg%': 0,
16     'build_neon': 0,
17     'conditions': [
18        [ '(target_arch == "armv7" or target_arch == "armv7s" or (target_arch == "arm" and arm_version >= 7)) and target_subarch != 64 and (arm_neon == 1 or arm_neon_optional == 1)', {
19          'build_neon': 1,
20        }],
21     ],
22   },
23   'conditions': [
24     [ 'build_neon != 0', {
25       'targets': [
26         # The NEON-specific components.
27         {
28           'target_name': 'libyuv_neon',
29           'type': 'static_library',
30           'standalone_static_library': 1,
31           # TODO(noahric): This should remove whatever mfpu is set, not
32           # just vfpv3-d16.
33           'cflags!': [
34             '-mfpu=vfp',
35             '-mfpu=vfpv3',
36             '-mfpu=vfpv3-d16',
37           ],
38           'cflags': [
39             '-mfpu=neon',
40           ],
41           'include_dirs': [
42             'include',
43             '.',
44           ],
45           'direct_dependent_settings': {
46             'include_dirs': [
47               'include',
48               '.',
49             ],
50           },
51           'sources': [
52             # sources.
53             'source/compare_neon.cc',
54             'source/rotate_neon.cc',
55             'source/row_neon.cc',
56             'source/scale_neon.cc',
57           ],
58         },
59       ],
60     }],
61   ],
62   'targets': [
63     {
64       'target_name': 'libyuv',
65       # Change type to 'shared_library' to build .so or .dll files.
66       'type': 'static_library',
67       # Allows libyuv.a redistributable library without external dependencies.
68       'standalone_static_library': 1,
69       'conditions': [
70         [ 'OS == "ios" and target_subarch == 64', {
71           'defines': [
72             'LIBYUV_DISABLE_NEON'
73           ],
74         }],
75         [ 'OS != "ios" and libyuv_disable_jpeg != 1', {
76           'defines': [
77             'HAVE_JPEG'
78           ],
79           'conditions': [
80             # Caveat system jpeg support may not support motion jpeg
81             [ 'use_system_libjpeg == 1', {
82               'dependencies': [
83                  '<(DEPTH)/third_party/libjpeg/libjpeg.gyp:libjpeg',
84               ],
85             }, {
86               'dependencies': [
87                  '<(DEPTH)/third_party/libjpeg_turbo/libjpeg.gyp:libjpeg',
88               ],
89             }],
90             [ 'use_system_libjpeg == 1', {
91               'link_settings': {
92                 'libraries': [
93                   '-ljpeg',
94                 ],
95               }
96             }],
97           ],
98         }],
99         [ 'build_neon != 0', {
100           'dependencies': [
101             'libyuv_neon',
102           ],
103           'defines': [
104             'LIBYUV_NEON',
105           ]
106         }],
107         # MemorySanitizer does not support assembly code yet.
108         # http://crbug.com/344505
109         [ 'msan == 1', {
110           'defines': [
111             'LIBYUV_DISABLE_X86',
112           ],
113         }],
114       ],
115       'defines': [
116         # Enable the following 3 macros to turn off assembly for specified CPU.
117         # 'LIBYUV_DISABLE_X86',
118         # 'LIBYUV_DISABLE_NEON',
119         # 'LIBYUV_DISABLE_MIPS',
120         # Enable the following macro to build libyuv as a shared library (dll).
121         # 'LIBYUV_USING_SHARED_LIBRARY',
122       ],
123       'include_dirs': [
124         'include',
125         '.',
126       ],
127       'direct_dependent_settings': {
128         'include_dirs': [
129           'include',
130           '.',
131         ],
132       },
133       'sources': [
134         '<@(libyuv_sources)',
135       ],
136     },
137   ], # targets.
138 }
139
140 # Local Variables:
141 # tab-width:2
142 # indent-tabs-mode:nil
143 # End:
144 # vim: set expandtab tabstop=2 shiftwidth=2: