|
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 'yuv_disable_asm%': 0, |
|
16 'yuv_disable_avx2%': 0, |
|
17 'build_neon': 0, |
|
18 'conditions': [ |
|
19 ['target_arch == "arm" and arm_version >= 7 and (arm_neon == 1 or arm_neon_optional == 1)', { |
|
20 'build_neon': 1, |
|
21 }], |
|
22 ], |
|
23 }, |
|
24 'conditions': [ |
|
25 [ 'build_neon != 0', { |
|
26 'targets': [ |
|
27 # The NEON-specific components. |
|
28 { |
|
29 'target_name': 'libyuv_neon', |
|
30 'type': 'static_library', |
|
31 'standalone_static_library': 1, |
|
32 'defines': [ |
|
33 'LIBYUV_NEON', |
|
34 ], |
|
35 # TODO(noahric): This should remove whatever mfpu is set, not |
|
36 # just vfpv3-d16. |
|
37 'cflags!': [ |
|
38 '-mfpu=vfp', |
|
39 '-mfpu=vfpv3', |
|
40 '-mfpu=vfpv3-d16', |
|
41 ], |
|
42 # XXX Doesn't work currently |
|
43 'cflags_mozilla!': [ |
|
44 '-mfpu=vfp', |
|
45 '-mfpu=vfpv3', |
|
46 '-mfpu=vfpv3-d16', |
|
47 ], |
|
48 'cflags': [ |
|
49 '-mfpu=neon', |
|
50 ], |
|
51 'cflags_mozilla': [ |
|
52 '-mfpu=neon', |
|
53 ], |
|
54 'include_dirs': [ |
|
55 'include', |
|
56 '.', |
|
57 ], |
|
58 'direct_dependent_settings': { |
|
59 'include_dirs': [ |
|
60 'include', |
|
61 '.', |
|
62 ], |
|
63 }, |
|
64 'sources': [ |
|
65 # sources. |
|
66 'source/compare_neon.cc', |
|
67 'source/rotate_neon.cc', |
|
68 'source/row_neon.cc', |
|
69 'source/scale_neon.cc', |
|
70 ], |
|
71 }, |
|
72 ], |
|
73 }], |
|
74 ], |
|
75 'targets': [ |
|
76 { |
|
77 'target_name': 'libyuv', |
|
78 # Change type to 'shared_library' to build .so or .dll files. |
|
79 'type': 'static_library', |
|
80 # Allows libyuv.a redistributable library without external dependencies. |
|
81 # 'standalone_static_library': 1, |
|
82 'conditions': [ |
|
83 # TODO(fbarchard): Use gyp define to enable jpeg. |
|
84 [ 'OS != "ios" and build_with_mozilla!=1', { |
|
85 'defines': [ |
|
86 'HAVE_JPEG' |
|
87 ], |
|
88 'conditions': [ |
|
89 # Android uses libjpeg for system jpeg support. |
|
90 [ 'OS == "android" and use_system_libjpeg == 1', { |
|
91 'dependencies': [ |
|
92 '<(DEPTH)/third_party/libjpeg/libjpeg.gyp:libjpeg', |
|
93 ], |
|
94 }, { |
|
95 'dependencies': [ |
|
96 '<(DEPTH)/third_party/libjpeg_turbo/libjpeg.gyp:libjpeg', |
|
97 ], |
|
98 }], |
|
99 [ 'use_system_libjpeg == 1', { |
|
100 'link_settings': { |
|
101 'libraries': [ |
|
102 '-ljpeg', |
|
103 ], |
|
104 } |
|
105 }], |
|
106 ], |
|
107 }], |
|
108 [ 'build_neon != 0', { |
|
109 'dependencies': [ |
|
110 'libyuv_neon', |
|
111 ], |
|
112 'defines': [ |
|
113 'LIBYUV_NEON', |
|
114 ] |
|
115 }], |
|
116 [ 'yuv_disable_asm!=0', { |
|
117 'defines': [ |
|
118 # Enable the following 3 macros to turn off assembly for specified CPU. |
|
119 'LIBYUV_DISABLE_X86', |
|
120 'LIBYUV_DISABLE_NEON', |
|
121 'LIBYUV_DISABLE_MIPS', |
|
122 ], |
|
123 }], |
|
124 [ 'yuv_disable_avx2==1', { |
|
125 'defines': [ |
|
126 'LIBYUV_DISABLE_AVX2', |
|
127 ] |
|
128 }], |
|
129 ['build_with_mozilla==1', { |
|
130 'include_dirs': [ |
|
131 '$(DEPTH)/dist/include', |
|
132 ], |
|
133 'direct_dependent_settings': { |
|
134 'include_dirs': [ |
|
135 '$(DEPTH)/dist/include', |
|
136 ], |
|
137 }, |
|
138 }], |
|
139 ], |
|
140 'defines': [ |
|
141 # Enable the following 3 macros to turn off assembly for specified CPU. |
|
142 # 'LIBYUV_DISABLE_X86', |
|
143 # 'LIBYUV_DISABLE_NEON', |
|
144 # 'LIBYUV_DISABLE_MIPS', |
|
145 # This disables AVX2 (Haswell) support, overriding compiler checks |
|
146 # 'LIBYUV_DISABLE_AVX2', |
|
147 # Enable the following macro to build libyuv as a shared library (dll). |
|
148 # 'LIBYUV_USING_SHARED_LIBRARY', |
|
149 ], |
|
150 'include_dirs': [ |
|
151 'include', |
|
152 '.', |
|
153 ], |
|
154 'direct_dependent_settings': { |
|
155 'include_dirs': [ |
|
156 'include', |
|
157 '.', |
|
158 ], |
|
159 }, |
|
160 'sources': [ |
|
161 '<@(libyuv_sources)', |
|
162 ], |
|
163 }, |
|
164 ], # targets. |
|
165 } |
|
166 |
|
167 # Local Variables: |
|
168 # tab-width:2 |
|
169 # indent-tabs-mode:nil |
|
170 # End: |
|
171 # vim: set expandtab tabstop=2 shiftwidth=2: |