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

Side by Side Diff: build/common.gypi

Issue 7941007: Upstream: The Common.gypi change for Android. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 3 months 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 # IMPORTANT: 5 # IMPORTANT:
6 # Please don't directly include this file if you are building via gyp_chromium, 6 # Please don't directly include this file if you are building via gyp_chromium,
7 # since gyp_chromium is automatically forcing its inclusion. 7 # since gyp_chromium is automatically forcing its inclusion.
8 { 8 {
9 # Variables expected to be overriden on the GYP command line (-D) or by 9 # Variables expected to be overriden on the GYP command line (-D) or by
10 # ~/.gyp/include.gypi. 10 # ~/.gyp/include.gypi.
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 }], 226 }],
227 227
228 # A flag for POSIX platforms 228 # A flag for POSIX platforms
229 ['OS=="win"', { 229 ['OS=="win"', {
230 'os_posix%': 0, 230 'os_posix%': 0,
231 }, { 231 }, {
232 'os_posix%': 1, 232 'os_posix%': 1,
233 }], 233 }],
234 234
235 # Flags to use Gtk and X11 on non-Mac POSIX platforms 235 # Flags to use Gtk and X11 on non-Mac POSIX platforms
236 ['OS=="win" or OS=="mac"', { 236 ['OS=="win" or OS=="mac" or OS=="android"', {
237 'toolkit_uses_gtk%': 0, 237 'toolkit_uses_gtk%': 0,
238 'use_x11%': 0, 238 'use_x11%': 0,
239 }, { 239 }, {
240 # TODO(dnicoara) Wayland build should have these disabled, but 240 # TODO(dnicoara) Wayland build should have these disabled, but
241 # currently GTK and X is too spread and it's hard to completely 241 # currently GTK and X is too spread and it's hard to completely
242 # remove every dependency. 242 # remove every dependency.
243 'toolkit_uses_gtk%': 1, 243 'toolkit_uses_gtk%': 1,
244 'use_x11%': 1, 244 'use_x11%': 1,
245 }], 245 }],
246 246
(...skipping 26 matching lines...) Expand all
273 'file_manager_extension%': 0, 273 'file_manager_extension%': 0,
274 }], 274 }],
275 275
276 # Enable WebUI TaskManager only on Chrome OS, Touch or PureView. 276 # Enable WebUI TaskManager only on Chrome OS, Touch or PureView.
277 ['chromeos==1 or touchui==1 or use_only_pure_views==1 or use_aura==1', { 277 ['chromeos==1 or touchui==1 or use_only_pure_views==1 or use_aura==1', {
278 'webui_task_manager%': 1, 278 'webui_task_manager%': 1,
279 }, { 279 }, {
280 'webui_task_manager%': 0, 280 'webui_task_manager%': 0,
281 }], 281 }],
282 282
283 ['OS=="android"', {
284 'proprietary_codecs%': 1,
285 'enable_webrtc%': 0,
286 }],
287
283 # Enable smooth scrolling for Mac, Win, Linux and ChromeOS 288 # Enable smooth scrolling for Mac, Win, Linux and ChromeOS
284 ['OS=="linux" or OS=="mac" or OS=="win"', { 289 ['OS=="linux" or OS=="mac" or OS=="win"', {
285 'enable_smooth_scrolling%': 1, 290 'enable_smooth_scrolling%': 1,
286 }, { 291 }, {
287 'enable_smooth_scrolling%': 0, 292 'enable_smooth_scrolling%': 0,
288 }], 293 }],
289 ], 294 ],
290 }, 295 },
291 296
292 # Copy conditionally-set variables out one scope. 297 # Copy conditionally-set variables out one scope.
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 434
430 # These two variables can be set in GYP_DEFINES while running 435 # These two variables can be set in GYP_DEFINES while running
431 # |gclient runhooks| to let clang run a plugin in every compilation. 436 # |gclient runhooks| to let clang run a plugin in every compilation.
432 # Only has an effect if 'clang=1' is in GYP_DEFINES as well. 437 # Only has an effect if 'clang=1' is in GYP_DEFINES as well.
433 # Example: 438 # Example:
434 # GYP_DEFINES='clang=1 clang_load=/abs/path/to/libPrintFunctionNames.dyl ib clang_add_plugin=print-fns' gclient runhooks 439 # GYP_DEFINES='clang=1 clang_load=/abs/path/to/libPrintFunctionNames.dyl ib clang_add_plugin=print-fns' gclient runhooks
435 440
436 'clang_load%': '', 441 'clang_load%': '',
437 'clang_add_plugin%': '', 442 'clang_add_plugin%': '',
438 443
444 # The default type of gtest.
445 'gtest_target_type%': 'executable',
446
439 # Enable sampling based profiler. 447 # Enable sampling based profiler.
440 # See http://google-perftools.googlecode.com/svn/trunk/doc/cpuprofile.html 448 # See http://google-perftools.googlecode.com/svn/trunk/doc/cpuprofile.html
441 'profiling%': '0', 449 'profiling%': '0',
442 450
443 # Enable strict glibc debug mode. 451 # Enable strict glibc debug mode.
444 'glibcxx_debug%': 0, 452 'glibcxx_debug%': 0,
445 453
446 # Override whether we should use Breakpad on Linux. I.e. for Chrome bot. 454 # Override whether we should use Breakpad on Linux. I.e. for Chrome bot.
447 'linux_breakpad%': 0, 455 'linux_breakpad%': 0,
448 # And if we want to dump symbols for Breakpad-enabled builds. 456 # And if we want to dump symbols for Breakpad-enabled builds.
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 # If debug_devtools is set to 1, JavaScript files for DevTools are 543 # If debug_devtools is set to 1, JavaScript files for DevTools are
536 # stored as is and loaded from disk. Otherwise, a concatenated file 544 # stored as is and loaded from disk. Otherwise, a concatenated file
537 # is stored in resources.pak. It is still possible to load JS files 545 # is stored in resources.pak. It is still possible to load JS files
538 # from disk by passing --debug-devtools cmdline switch. 546 # from disk by passing --debug-devtools cmdline switch.
539 'debug_devtools%': 0, 547 'debug_devtools%': 0,
540 548
541 # Point to ICU directory. 549 # Point to ICU directory.
542 'icu_src_dir': '../third_party/icu', 550 'icu_src_dir': '../third_party/icu',
543 551
544 'conditions': [ 552 'conditions': [
545 ['os_posix==1 and OS!="mac"', { 553 ['os_posix==1 and OS!="mac" and OS!="android"', {
546 # This will set gcc_version to XY if you are running gcc X.Y.*. 554 # This will set gcc_version to XY if you are running gcc X.Y.*.
547 # This is used to tweak build flags for gcc 4.4. 555 # This is used to tweak build flags for gcc 4.4.
548 'gcc_version%': '<!(python <(DEPTH)/build/compiler_version.py)', 556 'gcc_version%': '<!(python <(DEPTH)/build/compiler_version.py)',
549 # Figure out the python architecture to decide if we build pyauto. 557 # Figure out the python architecture to decide if we build pyauto.
550 'python_arch%': '<!(<(DEPTH)/build/linux/python_arch.sh <(sysroot)/usr/l ib/libpython<(python_ver).so.1.0)', 558 'python_arch%': '<!(<(DEPTH)/build/linux/python_arch.sh <(sysroot)/usr/l ib/libpython<(python_ver).so.1.0)',
551 'conditions': [ 559 'conditions': [
552 ['branding=="Chrome"', { 560 ['branding=="Chrome"', {
553 'linux_breakpad%': 1, 561 'linux_breakpad%': 1,
554 }], 562 }],
555 # All Chrome builds have breakpad symbols, but only process the 563 # All Chrome builds have breakpad symbols, but only process the
556 # symbols from official builds. 564 # symbols from official builds.
557 ['(branding=="Chrome" and buildtype=="Official")', { 565 ['(branding=="Chrome" and buildtype=="Official")', {
558 'linux_dump_symbols%': 1, 566 'linux_dump_symbols%': 1,
559 }], 567 }],
560 ], 568 ],
561 }], # os_posix==1 and OS!="mac" 569 }], # os_posix==1 and OS!="mac" and OS!="android"
570 ['OS=="android"', {
571 # Location of Android NDK.
572 'variables': {
573 'variables': {
574 'android_ndk_root%': '<!(/bin/echo -n $ANDROID_NDK_ROOT)',
575 'android_target_arch%': 'arm', # target_arch in android terms.
576 'android_build_type%': 0,
Mark Mentovai 2011/09/20 00:11:58 Document what 0 means. What are the other possibil
michaelbai 2011/09/20 04:01:01 This is the default build type. On 2011/09/20 00:
577 },
578 'android_ndk_root%': '<(android_ndk_root)',
579 'android_ndk_sysroot': '<(android_ndk_root)/platforms/android-9/arch-< (android_target_arch)',
580 'android_build_type%': '<(android_build_type)',
581 },
582 'android_ndk_root%': '<(android_ndk_root)',
583 'android_ndk_sysroot': '<(android_ndk_sysroot)',
584 'android_ndk_include': '<(android_ndk_sysroot)/usr/include',
585 'android_ndk_lib': '<(android_ndk_sysroot)/usr/lib',
562 586
587 # Android has its own crash report system
588 'linux_breakpad%': 0,
589
590 # Android always uses openssl.
591 'use_openssl%': 1,
592
593 'proprietary_codecs%': '<(proprietary_codecs)',
594 'safe_browsing%': 0,
595 'configuration_policy%': 0,
596
597 # In android, we build the gtest targets as a shared_library
Mark Mentovai 2011/09/20 00:11:58 Please avoid writing “we” in comments. Line 603, 6
michaelbai 2011/09/20 04:01:01 Done.
598 'gtest_target_type%': '<(gtest_target_type)',
Mark Mentovai 2011/09/20 00:11:58 This doesn’t seem right. Why not just say 'gtest_t
michaelbai 2011/09/20 04:01:01 We are in the transition of share_library, gtest_
599
600 # Android uses system APIs for decoding audio and video.
601 'use_libffmpeg%': '0',
602
603 # We always use the chromium skia. The use_system_harfbuzz needs to
604 # match use_system_skia.
605 'use_system_skia%': '0',
606 'use_system_harfbuzz%': '0',
607
608 # Should we use the system icu or statically link?
609 'use_system_icu%': 1,
610 'conditions': [
611 ['android_build_type==0', {
612 'static_link_system_icu%': 1,
613 }, {
614 'static_link_system_icu%': 0,
615 }],
616 ],
617 # Should we use the system sqlite or statically link?
618 'use_system_sqlite%': '<(android_build_type)',
619 # Should we use the system libjpeg or statically link?
620 'use_system_libjpeg%': '<(android_build_type)',
621 # Should we use the system libexpat or statically link?
622 'use_system_libexpat%': '<(android_build_type)',
623 # Should we use the system stlport or statically link the NDK one?
624 'use_system_stlport%': '<(android_build_type)',
625 # Copy it out one scope.
626 'android_build_type%': '<(android_build_type)',
627 }], # OS=="android"
563 ['OS=="mac"', { 628 ['OS=="mac"', {
564 # Enable clang on mac by default! 629 # Enable clang on mac by default!
565 'clang%': 1, 630 'clang%': 1,
566 'conditions': [ 631 'conditions': [
567 # mac_product_name is set to the name of the .app bundle as it should 632 # mac_product_name is set to the name of the .app bundle as it should
568 # appear on disk. This duplicates data from 633 # appear on disk. This duplicates data from
569 # chrome/app/theme/chromium/BRANDING and 634 # chrome/app/theme/chromium/BRANDING and
570 # chrome/app/theme/google_chrome/BRANDING, but is necessary to get 635 # chrome/app/theme/google_chrome/BRANDING, but is necessary to get
571 # these names into the build system. 636 # these names into the build system.
572 ['branding=="Chrome"', { 637 ['branding=="Chrome"', {
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
686 ['use_titlecase_in_grd_files==1', { 751 ['use_titlecase_in_grd_files==1', {
687 'grit_defines': ['-D', 'use_titlecase'], 752 'grit_defines': ['-D', 'use_titlecase'],
688 }], 753 }],
689 ['use_third_party_translations==1', { 754 ['use_third_party_translations==1', {
690 'grit_defines': ['-D', 'use_third_party_translations'], 755 'grit_defines': ['-D', 'use_third_party_translations'],
691 'locales': [ 756 'locales': [
692 'ast', 'bs', 'ca@valencia', 'en-AU', 'eo', 'eu', 'gl', 'hy', 'ia', 757 'ast', 'bs', 'ca@valencia', 'en-AU', 'eo', 'eu', 'gl', 'hy', 'ia',
693 'ka', 'ku', 'kw', 'ms', 'ug' 758 'ka', 'ku', 'kw', 'ms', 'ug'
694 ], 759 ],
695 }], 760 }],
696 761 ['OS=="android"', {
762 'grit_defines': ['-D', 'android'],
763 }],
697 ['clang_use_chrome_plugins==1', { 764 ['clang_use_chrome_plugins==1', {
698 'clang_chrome_plugins_flags': 765 'clang_chrome_plugins_flags':
699 '<!(<(DEPTH)/tools/clang/scripts/plugin_flags.sh)', 766 '<!(<(DEPTH)/tools/clang/scripts/plugin_flags.sh)',
700 }], 767 }],
701 768
702 # Set use_ibus to 1 to enable ibus support. 769 # Set use_ibus to 1 to enable ibus support.
703 ['touchui==1 and chromeos==1', { 770 ['touchui==1 and chromeos==1', {
704 'use_ibus%': 1, 771 'use_ibus%': 1,
705 }, { 772 }, {
706 'use_ibus%': 0, 773 'use_ibus%': 0,
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
895 }, 962 },
896 # Add -lgcov for types executable, shared_library, and 963 # Add -lgcov for types executable, shared_library, and
897 # loadable_module; not for static_library. 964 # loadable_module; not for static_library.
898 # This is a delayed conditional. 965 # This is a delayed conditional.
899 'target_conditions': [ 966 'target_conditions': [
900 ['_type!="static_library"', { 967 ['_type!="static_library"', {
901 'xcode_settings': { 'OTHER_LDFLAGS': [ '-lgcov' ] }, 968 'xcode_settings': { 'OTHER_LDFLAGS': [ '-lgcov' ] },
902 }], 969 }],
903 ], 970 ],
904 }], 971 }],
905 ['OS=="linux"', { 972 ['OS=="linux" or OS=="android"', {
906 'cflags': [ '-ftest-coverage', 973 'cflags': [ '-ftest-coverage',
907 '-fprofile-arcs' ], 974 '-fprofile-arcs' ],
908 'link_settings': { 'libraries': [ '-lgcov' ] }, 975 'link_settings': { 'libraries': [ '-lgcov' ] },
909 }], 976 }],
910 # Finally, for Windows, we simply turn on profiling. 977 # Finally, for Windows, we simply turn on profiling.
911 ['OS=="win"', { 978 ['OS=="win"', {
912 'msvs_settings': { 979 'msvs_settings': {
913 'VCLinkerTool': { 980 'VCLinkerTool': {
914 'Profile': 'true', 981 'Profile': 'true',
915 }, 982 },
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
1042 ['OS!="linux"', { 1109 ['OS!="linux"', {
1043 'sources/': [ 1110 'sources/': [
1044 ['exclude', '_linux(_unittest)?\\.(h|cc)$'], 1111 ['exclude', '_linux(_unittest)?\\.(h|cc)$'],
1045 ['exclude', '(^|/)linux/'], 1112 ['exclude', '(^|/)linux/'],
1046 ], 1113 ],
1047 }], 1114 }],
1048 ['OS!="android"', { 1115 ['OS!="android"', {
1049 'sources/': [ 1116 'sources/': [
1050 ['exclude', '_android(_unittest)?\\.cc$'], 1117 ['exclude', '_android(_unittest)?\\.cc$'],
1051 ['exclude', '(^|/)android/'], 1118 ['exclude', '(^|/)android/'],
1119 ['exclude', '(^|/)android_[^/]*\\.cc$'],
Mark Mentovai 2011/09/20 00:11:58 The correct pattern in Chromium is for these files
michaelbai 2011/09/20 04:01:01 Done.
1052 ], 1120 ],
1053 }], 1121 }],
1054 # We use "POSIX" to refer to all non-Windows operating systems. 1122 # We use "POSIX" to refer to all non-Windows operating systems.
1055 ['OS=="win"', { 1123 ['OS=="win"', {
1056 'sources/': [ ['exclude', '_posix\\.(h|cc)$'] ], 1124 'sources/': [ ['exclude', '_posix\\.(h|cc)$'] ],
1057 # turn on warnings for signed/unsigned mismatch on chromium code. 1125 # turn on warnings for signed/unsigned mismatch on chromium code.
1058 'msvs_settings': { 1126 'msvs_settings': {
1059 'VCCLCompilerTool': { 1127 'VCCLCompilerTool': {
1060 'AdditionalOptions': ['/we4389'], 1128 'AdditionalOptions': ['/we4389'],
1061 }, 1129 },
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
1336 'variables': { 1404 'variables': {
1337 'debug_optimize%': '0', 1405 'debug_optimize%': '0',
1338 }, 1406 },
1339 'defines': [ 1407 'defines': [
1340 '_DEBUG', 1408 '_DEBUG',
1341 ], 1409 ],
1342 'cflags': [ 1410 'cflags': [
1343 '-O>(debug_optimize)', 1411 '-O>(debug_optimize)',
1344 '-g', 1412 '-g',
1345 ], 1413 ],
1414 'conditions' : [
1415 ['OS=="android"', {
1416 'cflags': [
1417 '-fno-omit-frame-pointer',
1418 ],
1419 }],
1420 ],
1421 'target_conditions' : [
1422 ['_toolset=="target"', {
1423 'conditions': [
1424 ['OS=="android" and debug_optimize==0', {
1425 'cflags': [
1426 '-mlong-calls', # Needed when compiling with -O0
1427 ],
1428 }],
1429 ['arm_thumb==1', {
1430 'cflags': [
1431 '-marm',
1432 ],
1433 }],
1434 ],
1435 }],
1436 ],
1346 }, 1437 },
1347 'Release_Base': { 1438 'Release_Base': {
1348 'variables': { 1439 'variables': {
1349 'release_optimize%': '2', 1440 'release_optimize%': '2',
1350 # Binaries become big and gold is unable to perform GC 1441 # Binaries become big and gold is unable to perform GC
1351 # and remove unused sections for some of test targets 1442 # and remove unused sections for some of test targets
1352 # on 32 bit platform. 1443 # on 32 bit platform.
1353 # (This is currently observed only in chromeos valgrind bots) 1444 # (This is currently observed only in chromeos valgrind bots)
1354 # The following flag is to disable --gc-sections linker 1445 # The following flag is to disable --gc-sections linker
1355 # option for these bots. 1446 # option for these bots.
(...skipping 18 matching lines...) Expand all
1374 # See http://lwn.net/Articles/192624/ . 1465 # See http://lwn.net/Articles/192624/ .
1375 '-Wl,-O1', 1466 '-Wl,-O1',
1376 '-Wl,--as-needed', 1467 '-Wl,--as-needed',
1377 ], 1468 ],
1378 'conditions' : [ 1469 'conditions' : [
1379 ['no_gc_sections==0', { 1470 ['no_gc_sections==0', {
1380 'ldflags': [ 1471 'ldflags': [
1381 '-Wl,--gc-sections', 1472 '-Wl,--gc-sections',
1382 ], 1473 ],
1383 }], 1474 }],
1475 ['OS=="android"', {
1476 'cflags': [
1477 '-fomit-frame-pointer',
1478 ],
1479 }],
1384 ['clang==1', { 1480 ['clang==1', {
1385 'cflags!': [ 1481 'cflags!': [
1386 '-fno-ident', 1482 '-fno-ident',
1387 ], 1483 ],
1388 }], 1484 }],
1389 ['profiling==1', { 1485 ['profiling==1', {
1390 'cflags': [ 1486 'cflags': [
1391 '-fno-omit-frame-pointer', 1487 '-fno-omit-frame-pointer',
1392 '-g', 1488 '-g',
1393 ], 1489 ],
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
1502 'target_conditions': [ 1598 'target_conditions': [
1503 ['_toolset=="target"', { 1599 ['_toolset=="target"', {
1504 'cflags_cc': [ 1600 'cflags_cc': [
1505 # The codesourcery arm-2009q3 toolchain warns at that the ABI 1601 # The codesourcery arm-2009q3 toolchain warns at that the ABI
1506 # has changed whenever it encounters a varargs function. This 1602 # has changed whenever it encounters a varargs function. This
1507 # silences those warnings, as they are not helpful and 1603 # silences those warnings, as they are not helpful and
1508 # clutter legitimate warnings. 1604 # clutter legitimate warnings.
1509 '-Wno-abi', 1605 '-Wno-abi',
1510 ], 1606 ],
1511 'conditions': [ 1607 'conditions': [
1512 ['arm_thumb == 1', { 1608 ['arm_thumb==1', {
1513 'cflags': [ 1609 'cflags': [
1514 '-mthumb', 1610 '-mthumb',
1515 ] 1611 ]
1516 }], 1612 }],
1517 ['armv7==1', { 1613 ['armv7==1', {
1518 'cflags': [ 1614 'cflags': [
1519 '-march=armv7-a', 1615 '-march=armv7-a',
1520 '-mtune=cortex-a8', 1616 '-mtune=cortex-a8',
1521 '-mfloat-abi=softfp', 1617 '-mfloat-abi=softfp',
1522 ], 1618 ],
1523 'conditions': [ 1619 'conditions': [
1524 ['arm_neon==1', { 1620 ['arm_neon==1', {
1525 'cflags': [ '-mfpu=neon', ], 1621 'cflags': [ '-mfpu=neon', ],
1526 }, { 1622 }, {
1527 'cflags': [ '-mfpu=<(arm_fpu)', ], 1623 'cflags': [ '-mfpu=<(arm_fpu)', ],
1528 }] 1624 }]
1529 ], 1625 ],
1530 }], 1626 }],
1627 ['OS=="android"', {
1628 # The following flags are derived from what Android uses
1629 # by default when building for arm.
1630 'cflags': [ '-Wno-psabi', ],
1631 'conditions': [
1632 ['arm_thumb == 1', {
1633 # Android toolchain doesn't support -mimplicit-it=thumb
1634 'cflags!': [ '-Wa,-mimplicit-it=thumb', ],
1635 'cflags': [ '-mthumb-interwork', ],
1636 }],
1637 ['armv7==0', {
1638 # Flags suitable for Android emulator
1639 'cflags': [
1640 '-march=armv5te',
1641 '-mtune=xscale',
1642 '-msoft-float',
1643 '-D__ARM_ARCH_5__',
1644 '-D__ARM_ARCH_5T__',
1645 '-D__ARM_ARCH_5E__',
1646 '-D__ARM_ARCH_5TE__',
1647 ],
1648 }],
1649 ],
1650 }],
1531 ], 1651 ],
1532 }], 1652 }],
1533 ], 1653 ],
1534 }], 1654 }],
1535 ['linux_fpic==1', { 1655 ['linux_fpic==1', {
1536 'cflags': [ 1656 'cflags': [
1537 '-fPIC', 1657 '-fPIC',
1538 ], 1658 ],
1539 }], 1659 }],
1540 ['sysroot!=""', { 1660 ['sysroot!=""', {
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
1615 }], 1735 }],
1616 # FreeBSD-specific options; note that most FreeBSD options are set above, 1736 # FreeBSD-specific options; note that most FreeBSD options are set above,
1617 # with Linux. 1737 # with Linux.
1618 ['OS=="freebsd"', { 1738 ['OS=="freebsd"', {
1619 'target_defaults': { 1739 'target_defaults': {
1620 'ldflags': [ 1740 'ldflags': [
1621 '-Wl,--no-keep-memory', 1741 '-Wl,--no-keep-memory',
1622 ], 1742 ],
1623 }, 1743 },
1624 }], 1744 }],
1745 # Android-specific options; note that most are set above with Linux.
1746 ['OS=="android"', {
1747 'variables': {
1748 'android_target_arch%': 'arm', # target_arch in android terms.
1749 'conditions': [
1750 # Android uses x86 instead of ia32 for their target_arch designation.
1751 ['target_arch=="ia32"', {
1752 'android_target_arch%': 'x86',
1753 }],
1754 # Which stlport library should we link? We need to figure this out
1755 # early since it needs symbols from libgcc.a, so it has to be before
1756 # that in the set of libraries.
1757 ['use_system_stlport==1', {
1758 'android_stlport_library': 'stlport',
1759 }, {
1760 'android_stlport_library': 'stlport_static',
1761 }],
1762 ],
1763
1764 # Placing this variable here helps us NOT fork libvpx, used
1765 # by remoting. Remoting is off, so we don't build it,
Mark Mentovai 2011/09/20 00:11:58 “We,” also on 1754, 1767, 1773, 1791-1794, 1798, 1
michaelbai 2011/09/20 04:01:01 Done.
1766 # so forking it's deps seems like overkill.
1767 # But we do need this variable defined to properly run gyp.
1768 # A proper solution is to have an OS==android conditional
1769 # in third_party/libvpx/libvpx.gyp to define it.
1770 'libvpx_path': 'lib/linux/arm',
1771 },
1772 'target_defaults': {
1773 # We build a Release build by default to match Android build behavior.
1774 # This is typical with Android because Debug builds tend to be much
1775 # larger and run very slowly on constrained devices. It is still
1776 # possible to do a Debug build by specifying BUILDTYPE=Debug on the
1777 # 'make' command line.
1778 'default_configuration': 'Release',
1779
1780 'variables': {
1781 'release_extra_cflags%': '',
1782 },
1783
1784 'target_conditions': [
1785 # Settings for building device targets using Android's toolchain.
1786 # These are based on the setup.mk file from the Android NDK.
1787 #
1788 # The NDK Android executable link step looks as follows:
1789 # $LDFLAGS
1790 # $(TARGET_CRTBEGIN_DYNAMIC_O) <-- crtbegin.o
1791 # $(PRIVATE_OBJECTS) <-- The .o that we built
1792 # $(PRIVATE_STATIC_LIBRARIES) <-- The .a that we built
1793 # $(TARGET_LIBGCC) <-- libgcc.a
1794 # $(PRIVATE_SHARED_LIBRARIES) <-- The .so that we built
1795 # $(PRIVATE_LDLIBS) <-- System .so
1796 # $(TARGET_CRTEND_O) <-- crtend.o
1797 #
1798 # For now we approximate the above for executables by adding
1799 # crtbegin.o to the end of the ldflags and 'crtend.o' to the end
1800 # of 'libraries'.
1801 #
1802 # The NDK Android shared library link step looks as follows:
1803 # $LDFLAGS
1804 # $(PRIVATE_OBJECTS) <-- The .o that we built
1805 # -l,--whole-archive
1806 # $(PRIVATE_WHOLE_STATIC_LIBRARIES)
1807 # -l,--no-whole-archive
1808 # $(PRIVATE_STATIC_LIBRARIES) <-- The .a that we built
1809 # $(TARGET_LIBGCC) <-- libgcc.a
1810 # $(PRIVATE_SHARED_LIBRARIES) <-- The .so that we built
1811 # $(PRIVATE_LDLIBS) <-- System .so
1812 #
1813 # For now we assume that we don't need any whole static libs.
1814 #
1815 # For both executables and shared libraries we add the proper
1816 # libgcc.a to the start of libraries which puts it in the
1817 # proper spot after .o and .a files get linked in.
1818 #
1819 # TODO: The proper thing to do longer-tem would be proper gyp
1820 # support for a custom link command line.
1821 ['_toolset=="target"', {
1822 'cflags!': [
1823 '-pthread', # Not supported by Android toolchain.
1824 ],
1825 'cflags': [
1826 '-U__linux__', # Don't allow toolchain to claim -D__linux__
1827 '-ffunction-sections',
1828 '-funwind-tables',
1829 '-g',
1830 '-fstack-protector',
1831 '-fno-short-enums',
1832 '-finline-limit=64',
1833 '-Wa,--noexecstack',
1834 '-Wno-error=non-virtual-dtor', # TODO(tedbo): Fix warnings.
1835 '<@(release_extra_cflags)',
1836 # Note: This include is in cflags to ensure that it comes after
1837 # all of the includes.
1838 '-I<(android_ndk_include)',
1839 ],
1840 'defines': [
1841 'ANDROID',
1842 '__GNU_SOURCE=1', # Necessary for clone()
1843 'USE_STLPORT=1',
1844 '_STLP_USE_PTR_SPECIALIZATIONS=1',
1845 'HAVE_OFF64_T',
1846 'HAVE_SYS_UIO_H',
1847 'ANDROID_BINSIZE_HACK', # Enable temporary hacks to reduce binsize .
1848 ],
1849 'ldflags!': [
1850 '-pthread', # Not supported by Android toolchain.
1851 ],
1852 'ldflags': [
1853 '-nostdlib',
1854 '-Wl,--no-undefined',
1855 '-Wl,--icf=safe', # Enable identical code folding to reduce size
1856 # Don't export symbols from statically linked libraries.
1857 '-Wl,--exclude-libs=ALL',
1858 ],
1859 'libraries!': [
1860 '-lrt', # librt is built into Bionic.
1861 # Not supported by Android toolchain.
1862 # Where do these come from? Can't find references in
1863 # any Chromium gyp or gypi file. Maybe they come from
1864 # gyp itself?
1865 '-lpthread', '-lnss3', '-lnssutil3', '-lsmime3', '-lplds4', '-lpl c4', '-lnspr4',
1866 ],
1867 'libraries': [
1868 '-l<(android_stlport_library)',
1869 # Manually link the libgcc.a that the cross compiler uses.
1870 '<!($CROSS_CC -print-libgcc-file-name)',
1871 '-lc',
1872 '-ldl',
1873 '-lstdc++',
1874 '-lm',
1875 ],
1876 'conditions': [
1877 ['android_build_type==1', {
1878 'ldflags': [
1879 '-Wl,-rpath-link=<(android_ndk_lib):<(android_lib)',
1880 '-L<(android_ndk_lib)',
1881 '-L<(android_lib)',
1882 ],
1883 },
1884 { # android_build_type==0
1885 'ldflags': [
1886 '-Wl,-rpath-link=<(android_ndk_lib)',
1887 '-L<(android_ndk_lib)',
1888 ],
1889 }],
1890 # NOTE: The stlport header include paths below are specified in
1891 # cflags rather than include_dirs because they need to come
1892 # after include_dirs. Think of them like system headers, but
1893 # don't use '-isystem' because the arm-linux-androideabi-4.4.3
1894 # toolchain (circa Gingerbread) will exhibit strange errors.
1895 # The include ordering here is important; change with caution.
1896 ['use_system_stlport==0', {
1897 'cflags': [
1898 '-I<(android_ndk_root)/sources/cxx-stl/stlport/stlport',
1899 ],
1900 'conditions': [
1901 ['target_arch=="arm" and armv7==1', {
1902 'ldflags': [
1903 '-L<(android_ndk_root)/sources/cxx-stl/stlport/libs/armeab i-v7a',
1904 ],
1905 }],
1906 ['target_arch=="arm" and armv7==0', {
1907 'ldflags': [
1908 '-L<(android_ndk_root)/sources/cxx-stl/stlport/libs/armeab i',
1909 ],
1910 }],
1911 ['target_arch=="ia32"', {
1912 'ldflags': [
1913 '-L<(android_ndk_root)/sources/cxx-stl/stlport/libs/x86',
1914 ],
1915 }],
1916 ],
1917 }],
1918 ['target_arch=="ia32"', {
1919 # The x86 toolchain currently has problems with stack-protector.
1920 'cflags!': [
1921 '-fstack-protector',
1922 ],
1923 'cflags': [
1924 '-fno-stack-protector',
1925 ],
1926 }],
1927 ],
1928 'target_conditions': [
1929 ['_type=="executable"', {
1930 'ldflags': [
1931 '-Bdynamic',
1932 '-Wl,-dynamic-linker,/system/bin/linker',
1933 '-Wl,--gc-sections',
1934 '-Wl,-z,nocopyreloc',
1935 # crtbegin_dynamic.o should be the last item in ldflags.
1936 '<(android_ndk_lib)/crtbegin_dynamic.o',
1937 ],
1938 'libraries': [
1939 # crtend_android.o needs to be the last item in libraries.
1940 # Do not add any libraries after this!
1941 '<(android_ndk_lib)/crtend_android.o',
1942 ],
1943 }],
1944 ['_type=="shared_library"', {
1945 'ldflags': [
1946 '-Wl,-shared,-Bsymbolic',
1947 ],
1948 }],
1949 ],
1950 }],
1951 # Settings for building host targets using the system toolchain.
1952 ['_toolset=="host"', {
1953 'ldflags!': [
1954 '-Wl,-z,noexecstack',
1955 '-Wl,--gc-sections',
1956 '-Wl,-O1',
1957 '-Wl,--as-needed',
1958 ],
1959 }],
1960 ],
1961 },
1962 }],
1625 ['OS=="solaris"', { 1963 ['OS=="solaris"', {
1626 'cflags!': ['-fvisibility=hidden'], 1964 'cflags!': ['-fvisibility=hidden'],
1627 'cflags_cc!': ['-fvisibility-inlines-hidden'], 1965 'cflags_cc!': ['-fvisibility-inlines-hidden'],
1628 }], 1966 }],
1629 ['OS=="mac"', { 1967 ['OS=="mac"', {
1630 'target_defaults': { 1968 'target_defaults': {
1631 'variables': { 1969 'variables': {
1632 # These should end with %, but there seems to be a bug with % in 1970 # These should end with %, but there seems to be a bug with % in
1633 # variables that are intended to be set to different values in 1971 # variables that are intended to be set to different values in
1634 # different targets, like these. 1972 # different targets, like these.
(...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after
2055 # settings in target dicts. SYMROOT is a special case, because many other 2393 # settings in target dicts. SYMROOT is a special case, because many other
2056 # Xcode variables depend on it, including variables such as 2394 # Xcode variables depend on it, including variables such as
2057 # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something 2395 # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something
2058 # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the 2396 # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the
2059 # files to appear (when present) in the UI as actual files and not red 2397 # files to appear (when present) in the UI as actual files and not red
2060 # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR, 2398 # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR,
2061 # and therefore SYMROOT, needs to be set at the project level. 2399 # and therefore SYMROOT, needs to be set at the project level.
2062 'SYMROOT': '<(DEPTH)/xcodebuild', 2400 'SYMROOT': '<(DEPTH)/xcodebuild',
2063 }, 2401 },
2064 } 2402 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698