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

Side by Side Diff: build/common.gypi

Issue 646873004: Add Link-Time Optimizations support for Android. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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
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 614 matching lines...) Expand 10 before | Expand all | Expand 10 after
625 'enable_load_completion_hacks%': 1, 625 'enable_load_completion_hacks%': 1,
626 626
627 # Automatically select platforms under ozone. Turn this off to 627 # Automatically select platforms under ozone. Turn this off to
628 # build only explicitly selected platforms. 628 # build only explicitly selected platforms.
629 'ozone_auto_platforms%': 1, 629 'ozone_auto_platforms%': 1,
630 630
631 # If this is set clang is used as host compiler, but not as target 631 # If this is set clang is used as host compiler, but not as target
632 # compiler. Always do this by default. 632 # compiler. Always do this by default.
633 'host_clang%': 1, 633 'host_clang%': 1,
634 634
635 # Link-Time Optimizations
636 # crbug.com/407544
637 'use_lto%': 0,
638 'use_lto_o2%': 0,
pasko 2014/10/10 11:59:21 it's worth explaining what use_lto_o2 is. Does use
Fabrice (no longer in Chrome) 2014/10/13 15:45:12 Done.
639
635 'conditions': [ 640 'conditions': [
636 # A flag for POSIX platforms 641 # A flag for POSIX platforms
637 ['OS=="win"', { 642 ['OS=="win"', {
638 'os_posix%': 0, 643 'os_posix%': 0,
639 }, { 644 }, {
640 'os_posix%': 1, 645 'os_posix%': 1,
641 }], 646 }],
642 647
643 # A flag for BSD platforms 648 # A flag for BSD platforms
644 ['OS=="freebsd" or OS=="openbsd"', { 649 ['OS=="freebsd" or OS=="openbsd"', {
(...skipping 527 matching lines...) Expand 10 before | Expand all | Expand 10 after
1172 'spdy_proxy_auth_property%': '<(spdy_proxy_auth_property)', 1177 'spdy_proxy_auth_property%': '<(spdy_proxy_auth_property)',
1173 'spdy_proxy_auth_value%': '<(spdy_proxy_auth_value)', 1178 'spdy_proxy_auth_value%': '<(spdy_proxy_auth_value)',
1174 'enable_mdns%' : '<(enable_mdns)', 1179 'enable_mdns%' : '<(enable_mdns)',
1175 'enable_service_discovery%' : '<(enable_service_discovery)', 1180 'enable_service_discovery%' : '<(enable_service_discovery)',
1176 'enable_wifi_bootstrapping%': '<(enable_wifi_bootstrapping)', 1181 'enable_wifi_bootstrapping%': '<(enable_wifi_bootstrapping)',
1177 'enable_hangout_services_extension%' : '<(enable_hangout_services_extension) ', 1182 'enable_hangout_services_extension%' : '<(enable_hangout_services_extension) ',
1178 'v8_optimized_debug%': '<(v8_optimized_debug)', 1183 'v8_optimized_debug%': '<(v8_optimized_debug)',
1179 'proprietary_codecs%': '<(proprietary_codecs)', 1184 'proprietary_codecs%': '<(proprietary_codecs)',
1180 'use_goma%': '<(use_goma)', 1185 'use_goma%': '<(use_goma)',
1181 'gomadir%': '<(gomadir)', 1186 'gomadir%': '<(gomadir)',
1187 'use_lto%': '<(use_lto)',
1188 'use_lto_o2%': '<use_lto_o2',
1182 'video_hole%': '<(video_hole)', 1189 'video_hole%': '<(video_hole)',
1183 'enable_load_completion_hacks%': '<(enable_load_completion_hacks)', 1190 'enable_load_completion_hacks%': '<(enable_load_completion_hacks)',
1184 'support_pre_M6_history_database%': '<(support_pre_M6_history_database)', 1191 'support_pre_M6_history_database%': '<(support_pre_M6_history_database)',
1185 1192
1186 # Whether or not we are building the Athena shell. 1193 # Whether or not we are building the Athena shell.
1187 'use_athena%': '0', 1194 'use_athena%': '0',
1188 1195
1189 # Use system protobuf instead of bundled one. 1196 # Use system protobuf instead of bundled one.
1190 'use_system_protobuf%': 0, 1197 'use_system_protobuf%': 0,
1191 1198
(...skipping 1104 matching lines...) Expand 10 before | Expand all | Expand 10 after
2296 # Do not disable seccomp_bpf anywhere without talking to 2303 # Do not disable seccomp_bpf anywhere without talking to
2297 # security@chromium.org! 2304 # security@chromium.org!
2298 ['((OS=="linux" or OS=="android") and ' 2305 ['((OS=="linux" or OS=="android") and '
2299 '(target_arch=="ia32" or target_arch=="x64" or ' 2306 '(target_arch=="ia32" or target_arch=="x64" or '
2300 'target_arch=="arm" or target_arch=="mipsel" or ' 2307 'target_arch=="arm" or target_arch=="mipsel" or '
2301 'target_arch=="arm64"))', { 2308 'target_arch=="arm64"))', {
2302 'use_seccomp_bpf%': 1, 2309 'use_seccomp_bpf%': 1,
2303 }, { 2310 }, {
2304 'use_seccomp_bpf%': 0, 2311 'use_seccomp_bpf%': 0,
2305 }], 2312 }],
2313 # Set component build with LTO until all tests pass.
2314 # This reduces link time
pasko 2014/10/10 11:59:21 nit: s/This reduces link time/This reduces link t
Fabrice (no longer in Chrome) 2014/10/13 15:45:12 Done.
2315 ['use_lto==1', {
2316 'component%': "shared_library",
2317 }],
2306 ], 2318 ],
2307 2319
2308 # older history files use fts2 instead of fts3 2320 # older history files use fts2 instead of fts3
2309 'sqlite_enable_fts2%': '<(support_pre_M6_history_database)', 2321 'sqlite_enable_fts2%': '<(support_pre_M6_history_database)',
2310 2322
2311 # The path to the ANGLE library. 2323 # The path to the ANGLE library.
2312 'angle_path': '<(DEPTH)/third_party/angle', 2324 'angle_path': '<(DEPTH)/third_party/angle',
2313 2325
2314 # List of default apps to install in new profiles. The first list contains 2326 # List of default apps to install in new profiles. The first list contains
2315 # the source files as found in svn. The second list, used only for linux, 2327 # the source files as found in svn. The second list, used only for linux,
(...skipping 1422 matching lines...) Expand 10 before | Expand all | Expand 10 after
3738 '-target arm-linux-gnueabihf', 3750 '-target arm-linux-gnueabihf',
3739 ], 3751 ],
3740 'ldflags': [ 3752 'ldflags': [
3741 '-target arm-linux-gnueabihf', 3753 '-target arm-linux-gnueabihf',
3742 ], 3754 ],
3743 }], 3755 }],
3744 ['arm_arch!=""', { 3756 ['arm_arch!=""', {
3745 'cflags': [ 3757 'cflags': [
3746 '-march=<(arm_arch)', 3758 '-march=<(arm_arch)',
3747 ], 3759 ],
3760 'conditions': [
3761 ['use_lto==1 or use_lto_o2==1', {
3762 'ldflags': [
3763 '-march=<(arm_arch)',
3764 ],
3765 }],
3766 ],
3748 }], 3767 }],
3749 ['clang==1 and OS!="android"', { 3768 ['clang==1 and OS!="android"', {
3750 'cflags': [ 3769 'cflags': [
3751 # We need to disable clang's builtin assembler as it can't 3770 # We need to disable clang's builtin assembler as it can't
3752 # handle several asm files, crbug.com/124610 3771 # handle several asm files, crbug.com/124610
3753 '-no-integrated-as', 3772 '-no-integrated-as',
3754 ], 3773 ],
3755 }], 3774 }],
3756 ['arm_tune!=""', { 3775 ['arm_tune!=""', {
3757 'cflags': [ 3776 'cflags': [
3758 '-mtune=<(arm_tune)', 3777 '-mtune=<(arm_tune)',
3759 ], 3778 ],
3779 'conditions': [
3780 ['use_lto==1 or use_lto_o2==1', {
3781 'ldflags': [
3782 '-mtune=<(arm_tune)',
3783 ],
3784 }],
3785 ],
3760 }], 3786 }],
3761 ['arm_fpu!=""', { 3787 ['arm_fpu!=""', {
3762 'cflags': [ 3788 'cflags': [
3763 '-mfpu=<(arm_fpu)', 3789 '-mfpu=<(arm_fpu)',
3764 ], 3790 ],
3791 'conditions': [
3792 ['use_lto==1 or use_lto_o2==1', {
3793 'ldflags': [
3794 '-mfpu=<(arm_fpu)',
3795 ],
3796 }],
3797 ],
3765 }], 3798 }],
3766 ['arm_float_abi!=""', { 3799 ['arm_float_abi!=""', {
3767 'cflags': [ 3800 'cflags': [
3768 '-mfloat-abi=<(arm_float_abi)', 3801 '-mfloat-abi=<(arm_float_abi)',
3769 ], 3802 ],
3803 'conditions': [
3804 ['use_lto==1 or use_lto_o2==1', {
3805 'ldflags': [
3806 '-mfloat-abi=<(arm_float_abi)',
3807 ],
3808 }],
3809 ],
3770 }], 3810 }],
3771 ['arm_thumb==1', { 3811 ['arm_thumb==1', {
3772 'cflags': [ 3812 'cflags': [
3773 '-mthumb', 3813 '-mthumb',
3774 ], 3814 ],
3815 'conditions': [
3816 ['use_lto==1 or use_lto_o2==1', {
3817 'ldflags': [
3818 '-mthumb',
3819 ],
3820 }],
3821 ],
3775 }], 3822 }],
3776 ['OS=="android"', { 3823 ['OS=="android"', {
3777 # Most of the following flags are derived from what Android 3824 # Most of the following flags are derived from what Android
3778 # uses by default when building for arm, reference for which 3825 # uses by default when building for arm, reference for which
3779 # can be found in the following file in the Android NDK: 3826 # can be found in the following file in the Android NDK:
3780 # toolchains/arm-linux-androideabi-4.9/setup.mk 3827 # toolchains/arm-linux-androideabi-4.9/setup.mk
3781 'cflags': [ 3828 'cflags': [
3782 # The tree-sra optimization (scalar replacement for 3829 # The tree-sra optimization (scalar replacement for
3783 # aggregates enabling subsequent optimizations) leads to 3830 # aggregates enabling subsequent optimizations) leads to
3784 # invalid code generation when using the Android NDK's 3831 # invalid code generation when using the Android NDK's
(...skipping 1874 matching lines...) Expand 10 before | Expand all | Expand 10 after
5659 # make generator doesn't support CC_wrapper without CC 5706 # make generator doesn't support CC_wrapper without CC
5660 # in make_global_settings yet. 5707 # in make_global_settings yet.
5661 ['use_goma==1 and ("<(GENERATOR)"=="ninja" or clang==1)', { 5708 ['use_goma==1 and ("<(GENERATOR)"=="ninja" or clang==1)', {
5662 'make_global_settings': [ 5709 'make_global_settings': [
5663 ['CC_wrapper', '<(gomadir)/gomacc'], 5710 ['CC_wrapper', '<(gomadir)/gomacc'],
5664 ['CXX_wrapper', '<(gomadir)/gomacc'], 5711 ['CXX_wrapper', '<(gomadir)/gomacc'],
5665 ['CC.host_wrapper', '<(gomadir)/gomacc'], 5712 ['CC.host_wrapper', '<(gomadir)/gomacc'],
5666 ['CXX.host_wrapper', '<(gomadir)/gomacc'], 5713 ['CXX.host_wrapper', '<(gomadir)/gomacc'],
5667 ], 5714 ],
5668 }], 5715 }],
5716 ['use_lto==1', {
5717 'target_defaults': {
5718 'target_conditions': [
5719 ['_toolset=="target"', {
5720 'cflags': [
5721 '-flto',
5722 '-ffat-lto-objects',
5723 ],
5724 }],
5725 ],
5726 },
5727 }],
5728 ['use_lto==1 or use_lto_o2==1', {
5729 'target_defaults': {
5730 'target_conditions': [
5731 ['_toolset=="target"', {
5732 'ldflags': [
5733 '-flto=32',
5734 ],
5735 }],
5736 ],
5737 },
5738 }],
5669 ], 5739 ],
5670 'xcode_settings': { 5740 'xcode_settings': {
5671 # DON'T ADD ANYTHING NEW TO THIS BLOCK UNLESS YOU REALLY REALLY NEED IT! 5741 # DON'T ADD ANYTHING NEW TO THIS BLOCK UNLESS YOU REALLY REALLY NEED IT!
5672 # This block adds *project-wide* configuration settings to each project 5742 # This block adds *project-wide* configuration settings to each project
5673 # file. It's almost always wrong to put things here. Specify your 5743 # file. It's almost always wrong to put things here. Specify your
5674 # custom xcode_settings in target_defaults to add them to targets instead. 5744 # custom xcode_settings in target_defaults to add them to targets instead.
5675 5745
5676 'conditions': [ 5746 'conditions': [
5677 # In an Xcode Project Info window, the "Base SDK for All Configurations" 5747 # In an Xcode Project Info window, the "Base SDK for All Configurations"
5678 # setting sets the SDK on a project-wide basis. In order to get the 5748 # setting sets the SDK on a project-wide basis. In order to get the
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
5729 # settings in target dicts. SYMROOT is a special case, because many other 5799 # settings in target dicts. SYMROOT is a special case, because many other
5730 # Xcode variables depend on it, including variables such as 5800 # Xcode variables depend on it, including variables such as
5731 # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something 5801 # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something
5732 # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the 5802 # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the
5733 # files to appear (when present) in the UI as actual files and not red 5803 # files to appear (when present) in the UI as actual files and not red
5734 # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR, 5804 # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR,
5735 # and therefore SYMROOT, needs to be set at the project level. 5805 # and therefore SYMROOT, needs to be set at the project level.
5736 'SYMROOT': '<(DEPTH)/xcodebuild', 5806 'SYMROOT': '<(DEPTH)/xcodebuild',
5737 }, 5807 },
5738 } 5808 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698