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

Side by Side Diff: build/common.gypi

Issue 571953002: android_webview: Build against NDK prebuilts, not system libraries. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix library link order on arm64 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
« no previous file with comments | « android_webview/libwebviewchromium.gypi ('k') | build/config/android/config.gni » ('j') | 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) 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 1742 matching lines...) Expand 10 before | Expand all | Expand 10 after
1753 # Sessions are store separately in the Java side. 1753 # Sessions are store separately in the Java side.
1754 'enable_session_service%': 0, 1754 'enable_session_service%': 0,
1755 1755
1756 'p2p_apis%' : 0, 1756 'p2p_apis%' : 0,
1757 1757
1758 'gtest_target_type%': 'shared_library', 1758 'gtest_target_type%': 'shared_library',
1759 1759
1760 # Uses system APIs for decoding audio and video. 1760 # Uses system APIs for decoding audio and video.
1761 'use_libffmpeg%': '0', 1761 'use_libffmpeg%': '0',
1762 1762
1763 # When building as part of the Android system, use system libraries 1763 # TODO(torne): Remove this unsupported option once all the places that
1764 # where possible to reduce ROM size. 1764 # test it have been updated.
1765 'use_system_stlport%': '<(android_webview_build)', 1765 'use_system_stlport%': 0,
1766 1766
1767 # Copy it out one scope. 1767 # Copy it out one scope.
1768 'android_webview_build%': '<(android_webview_build)', 1768 'android_webview_build%': '<(android_webview_build)',
1769 1769
1770 # Default android linker script for shared library exports. 1770 # Default android linker script for shared library exports.
1771 'android_linker_script%': '<(SHARED_INTERMEDIATE_DIR)/android_exports.ls t', 1771 'android_linker_script%': '<(SHARED_INTERMEDIATE_DIR)/android_exports.ls t',
1772 }], # OS=="android" 1772 }], # OS=="android"
1773 ['embedded==1', { 1773 ['embedded==1', {
1774 'use_system_fontconfig%': 0, 1774 'use_system_fontconfig%': 0,
1775 }, { 1775 }, {
(...skipping 2556 matching lines...) Expand 10 before | Expand all | Expand 10 after
4332 }, 4332 },
4333 }], 4333 }],
4334 # Android-specific options; note that most are set above with Linux. 4334 # Android-specific options; note that most are set above with Linux.
4335 ['OS=="android"', { 4335 ['OS=="android"', {
4336 'variables': { 4336 'variables': {
4337 # This is a unique identifier for a given build. It's used for 4337 # This is a unique identifier for a given build. It's used for
4338 # identifying various build artifacts corresponding to a particular 4338 # identifying various build artifacts corresponding to a particular
4339 # build of chrome (e.g. where to find archived symbols). 4339 # build of chrome (e.g. where to find archived symbols).
4340 'chrome_build_id%': '', 4340 'chrome_build_id%': '',
4341 'conditions': [ 4341 'conditions': [
4342 # Use shared stlport library when system one used.
4343 # Figure this out early since it needs symbols from libgcc.a, so it 4342 # Figure this out early since it needs symbols from libgcc.a, so it
4344 # has to be before that in the set of libraries. 4343 # has to be before that in the set of libraries.
4345 ['use_system_stlport==1', { 4344 ['component=="shared_library"', {
4346 'android_stlport_library': 'stlport', 4345 'android_stlport_library': 'stlport_shared',
4347 }, { 4346 }, {
4348 'conditions': [ 4347 'android_stlport_library': 'stlport_static',
4349 ['component=="shared_library"', {
4350 'android_stlport_library': 'stlport_shared',
4351 }, {
4352 'android_stlport_library': 'stlport_static',
4353 }],
4354 ],
4355 }], 4348 }],
4356 ], 4349 ],
4357 4350
4358 # Placing this variable here prevents from forking libvpx, used 4351 # Placing this variable here prevents from forking libvpx, used
4359 # by remoting. Remoting is off, so it needn't built, 4352 # by remoting. Remoting is off, so it needn't built,
4360 # so forking it's deps seems like overkill. 4353 # so forking it's deps seems like overkill.
4361 # But this variable need defined to properly run gyp. 4354 # But this variable need defined to properly run gyp.
4362 # A proper solution is to have an OS==android conditional 4355 # A proper solution is to have an OS==android conditional
4363 # in third_party/libvpx/libvpx.gyp to define it. 4356 # in third_party/libvpx/libvpx.gyp to define it.
4364 'libvpx_path': 'lib/linux/arm', 4357 'libvpx_path': 'lib/linux/arm',
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
4436 'ANDROID', 4429 'ANDROID',
4437 '__GNU_SOURCE=1', # Necessary for clone() 4430 '__GNU_SOURCE=1', # Necessary for clone()
4438 'USE_STLPORT=1', 4431 'USE_STLPORT=1',
4439 '_STLP_USE_PTR_SPECIALIZATIONS=1', 4432 '_STLP_USE_PTR_SPECIALIZATIONS=1',
4440 'CHROME_BUILD_ID="<(chrome_build_id)"', 4433 'CHROME_BUILD_ID="<(chrome_build_id)"',
4441 ], 4434 ],
4442 'ldflags!': [ 4435 'ldflags!': [
4443 '-pthread', # Not supported by Android toolchain. 4436 '-pthread', # Not supported by Android toolchain.
4444 ], 4437 ],
4445 'ldflags': [ 4438 'ldflags': [
4446 '-nostdlib',
4447 '-Wl,--no-undefined', 4439 '-Wl,--no-undefined',
4448 ], 4440 ],
4449 'libraries': [
4450 '-l<(android_stlport_library)',
4451 # Manually link the libgcc.a that the cross compiler uses.
4452 '<!(<(android_toolchain)/*-gcc -print-libgcc-file-name)',
4453 '-lc',
4454 '-ldl',
4455 '-lm',
4456 ],
4457 'conditions': [ 4441 'conditions': [
4458 ['component=="static_library"', { 4442 ['component=="static_library"', {
4459 'ldflags': [ 4443 'ldflags': [
4460 '-Wl,--exclude-libs=ALL', 4444 '-Wl,--exclude-libs=ALL',
4461 ], 4445 ],
4462 }], 4446 }],
4463 ['clang==1', { 4447 ['clang==1', {
4464 'cflags': [ 4448 'cflags': [
4465 # Work around incompatibilities between bionic and clang 4449 # Work around incompatibilities between bionic and clang
4466 # headers. 4450 # headers.
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
4519 'defines': [ 4503 'defines': [
4520 # The NDK has these things, but doesn't define the constants 4504 # The NDK has these things, but doesn't define the constants
4521 # to say that it does. Define them here instead. 4505 # to say that it does. Define them here instead.
4522 'HAVE_SYS_UIO_H', 4506 'HAVE_SYS_UIO_H',
4523 ], 4507 ],
4524 'cflags': [ 4508 'cflags': [
4525 '--sysroot=<(android_ndk_sysroot)', 4509 '--sysroot=<(android_ndk_sysroot)',
4526 ], 4510 ],
4527 'ldflags': [ 4511 'ldflags': [
4528 '--sysroot=<(android_ndk_sysroot)', 4512 '--sysroot=<(android_ndk_sysroot)',
4513 '-nostdlib',
4514 ],
4515 'libraries': [
4516 '-l<(android_stlport_library)',
4517 # Manually link the libgcc.a that the cross compiler uses.
4518 '<!(<(android_toolchain)/*-gcc -print-libgcc-file-name)',
4519 '-lc',
4520 '-ldl',
4521 '-lm',
4529 ], 4522 ],
4530 }], 4523 }],
4531 ['android_webview_build==1', { 4524 ['android_webview_build==1', {
4532 'include_dirs': [
4533 # OpenAL headers from the Android tree.
4534 '<(android_src)/frameworks/wilhelm/include',
4535 ],
4536 'cflags': [ 4525 'cflags': [
4537 # Android predefines this as 1; undefine it here so Chromium 4526 # Android predefines this as 1; undefine it here so Chromium
4538 # can redefine it later to be 2 for chromium code and unset 4527 # can redefine it later to be 2 for chromium code and unset
4539 # for third party code. This works because cflags are added 4528 # for third party code. This works because cflags are added
4540 # before defines. 4529 # before defines.
4541 '-U_FORTIFY_SOURCE', 4530 '-U_FORTIFY_SOURCE',
4542 # Disable any additional warnings enabled by the Android build system but which 4531 # Disable any additional warnings enabled by the Android build system but which
4543 # chromium does not build cleanly with (when treating warning as errors). 4532 # chromium does not build cleanly with (when treating warning as errors).
4544 # Things that are part of -Wextra: 4533 # Things that are part of -Wextra:
4545 '-Wno-extra', # Enabled by -Wextra, but no specific flag 4534 '-Wno-extra', # Enabled by -Wextra, but no specific flag
4546 '-Wno-ignored-qualifiers', 4535 '-Wno-ignored-qualifiers',
4547 '-Wno-type-limits', 4536 '-Wno-type-limits',
4548 '-Wno-unused-but-set-variable', 4537 '-Wno-unused-but-set-variable',
4549 ], 4538 ],
4550 'cflags_cc': [ 4539 'cflags_cc': [
4551 # Other things unrelated to -Wextra: 4540 # Other things unrelated to -Wextra:
4552 '-Wno-non-virtual-dtor', 4541 '-Wno-non-virtual-dtor',
4553 '-Wno-sign-promo', 4542 '-Wno-sign-promo',
4554 ], 4543 ],
4544 'libraries': [
4545 '-ldl',
4546 ],
4555 }], 4547 }],
4556 ['android_webview_build==1', { 4548 ['android_webview_build==1', {
4557 'target_conditions': [ 4549 'target_conditions': [
4558 ['chromium_code==0', { 4550 ['chromium_code==0', {
4559 'cflags': [ 4551 'cflags': [
4560 # There is a class of warning which: 4552 # There is a class of warning which:
4561 # 1) Android always enables and also treats as errors 4553 # 1) Android always enables and also treats as errors
4562 # 2) Chromium ignores in third party code 4554 # 2) Chromium ignores in third party code
4563 # So we re-enable those warnings when building Android. 4555 # So we re-enable those warnings when building Android.
4564 '-Wno-address', 4556 '-Wno-address',
(...skipping 12 matching lines...) Expand all
4577 # Enable identical code folding to reduce size. 4569 # Enable identical code folding to reduce size.
4578 '-Wl,--icf=safe', 4570 '-Wl,--icf=safe',
4579 ], 4571 ],
4580 }], 4572 }],
4581 # NOTE: The stlport header include paths below are specified in 4573 # NOTE: The stlport header include paths below are specified in
4582 # cflags rather than include_dirs because they need to come 4574 # cflags rather than include_dirs because they need to come
4583 # after include_dirs. Think of them like system headers, but 4575 # after include_dirs. Think of them like system headers, but
4584 # don't use '-isystem' because the arm-linux-androideabi-4.4.3 4576 # don't use '-isystem' because the arm-linux-androideabi-4.4.3
4585 # toolchain (circa Gingerbread) will exhibit strange errors. 4577 # toolchain (circa Gingerbread) will exhibit strange errors.
4586 # The include ordering here is important; change with caution. 4578 # The include ordering here is important; change with caution.
4587 ['use_system_stlport==1', { 4579 ['android_webview_build==0', {
4588 'cflags': [
4589 # For libstdc++/include, which is used by stlport.
4590 '-I<(android_src)/bionic',
4591 '-I<(android_src)/external/stlport/stlport',
4592 ],
4593 }, { # else: use_system_stlport!=1
4594 'cflags': [ 4580 'cflags': [
4595 '-isystem<(android_stlport_include)', 4581 '-isystem<(android_stlport_include)',
4596 ], 4582 ],
4597 'ldflags': [ 4583 'ldflags': [
4598 '-L<(android_stlport_libs_dir)', 4584 '-L<(android_stlport_libs_dir)',
4599 ], 4585 ],
4586 }, { # else: android_webview_build!=0
4587 'aosp_build_settings': {
4588 # Specify that we want to statically link stlport from the
4589 # NDK. This will provide all the include and library paths
4590 # automatically at build time, and link the right library.
4591 'LOCAL_NDK_STL_VARIANT': 'stlport_static',
4592 },
4600 }], 4593 }],
4601 ['target_arch=="ia32"', { 4594 ['target_arch=="ia32"', {
4602 # The x86 toolchain currently has problems with stack-protector. 4595 # The x86 toolchain currently has problems with stack-protector.
4603 'cflags!': [ 4596 'cflags!': [
4604 '-fstack-protector', 4597 '-fstack-protector',
4605 ], 4598 ],
4606 'cflags': [ 4599 'cflags': [
4607 '-fno-stack-protector', 4600 '-fno-stack-protector',
4608 ], 4601 ],
4609 }], 4602 }],
(...skipping 1139 matching lines...) Expand 10 before | Expand all | Expand 10 after
5749 # settings in target dicts. SYMROOT is a special case, because many other 5742 # settings in target dicts. SYMROOT is a special case, because many other
5750 # Xcode variables depend on it, including variables such as 5743 # Xcode variables depend on it, including variables such as
5751 # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something 5744 # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something
5752 # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the 5745 # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the
5753 # files to appear (when present) in the UI as actual files and not red 5746 # files to appear (when present) in the UI as actual files and not red
5754 # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR, 5747 # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR,
5755 # and therefore SYMROOT, needs to be set at the project level. 5748 # and therefore SYMROOT, needs to be set at the project level.
5756 'SYMROOT': '<(DEPTH)/xcodebuild', 5749 'SYMROOT': '<(DEPTH)/xcodebuild',
5757 }, 5750 },
5758 } 5751 }
OLDNEW
« no previous file with comments | « android_webview/libwebviewchromium.gypi ('k') | build/config/android/config.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698