Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Side by Side Diff: webrtc/build/common.gypi

Issue 2509703002: Remove all references to GYP (Closed)
Patch Set: Rebased Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/build/chromium_common.gypi ('k') | webrtc/build/download_vs_toolchain.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # Copyright (c) 2012 The WebRTC 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 # This file contains common settings for building WebRTC components.
10
11 {
12 # Nesting is required in order to use variables for setting other variables.
13 'variables': {
14 'variables': {
15 'variables': {
16 'variables': {
17 # This will already be set to zero by supplement.gypi
18 'build_with_chromium%': 1,
19
20 # Enable to use the Mozilla internal settings.
21 'build_with_mozilla%': 0,
22 },
23 'build_with_chromium%': '<(build_with_chromium)',
24 'build_with_mozilla%': '<(build_with_mozilla%)',
25 'include_opus%': 1,
26
27 'conditions': [
28 # Include the iLBC audio codec?
29 ['build_with_chromium==1 or build_with_mozilla==1', {
30 'include_ilbc%': 0,
31 }, {
32 'include_ilbc%': 1,
33 }],
34
35 ['build_with_chromium==1', {
36 'webrtc_root%': '<(DEPTH)/third_party/webrtc',
37 }, {
38 'webrtc_root%': '<(DEPTH)/webrtc',
39 }],
40
41 # Controls whether we use libevent on posix platforms.
42 # TODO(phoglund): should arguably be controlled by platform #ifdefs
43 # in the code instead.
44 ['OS=="win" or OS=="mac" or OS=="ios"', {
45 'build_libevent%': 0,
46 'enable_libevent%': 0,
47 }, {
48 'build_libevent%': 1,
49 'enable_libevent%': 1,
50 }],
51 ],
52 },
53 'build_with_chromium%': '<(build_with_chromium)',
54 'build_with_mozilla%': '<(build_with_mozilla)',
55 'build_libevent%': '<(build_libevent)',
56 'enable_libevent%': '<(enable_libevent)',
57 'webrtc_root%': '<(webrtc_root)',
58 'webrtc_vp8_dir%': '<(webrtc_root)/modules/video_coding/codecs/vp8',
59 'webrtc_vp9_dir%': '<(webrtc_root)/modules/video_coding/codecs/vp9',
60 'include_ilbc%': '<(include_ilbc)',
61 'include_opus%': '<(include_opus)',
62 'opus_dir%': '<(DEPTH)/third_party/opus',
63 },
64 'build_with_chromium%': '<(build_with_chromium)',
65 'build_with_mozilla%': '<(build_with_mozilla)',
66 'build_libevent%': '<(build_libevent)',
67 'enable_libevent%': '<(enable_libevent)',
68 'webrtc_root%': '<(webrtc_root)',
69 'test_runner_path': '<(DEPTH)/webrtc/build/android/test_runner.py',
70 'webrtc_vp8_dir%': '<(webrtc_vp8_dir)',
71 'webrtc_vp9_dir%': '<(webrtc_vp9_dir)',
72 'include_ilbc%': '<(include_ilbc)',
73 'include_opus%': '<(include_opus)',
74 'rtc_relative_path%': 1,
75 'external_libraries%': '0',
76 'json_root%': '<(DEPTH)/third_party/jsoncpp/source/include/',
77 # openssl needs to be defined or gyp will complain. Is is only used when
78 # when providing external libraries so just use current directory as a
79 # placeholder.
80 'ssl_root%': '.',
81
82 # The Chromium common.gypi we use treats all gyp files without
83 # chromium_code==1 as third party code. This disables many of the
84 # preferred warning settings.
85 #
86 # We can set this here to have WebRTC code treated as Chromium code. Our
87 # third party code will still have the reduced warning settings.
88 'chromium_code': 1,
89
90 # Targets are by default not NaCl untrusted code. Use this variable exclude
91 # code that uses libraries that aren't available in the NaCl sandbox.
92 'nacl_untrusted_build%': 0,
93
94 # Set to 1 to enable code coverage on Linux using the gcov library.
95 'coverage%': 0,
96
97 # Set to "func", "block", "edge" for coverage generation.
98 # At unit test runtime set UBSAN_OPTIONS="coverage=1".
99 # It is recommend to set include_examples=0.
100 # Use llvm's sancov -html-report for human readable reports.
101 # See http://clang.llvm.org/docs/SanitizerCoverage.html .
102 'webrtc_sanitize_coverage%': "",
103
104 # Remote bitrate estimator logging/plotting.
105 'enable_bwe_test_logging%': 0,
106
107 # Selects fixed-point code where possible.
108 'prefer_fixed_point%': 0,
109
110 # Enables the use of protocol buffers for debug recordings.
111 'enable_protobuf%': 1,
112
113 # Disable the code for the intelligibility enhancer by default.
114 'enable_intelligibility_enhancer%': 0,
115
116 # Selects whether debug dumps for the audio processing module
117 # should be generated.
118 'apm_debug_dump%': 0,
119
120 # Disable these to not build components which can be externally provided.
121 'build_expat%': 1,
122 'build_json%': 1,
123 'build_libsrtp%': 1,
124 'build_libvpx%': 1,
125 'libvpx_build_vp9%': 1,
126 'build_libyuv%': 1,
127 'build_openmax_dl%': 1,
128 'build_opus%': 1,
129 'build_protobuf%': 1,
130 'build_ssl%': 1,
131 'build_usrsctp%': 1,
132
133 # Disable by default
134 'have_dbus_glib%': 0,
135
136 # Make it possible to provide custom locations for some libraries.
137 'libvpx_dir%': '<(DEPTH)/third_party/libvpx',
138 'libyuv_dir%': '<(DEPTH)/third_party/libyuv',
139 'opus_dir%': '<(opus_dir)',
140
141 # Use Java based audio layer as default for Android.
142 # Change this setting to 1 to use Open SL audio instead.
143 # TODO(henrika): add support for Open SL ES.
144 'enable_android_opensl%': 0,
145
146 # Link-Time Optimizations
147 # Executes code generation at link-time instead of compile-time
148 # https://gcc.gnu.org/wiki/LinkTimeOptimization
149 'use_lto%': 0,
150
151 # Defer ssl perference to that specified through sslconfig.h instead of
152 # choosing openssl or nss directly. In practice, this can be used to
153 # enable schannel on windows.
154 'use_legacy_ssl_defaults%': 0,
155
156 # Determines whether NEON code will be built.
157 'build_with_neon%': 0,
158
159 # Disable this to skip building source requiring GTK.
160 'use_gtk%': 1,
161
162 # Enable this to prevent extern symbols from being hidden on iOS builds.
163 # The chromium settings we inherit hide symbols by default on Release
164 # builds. We want our symbols to be visible when distributing WebRTC via
165 # static libraries to avoid linker warnings.
166 'ios_override_visibility%': 0,
167
168 # Determines whether QUIC code will be built.
169 'use_quic%': 0,
170
171 # By default, use normal platform audio support or dummy audio, but don't
172 # use file-based audio playout and record.
173 'use_dummy_audio_file_devices%': 0,
174
175 'conditions': [
176 # Enable this to build OpenH264 encoder/FFmpeg decoder. This is supported
177 # on all platforms except Android and iOS. Because FFmpeg can be built
178 # with/without H.264 support, |ffmpeg_branding| has to separately be set
179 # to a value that includes H.264, for example "Chrome". If FFmpeg is built
180 # without H.264, compilation succeeds but |H264DecoderImpl| fails to
181 # initialize. See also: |rtc_initialize_ffmpeg|.
182 # CHECK THE OPENH264, FFMPEG AND H.264 LICENSES/PATENTS BEFORE BUILDING.
183 # http://www.openh264.org, https://www.ffmpeg.org/
184 ['proprietary_codecs==1 and OS!="android" and OS!="ios"', {
185 'rtc_use_h264%': 1,
186 }, {
187 'rtc_use_h264%': 0,
188 }],
189
190 # FFmpeg must be initialized for |H264DecoderImpl| to work. This can be
191 # done by WebRTC during |H264DecoderImpl::InitDecode| or externally.
192 # FFmpeg must only be initialized once. Projects that initialize FFmpeg
193 # externally, such as Chromium, must turn this flag off so that WebRTC
194 # does not also initialize.
195 ['build_with_chromium==0', {
196 'rtc_initialize_ffmpeg%': 1,
197 }, {
198 'rtc_initialize_ffmpeg%': 0,
199 }],
200
201 ['build_with_chromium==1', {
202 # Build sources requiring GTK. NOTICE: This is not present in Chrome OS
203 # build environments, even if available for Chromium builds.
204 'use_gtk%': 0,
205 # Exclude pulse audio on Chromium since its prerequisites don't require
206 # pulse audio.
207 'include_pulse_audio%': 0,
208
209 # Exclude internal ADM since Chromium uses its own IO handling.
210 'include_internal_audio_device%': 0,
211
212 # Remove tests for Chromium to avoid slowing down GYP generation.
213 'include_tests%': 0,
214 'restrict_webrtc_logging%': 1,
215 }, { # Settings for the standalone (not-in-Chromium) build.
216 'use_gtk%': 1,
217 # TODO(andrew): For now, disable the Chrome plugins, which causes a
218 # flood of chromium-style warnings. Investigate enabling them:
219 # http://code.google.com/p/webrtc/issues/detail?id=163
220 'clang_use_chrome_plugins%': 0,
221
222 'include_pulse_audio%': 1,
223 'include_internal_audio_device%': 1,
224 'include_tests%': 1,
225 'restrict_webrtc_logging%': 0,
226 }],
227 ['target_arch=="arm" or target_arch=="arm64" or target_arch=="mipsel"', {
228 'prefer_fixed_point%': 1,
229 }],
230 ['(target_arch=="arm" and arm_neon==1) or target_arch=="arm64"', {
231 'build_with_neon%': 1,
232 }],
233 ['OS!="ios" and (target_arch!="arm" or arm_version>=7) and target_arch!="m ips64el"', {
234 'rtc_use_openmax_dl%': 1,
235 }, {
236 'rtc_use_openmax_dl%': 0,
237 }],
238 ], # conditions
239 },
240 'target_defaults': {
241 'conditions': [
242 ['restrict_webrtc_logging==1', {
243 'defines': ['WEBRTC_RESTRICT_LOGGING',],
244 }],
245 ['build_with_mozilla==1', {
246 'defines': [
247 # Changes settings for Mozilla build.
248 'WEBRTC_MOZILLA_BUILD',
249 ],
250 }],
251 ['have_dbus_glib==1', {
252 'defines': [
253 'HAVE_DBUS_GLIB',
254 ],
255 'cflags': [
256 '<!@(pkg-config --cflags dbus-glib-1)',
257 ],
258 }],
259 ['rtc_relative_path==1', {
260 'defines': ['EXPAT_RELATIVE_PATH',],
261 }],
262 ['os_posix==1', {
263 'configurations': {
264 'Debug_Base': {
265 'defines': [
266 # Chromium's build/common.gypi defines _DEBUG for all posix
267 # _except_ for ios & mac. The size of data types such as
268 # pthread_mutex_t varies between release and debug builds
269 # and is controlled via this flag. Since we now share code
270 # between base/base.gyp and build/common.gypi (this file),
271 # both gyp(i) files, must consistently set this flag uniformly
272 # or else we'll run in to hard-to-figure-out problems where
273 # one compilation unit uses code from another but expects
274 # differently laid out types.
275 # For WebRTC, we want it there as well, because ASSERT and
276 # friends trigger off of it.
277 '_DEBUG',
278 ],
279 },
280 },
281 }],
282 ['build_with_chromium==1', {
283 'defines': [
284 # Changes settings for Chromium build.
285 # TODO(kjellander): Cleanup unused ones and move defines closer to the
286 # source when webrtc:4256 is completed.
287 'ENABLE_EXTERNAL_AUTH',
288 'FEATURE_ENABLE_SSL',
289 'HAVE_OPENSSL_SSL_H',
290 'HAVE_SCTP',
291 'HAVE_SRTP',
292 'HAVE_WEBRTC_VIDEO',
293 'HAVE_WEBRTC_VOICE',
294 'LOGGING_INSIDE_WEBRTC',
295 'NO_MAIN_THREAD_WRAPPING',
296 'NO_SOUND_SYSTEM',
297 'SSL_USE_OPENSSL',
298 'USE_WEBRTC_DEV_BRANCH',
299 'WEBRTC_CHROMIUM_BUILD',
300 ],
301 'include_dirs': [
302 # Include the top-level directory when building in Chrome, so we can
303 # use full paths (e.g. headers inside testing/ or third_party/).
304 '<(DEPTH)',
305 # The overrides must be included before the WebRTC root as that's the
306 # mechanism for selecting the override headers in Chromium.
307 '../../webrtc_overrides',
308 # The WebRTC root is needed to allow includes in the WebRTC code base
309 # to be prefixed with webrtc/.
310 '../..',
311 ],
312 }, {
313 'includes': [
314 # Rules for excluding e.g. foo_win.cc from the build on non-Windows.
315 'filename_rules.gypi',
316 ],
317 # Include the top-level dir so the WebRTC code can use full paths.
318 'include_dirs': [
319 '../..',
320 ],
321 'conditions': [
322 ['os_posix==1', {
323 # Enable more warnings: -Wextra is currently disabled in Chromium.
324 'cflags': [
325 '-Wextra',
326 # Repeat some flags that get overridden by -Wextra.
327 '-Wno-unused-parameter',
328 '-Wno-missing-field-initializers',
329 '-Wno-strict-overflow',
330 ],
331 'cflags_cc': [
332 '-Wnon-virtual-dtor',
333 # This is enabled for clang; enable for gcc as well.
334 '-Woverloaded-virtual',
335 ],
336 }],
337 ['clang==1', {
338 'cflags': [
339 '-Wimplicit-fallthrough',
340 '-Wthread-safety',
341 '-Winconsistent-missing-override',
342 ],
343 }],
344 ],
345 }],
346 ['target_arch=="arm64"', {
347 'defines': [
348 'WEBRTC_ARCH_ARM64',
349 'WEBRTC_HAS_NEON',
350 ],
351 }],
352 ['target_arch=="arm"', {
353 'defines': [
354 'WEBRTC_ARCH_ARM',
355 ],
356 'conditions': [
357 ['arm_version>=7', {
358 'defines': ['WEBRTC_ARCH_ARM_V7',],
359 'conditions': [
360 ['arm_neon==1', {
361 'defines': ['WEBRTC_HAS_NEON',],
362 }],
363 ],
364 }],
365 ],
366 }],
367 ['target_arch=="mipsel" and mips_arch_variant!="r6"', {
368 'defines': [
369 'MIPS32_LE',
370 ],
371 'conditions': [
372 ['mips_float_abi=="hard"', {
373 'defines': [
374 'MIPS_FPU_LE',
375 ],
376 }],
377 ['mips_arch_variant=="r2"', {
378 'defines': [
379 'MIPS32_R2_LE',
380 ],
381 }],
382 ['mips_dsp_rev==1', {
383 'defines': [
384 'MIPS_DSP_R1_LE',
385 ],
386 }],
387 ['mips_dsp_rev==2', {
388 'defines': [
389 'MIPS_DSP_R1_LE',
390 'MIPS_DSP_R2_LE',
391 ],
392 }],
393 ],
394 }],
395 ['coverage==1 and OS=="linux"', {
396 'cflags': [ '-ftest-coverage',
397 '-fprofile-arcs' ],
398 'ldflags': [ '--coverage' ],
399 'link_settings': { 'libraries': [ '-lgcov' ] },
400 }],
401 ['webrtc_sanitize_coverage!=""', {
402 'cflags': [ '-fsanitize-coverage=<(webrtc_sanitize_coverage)' ],
403 'ldflags': [ '-fsanitize-coverage=<(webrtc_sanitize_coverage)' ],
404 }],
405 ['webrtc_sanitize_coverage!="" and OS=="mac"', {
406 'xcode_settings': {
407 'OTHER_CFLAGS': [
408 '-fsanitize-coverage=func',
409 ],
410 },
411 }],
412 ['os_posix==1', {
413 # For access to standard POSIXish features, use WEBRTC_POSIX instead of
414 # a more specific macro.
415 'defines': [
416 'WEBRTC_POSIX',
417 ],
418 }],
419 ['OS=="ios"', {
420 'defines': [
421 'WEBRTC_MAC',
422 'WEBRTC_IOS',
423 ],
424 }],
425 ['OS=="ios" and ios_override_visibility==1', {
426 'xcode_settings': {
427 'GCC_INLINES_ARE_PRIVATE_EXTERN': 'NO',
428 'GCC_SYMBOLS_PRIVATE_EXTERN': 'NO',
429 }
430 }],
431 ['OS=="linux"', {
432 'defines': [
433 'WEBRTC_LINUX',
434 ],
435 }],
436 ['OS=="mac"', {
437 'defines': [
438 'WEBRTC_MAC',
439 ],
440 }],
441 ['OS=="win"', {
442 'defines': [
443 'WEBRTC_WIN',
444 ],
445 # TODO(andrew): enable all warnings when possible.
446 # TODO(phoglund): get rid of 4373 supression when
447 # http://code.google.com/p/webrtc/issues/detail?id=261 is solved.
448 'msvs_disabled_warnings': [
449 4373, # legacy warning for ignoring const / volatile in signatures.
450 4389, # Signed/unsigned mismatch.
451 ],
452 # Re-enable some warnings that Chromium disables.
453 'msvs_disabled_warnings!': [4189,],
454 }],
455 ['OS=="android"', {
456 'defines': [
457 'WEBRTC_LINUX',
458 'WEBRTC_ANDROID',
459 ],
460 'conditions': [
461 ['clang==0', {
462 # The Android NDK doesn't provide optimized versions of these
463 # functions. Ensure they are disabled for all compilers.
464 'cflags': [
465 '-fno-builtin-cos',
466 '-fno-builtin-sin',
467 '-fno-builtin-cosf',
468 '-fno-builtin-sinf',
469 ],
470 }],
471 ],
472 }],
473 ['chromeos==1', {
474 'defines': [
475 'CHROMEOS',
476 ],
477 }],
478 ['os_bsd==1', {
479 'defines': [
480 'BSD',
481 ],
482 }],
483 ['OS=="openbsd"', {
484 'defines': [
485 'OPENBSD',
486 ],
487 }],
488 ['OS=="freebsd"', {
489 'defines': [
490 'FREEBSD',
491 ],
492 }],
493 ['include_internal_audio_device==1', {
494 'defines': [
495 'WEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE',
496 ],
497 }],
498 ['libvpx_build_vp9==0', {
499 'defines': [
500 'RTC_DISABLE_VP9',
501 ],
502 }],
503 ], # conditions
504 'direct_dependent_settings': {
505 'conditions': [
506 ['build_with_mozilla==1', {
507 'defines': [
508 # Changes settings for Mozilla build.
509 'WEBRTC_MOZILLA_BUILD',
510 ],
511 }],
512 ['build_with_chromium==1', {
513 'defines': [
514 # Changes settings for Chromium build.
515 # TODO(kjellander): Cleanup unused ones and move defines closer to
516 # the source when webrtc:4256 is completed.
517 'FEATURE_ENABLE_SSL',
518 'FEATURE_ENABLE_VOICEMAIL',
519 'EXPAT_RELATIVE_PATH',
520 'GTEST_RELATIVE_PATH',
521 'NO_MAIN_THREAD_WRAPPING',
522 'NO_SOUND_SYSTEM',
523 'WEBRTC_CHROMIUM_BUILD',
524 ],
525 'include_dirs': [
526 # The overrides must be included first as that is the mechanism for
527 # selecting the override headers in Chromium.
528 '../../webrtc_overrides',
529 '../..',
530 ],
531 }, {
532 'include_dirs': [
533 '../..',
534 ],
535 }],
536 ['OS=="mac"', {
537 'defines': [
538 'WEBRTC_MAC',
539 ],
540 }],
541 ['OS=="ios"', {
542 'defines': [
543 'WEBRTC_MAC',
544 'WEBRTC_IOS',
545 ],
546 }],
547 ['OS=="win"', {
548 'defines': [
549 'WEBRTC_WIN',
550 '_CRT_SECURE_NO_WARNINGS', # Suppress warnings about _vsnprinf
551 ],
552 }],
553 ['OS=="linux"', {
554 'defines': [
555 'WEBRTC_LINUX',
556 ],
557 }],
558 ['OS=="android"', {
559 'defines': [
560 'WEBRTC_LINUX',
561 'WEBRTC_ANDROID',
562 ],
563 }],
564 ['os_posix==1', {
565 # For access to standard POSIXish features, use WEBRTC_POSIX instead
566 # of a more specific macro.
567 'defines': [
568 'WEBRTC_POSIX',
569 ],
570 }],
571 ['chromeos==1', {
572 'defines': [
573 'CHROMEOS',
574 ],
575 }],
576 ['os_bsd==1', {
577 'defines': [
578 'BSD',
579 ],
580 }],
581 ['OS=="openbsd"', {
582 'defines': [
583 'OPENBSD',
584 ],
585 }],
586 ['OS=="freebsd"', {
587 'defines': [
588 'FREEBSD',
589 ],
590 }],
591 ],
592 },
593 }, # target_defaults
594 }
OLDNEW
« no previous file with comments | « webrtc/build/chromium_common.gypi ('k') | webrtc/build/download_vs_toolchain.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698