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

Side by Side Diff: build/common.gypi

Issue 691783003: [WIP NOT FOR COMMIT] Switch Android to libc++ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add gn changes Created 6 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
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 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 1659 matching lines...) Expand 10 before | Expand all | Expand 10 after
1670 'android_host_arch%': '<!(uname -m)', 1670 'android_host_arch%': '<!(uname -m)',
1671 # Android API-level of the SDK used for compilation. 1671 # Android API-level of the SDK used for compilation.
1672 'android_sdk_version%': '21', 1672 'android_sdk_version%': '21',
1673 'android_sdk_build_tools_version%': '21.0.1', 1673 'android_sdk_build_tools_version%': '21.0.1',
1674 'host_os%': "<!(uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/')", 1674 'host_os%': "<!(uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/')",
1675 }, 1675 },
1676 # Copy conditionally-set variables out one scope. 1676 # Copy conditionally-set variables out one scope.
1677 'android_ndk_root%': '<(android_ndk_root)', 1677 'android_ndk_root%': '<(android_ndk_root)',
1678 'android_sdk_root%': '<(android_sdk_root)', 1678 'android_sdk_root%': '<(android_sdk_root)',
1679 'android_sdk_version%': '<(android_sdk_version)', 1679 'android_sdk_version%': '<(android_sdk_version)',
1680 'android_stlport_root': '<(android_ndk_root)/sources/cxx-stl/stlport', 1680 'android_libcpp_root': '<(android_ndk_root)/sources/cxx-stl/llvm-libc+ +',
1681 'host_os%': '<(host_os)', 1681 'host_os%': '<(host_os)',
1682 1682
1683 'android_sdk%': '<(android_sdk_root)/platforms/android-<(android_sdk_v ersion)', 1683 'android_sdk%': '<(android_sdk_root)/platforms/android-<(android_sdk_v ersion)',
1684 # Android SDK build tools (e.g. dx, aapt, aidl) 1684 # Android SDK build tools (e.g. dx, aapt, aidl)
1685 'android_sdk_tools%': '<(android_sdk_root)/build-tools/<(android_sdk_b uild_tools_version)', 1685 'android_sdk_tools%': '<(android_sdk_root)/build-tools/<(android_sdk_b uild_tools_version)',
1686 1686
1687 # Android API level 14 is ICS (Android 4.0) which is the minimum 1687 # Android API level 14 is ICS (Android 4.0) which is the minimum
1688 # platform requirement for Chrome on Android, we use it for native 1688 # platform requirement for Chrome on Android, we use it for native
1689 # code compilation. 1689 # code compilation.
1690 'conditions': [ 1690 'conditions': [
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
1747 'android_sdk_root%': '<(android_sdk_root)', 1747 'android_sdk_root%': '<(android_sdk_root)',
1748 'android_sdk_version%': '<(android_sdk_version)', 1748 'android_sdk_version%': '<(android_sdk_version)',
1749 'android_toolchain%': '<(android_toolchain)', 1749 'android_toolchain%': '<(android_toolchain)',
1750 1750
1751 'android_ndk_include': '<(android_ndk_sysroot)/usr/include', 1751 'android_ndk_include': '<(android_ndk_sysroot)/usr/include',
1752 'android_ndk_lib': '<(android_ndk_sysroot)/<(android_ndk_lib_dir)', 1752 'android_ndk_lib': '<(android_ndk_sysroot)/<(android_ndk_lib_dir)',
1753 'android_sdk_tools%': '<(android_sdk_tools)', 1753 'android_sdk_tools%': '<(android_sdk_tools)',
1754 'android_sdk%': '<(android_sdk)', 1754 'android_sdk%': '<(android_sdk)',
1755 'android_sdk_jar%': '<(android_sdk)/android.jar', 1755 'android_sdk_jar%': '<(android_sdk)/android.jar',
1756 1756
1757 'android_stlport_root': '<(android_stlport_root)', 1757 'android_libcpp_root': '<(android_libcpp_root)',
1758 'android_stlport_include': '<(android_stlport_root)/stlport', 1758 'android_libcpp_include': '<(android_libcpp_root)/libcxx/include',
1759 'android_stlport_libs_dir': '<(android_stlport_root)/libs/<(android_app_ abi)', 1759 'android_libcpp_libs_dir': '<(android_libcpp_root)/libs/<(android_app_ab i)',
1760
1760 'host_os%': '<(host_os)', 1761 'host_os%': '<(host_os)',
1761 1762
1762 # Location of the "objcopy" binary, used by both gyp and scripts. 1763 # Location of the "objcopy" binary, used by both gyp and scripts.
1763 'android_objcopy%' : '<!(/bin/echo -n <(android_toolchain)/*-objcopy)', 1764 'android_objcopy%' : '<!(/bin/echo -n <(android_toolchain)/*-objcopy)',
1764 1765
1765 # Location of the "strip" binary, used by both gyp and scripts. 1766 # Location of the "strip" binary, used by both gyp and scripts.
1766 'android_strip%' : '<!(/bin/echo -n <(android_toolchain)/*-strip)', 1767 'android_strip%' : '<!(/bin/echo -n <(android_toolchain)/*-strip)',
1767 1768
1768 # Location of the "readelf" binary. 1769 # Location of the "readelf" binary.
1769 'android_readelf%' : '<!(/bin/echo -n <(android_toolchain)/*-readelf)', 1770 'android_readelf%' : '<!(/bin/echo -n <(android_toolchain)/*-readelf)',
(...skipping 2137 matching lines...) Expand 10 before | Expand all | Expand 10 after
3907 '-fno-tree-sra', 3908 '-fno-tree-sra',
3908 # The following option is disabled to improve binary 3909 # The following option is disabled to improve binary
3909 # size and performance in gcc 4.9. 3910 # size and performance in gcc 4.9.
3910 '-fno-caller-saves', 3911 '-fno-caller-saves',
3911 '-Wno-psabi', 3912 '-Wno-psabi',
3912 ], 3913 ],
3913 # Android now supports .relro sections properly. 3914 # Android now supports .relro sections properly.
3914 # NOTE: While these flags enable the generation of .relro 3915 # NOTE: While these flags enable the generation of .relro
3915 # sections, the generated libraries can still be loaded on 3916 # sections, the generated libraries can still be loaded on
3916 # older Android platform versions. 3917 # older Android platform versions.
3918 'cflags_cc': [
3919 '-std=gnu++11',
3920 ],
Nico 2014/11/05 17:30:10 Why do you need this? Everything should already bu
Fabrice (no longer in Chrome) 2014/11/12 11:52:29 Done.
3917 'ldflags': [ 3921 'ldflags': [
3918 '-Wl,-z,relro', 3922 '-Wl,-z,relro',
3919 '-Wl,-z,now', 3923 '-Wl,-z,now',
3920 '-fuse-ld=gold', 3924 '-fuse-ld=gold',
3921 ], 3925 ],
3922 'conditions': [ 3926 'conditions': [
3923 ['gcc_version==48 and clang==0', { 3927 ['gcc_version==48 and clang==0', {
3924 'cflags': [ 3928 'cflags': [
3925 # The following 5 options are disabled to save on 3929 # The following 5 options are disabled to save on
3926 # binary size in GCC 4.8. 3930 # binary size in GCC 4.8.
(...skipping 537 matching lines...) Expand 10 before | Expand all | Expand 10 after
4464 ['OS=="android"', { 4468 ['OS=="android"', {
4465 'variables': { 4469 'variables': {
4466 # This is a unique identifier for a given build. It's used for 4470 # This is a unique identifier for a given build. It's used for
4467 # identifying various build artifacts corresponding to a particular 4471 # identifying various build artifacts corresponding to a particular
4468 # build of chrome (e.g. where to find archived symbols). 4472 # build of chrome (e.g. where to find archived symbols).
4469 'chrome_build_id%': '', 4473 'chrome_build_id%': '',
4470 'conditions': [ 4474 'conditions': [
4471 # Figure this out early since it needs symbols from libgcc.a, so it 4475 # Figure this out early since it needs symbols from libgcc.a, so it
4472 # has to be before that in the set of libraries. 4476 # has to be before that in the set of libraries.
4473 ['component=="shared_library"', { 4477 ['component=="shared_library"', {
4474 'android_stlport_library': 'stlport_shared', 4478 'android_libcpp_library': 'c++_shared',
4475 }, { 4479 }, {
4476 'android_stlport_library': 'stlport_static', 4480 'android_libcpp_library': 'c++_static',
4477 }], 4481 }],
4478 ], 4482 ],
4479 4483
4480 # Placing this variable here prevents from forking libvpx, used 4484 # Placing this variable here prevents from forking libvpx, used
4481 # by remoting. Remoting is off, so it needn't built, 4485 # by remoting. Remoting is off, so it needn't built,
4482 # so forking it's deps seems like overkill. 4486 # so forking it's deps seems like overkill.
4483 # But this variable need defined to properly run gyp. 4487 # But this variable need defined to properly run gyp.
4484 # A proper solution is to have an OS==android conditional 4488 # A proper solution is to have an OS==android conditional
4485 # in third_party/libvpx/libvpx.gyp to define it. 4489 # in third_party/libvpx/libvpx.gyp to define it.
4486 'libvpx_path': 'lib/linux/arm', 4490 'libvpx_path': 'lib/linux/arm',
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
4550 '-g', 4554 '-g',
4551 '-fstack-protector', 4555 '-fstack-protector',
4552 '-fno-short-enums', 4556 '-fno-short-enums',
4553 '-finline-limit=64', 4557 '-finline-limit=64',
4554 '-Wa,--noexecstack', 4558 '-Wa,--noexecstack',
4555 '<@(release_extra_cflags)', 4559 '<@(release_extra_cflags)',
4556 ], 4560 ],
4557 'defines': [ 4561 'defines': [
4558 'ANDROID', 4562 'ANDROID',
4559 '__GNU_SOURCE=1', # Necessary for clone() 4563 '__GNU_SOURCE=1', # Necessary for clone()
4560 'USE_STLPORT=1',
4561 '_STLP_USE_PTR_SPECIALIZATIONS=1',
4562 'CHROME_BUILD_ID="<(chrome_build_id)"', 4564 'CHROME_BUILD_ID="<(chrome_build_id)"',
4563 ], 4565 ],
4564 'ldflags!': [ 4566 'ldflags!': [
4565 '-pthread', # Not supported by Android toolchain. 4567 '-pthread', # Not supported by Android toolchain.
4566 ], 4568 ],
4567 'ldflags': [ 4569 'ldflags': [
4568 '-Wl,--no-undefined', 4570 '-Wl,--no-undefined',
4569 ], 4571 ],
4570 'conditions': [ 4572 'conditions': [
4571 ['component=="static_library"', { 4573 ['component=="static_library"', {
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
4635 'HAVE_SYS_UIO_H', 4637 'HAVE_SYS_UIO_H',
4636 ], 4638 ],
4637 'cflags': [ 4639 'cflags': [
4638 '--sysroot=<(android_ndk_sysroot)', 4640 '--sysroot=<(android_ndk_sysroot)',
4639 ], 4641 ],
4640 'ldflags': [ 4642 'ldflags': [
4641 '--sysroot=<(android_ndk_sysroot)', 4643 '--sysroot=<(android_ndk_sysroot)',
4642 '-nostdlib', 4644 '-nostdlib',
4643 ], 4645 ],
4644 'libraries': [ 4646 'libraries': [
4645 '-l<(android_stlport_library)', 4647 '-l<(android_libcpp_library)',
4648 '-latomic',
4646 # Manually link the libgcc.a that the cross compiler uses. 4649 # Manually link the libgcc.a that the cross compiler uses.
4647 '<!(<(android_toolchain)/*-gcc -print-libgcc-file-name)', 4650 '<!(<(android_toolchain)/*-gcc -print-libgcc-file-name)',
4651 '-lm',
4648 '-lc', 4652 '-lc',
4649 '-ldl', 4653 '-ldl',
4650 '-lm',
4651 ], 4654 ],
4652 }], 4655 }],
4653 ['android_webview_build==1', { 4656 ['android_webview_build==1', {
4654 'cflags': [ 4657 'cflags': [
4655 # Android predefines this as 1; undefine it here so Chromium 4658 # Android predefines this as 1; undefine it here so Chromium
4656 # can redefine it later to be 2 for chromium code and unset 4659 # can redefine it later to be 2 for chromium code and unset
4657 # for third party code. This works because cflags are added 4660 # for third party code. This works because cflags are added
4658 # before defines. 4661 # before defines.
4659 '-U_FORTIFY_SOURCE', 4662 '-U_FORTIFY_SOURCE',
4660 # Disable any additional warnings enabled by the Android build system but which 4663 # Disable any additional warnings enabled by the Android build system but which
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
4692 ], 4695 ],
4693 }], 4696 }],
4694 ], 4697 ],
4695 }], 4698 }],
4696 ['target_arch == "arm"', { 4699 ['target_arch == "arm"', {
4697 'ldflags': [ 4700 'ldflags': [
4698 # Enable identical code folding to reduce size. 4701 # Enable identical code folding to reduce size.
4699 '-Wl,--icf=safe', 4702 '-Wl,--icf=safe',
4700 ], 4703 ],
4701 }], 4704 }],
4702 # NOTE: The stlport header include paths below are specified in
4703 # cflags rather than include_dirs because they need to come
4704 # after include_dirs. Think of them like system headers, but
4705 # don't use '-isystem' because the arm-linux-androideabi-4.4.3
4706 # toolchain (circa Gingerbread) will exhibit strange errors.
4707 # The include ordering here is important; change with caution.
4708 ['android_webview_build==0', { 4705 ['android_webview_build==0', {
4709 'cflags': [ 4706 'cflags': [
4710 '-isystem<(android_stlport_include)', 4707 '-isystem<(android_libcpp_include)',
4708 '-isystem<(android_ndk_root)/sources/cxx-stl/llvm-libc++abi/li bcxxabi/include',
4709 '-isystem<(android_ndk_root)/sources/android/support/include',
4711 ], 4710 ],
4712 'ldflags': [ 4711 'ldflags': [
4713 '-L<(android_stlport_libs_dir)', 4712 '-L<(android_libcpp_libs_dir)',
4714 ], 4713 ],
4715 }, { # else: android_webview_build!=0 4714 }, { # else: android_webview_build!=0
4716 'aosp_build_settings': { 4715 'aosp_build_settings': {
4717 # Specify that we want to statically link stlport from the 4716 # Specify that we want to statically link stlport from the
4718 # NDK. This will provide all the include and library paths 4717 # NDK. This will provide all the include and library paths
4719 # automatically at build time, and link the right library. 4718 # automatically at build time, and link the right library.
4720 'LOCAL_NDK_STL_VARIANT': 'stlport_static', 4719 'LOCAL_NDK_STL_VARIANT': 'libc++_static',
4721 }, 4720 },
4722 }], 4721 }],
4723 ['target_arch=="ia32"', { 4722 ['target_arch=="ia32"', {
4724 # The x86 toolchain currently has problems with stack-protector. 4723 # The x86 toolchain currently has problems with stack-protector.
4725 'cflags!': [ 4724 'cflags!': [
4726 '-fstack-protector', 4725 '-fstack-protector',
4727 ], 4726 ],
4728 'cflags': [ 4727 'cflags': [
4729 '-fno-stack-protector', 4728 '-fno-stack-protector',
4730 ], 4729 ],
(...skipping 1157 matching lines...) Expand 10 before | Expand all | Expand 10 after
5888 # settings in target dicts. SYMROOT is a special case, because many other 5887 # settings in target dicts. SYMROOT is a special case, because many other
5889 # Xcode variables depend on it, including variables such as 5888 # Xcode variables depend on it, including variables such as
5890 # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something 5889 # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something
5891 # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the 5890 # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the
5892 # files to appear (when present) in the UI as actual files and not red 5891 # files to appear (when present) in the UI as actual files and not red
5893 # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR, 5892 # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR,
5894 # and therefore SYMROOT, needs to be set at the project level. 5893 # and therefore SYMROOT, needs to be set at the project level.
5895 'SYMROOT': '<(DEPTH)/xcodebuild', 5894 'SYMROOT': '<(DEPTH)/xcodebuild',
5896 }, 5895 },
5897 } 5896 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698