Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 5238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5249 # grown larger than 4GB, which dsymutil can't handle. Reduce | 5249 # grown larger than 4GB, which dsymutil can't handle. Reduce |
| 5250 # the amount of debug symbols. | 5250 # the amount of debug symbols. |
| 5251 '-fno-standalone-debug', # See http://crbug.com/479841 | 5251 '-fno-standalone-debug', # See http://crbug.com/479841 |
| 5252 ] | 5252 ] |
| 5253 }, | 5253 }, |
| 5254 }], | 5254 }], |
| 5255 ], | 5255 ], |
| 5256 }, # configuration "Release" | 5256 }, # configuration "Release" |
| 5257 }, # configurations | 5257 }, # configurations |
| 5258 'xcode_settings': { | 5258 'xcode_settings': { |
| 5259 # Tell the compiler to use libc++'s headers and the linker to link | |
| 5260 # against libc++. The latter part normally requires OS X 10.7, but | |
| 5261 # we still support running on 10.6. How does this work? Two parts: | |
| 5262 # 1. Chromium's clang doesn't error on -mmacosx-version-min=10.6 | |
| 5263 # combined with -stdlib=libc++ (it normally silently produced a | |
| 5264 # binary that doesn't run on 10.6) | |
|
Mark Mentovai
2015/10/23 13:56:36
Is this a local change that we’ve made to clang, o
Nico
2015/10/23 15:39:29
That's a local change Apple has in their branch. W
| |
| 5265 # 2. Further down, library_dirs is set to third_party/libc++-static, | |
| 5266 # which contains a static libc++.a library. The linker then links | |
| 5267 # against that instead of again /usr/lib/libc++.dylib when it sees | |
|
Mark Mentovai
2015/10/23 13:56:36
again → against
Nico
2015/10/23 15:39:29
Done.
| |
| 5268 # the -lc++ flag added by the driver. | |
| 5269 # | |
| 5270 # In component builds, just link to the system libc++. | |
| 5271 # This has the effect of making everything depend on libc++, which | |
| 5272 # means component-build binaries won't run on 10.6 (no libc++ there), | |
| 5273 # but for a developer-only configuration that's ok. (We don't want | |
| 5274 # to raise the deployment target yet so that official and dev builds | |
| 5275 # have the same deployment target. This affects things like which | |
| 5276 # functions are considered deprecated.) | |
| 5277 'CLANG_CXX_LIBRARY': 'libc++', # -stdlib=libc++ | |
| 5278 | |
| 5259 'GCC_DYNAMIC_NO_PIC': 'NO', # No -mdynamic-no-pic | 5279 'GCC_DYNAMIC_NO_PIC': 'NO', # No -mdynamic-no-pic |
| 5260 # (Equivalent to -fPIC) | 5280 # (Equivalent to -fPIC) |
| 5261 # MACOSX_DEPLOYMENT_TARGET maps to -mmacosx-version-min | 5281 # MACOSX_DEPLOYMENT_TARGET maps to -mmacosx-version-min |
| 5262 'MACOSX_DEPLOYMENT_TARGET': '<(mac_deployment_target)', | 5282 'MACOSX_DEPLOYMENT_TARGET': '<(mac_deployment_target)', |
| 5263 # Keep pch files below xcodebuild/. | 5283 # Keep pch files below xcodebuild/. |
| 5264 'SHARED_PRECOMPS_DIR': '$(CONFIGURATION_BUILD_DIR)/SharedPrecompiledHe aders', | 5284 'SHARED_PRECOMPS_DIR': '$(CONFIGURATION_BUILD_DIR)/SharedPrecompiledHe aders', |
| 5265 'OTHER_CFLAGS': [ | 5285 'OTHER_CFLAGS': [ |
| 5266 # Someday this can be replaced by an 'GCC_STRICT_ALIASING': 'NO' | 5286 # Someday this can be replaced by an 'GCC_STRICT_ALIASING': 'NO' |
| 5267 # xcode_setting, but not until all downstream projects' mac bots are | 5287 # xcode_setting, but not until all downstream projects' mac bots are |
| 5268 # using xcode >= 4.6, because that's when the default value of the | 5288 # using xcode >= 4.6, because that's when the default value of the |
| 5269 # flag in the compiler switched. Pre-4.6, the value 'NO' for that | 5289 # flag in the compiler switched. Pre-4.6, the value 'NO' for that |
| 5270 # setting is a no-op as far as xcode is concerned, but the compiler | 5290 # setting is a no-op as far as xcode is concerned, but the compiler |
| 5271 # behaves differently based on whether -fno-strict-aliasing is | 5291 # behaves differently based on whether -fno-strict-aliasing is |
| 5272 # specified or not. | 5292 # specified or not. |
| 5273 '-fno-strict-aliasing', # See http://crbug.com/32204. | 5293 '-fno-strict-aliasing', # See http://crbug.com/32204. |
| 5274 ], | 5294 ], |
| 5275 'conditions': [ | |
| 5276 ['component=="shared_library"', { | |
| 5277 # In component builds, link to the system libc++. This requires | |
| 5278 # OS X 10.7, but we currently pass -mmacosx-version-min=10.6. | |
| 5279 # Xcode's clang complains about this, but our open-source bundled | |
| 5280 # chromium clang doesn't. This has the effect of making | |
| 5281 # everything depend on libc++, which means component-build | |
| 5282 # binaries won't run on 10.6 (no libc++ there), but for a | |
| 5283 # developer-only configuration that's ok. | |
| 5284 # (We don't want to raise the deployment target yet so that | |
| 5285 # official and dev builds have the same deployment target. This | |
| 5286 # affects things like which functions are considered deprecated.) | |
| 5287 'CLANG_CXX_LIBRARY': 'libc++', # -stdlib=libc++ | |
| 5288 }], | |
| 5289 ], | |
| 5290 }, | 5295 }, |
| 5291 'target_conditions': [ | 5296 'target_conditions': [ |
| 5297 ['>(nacl_untrusted_build)==0 and component=="static_library"', { | |
| 5298 # See the comment for CLANG_CXX_LIBRARY above for what this does. | |
| 5299 # The NaCl toolchains have their own toolchain and don't need this. | |
| 5300 'library_dirs': [ | |
| 5301 '<(DEPTH)/third_party/libc++-static', | |
|
Nico
2015/10/23 13:05:33
The alternative here would be to use clang instead
Mark Mentovai
2015/10/23 13:56:36
Nico (vacation Fri Oct 23) wrote:
| |
| 5302 ], | |
| 5303 }], | |
| 5292 ['_type=="executable"', { | 5304 ['_type=="executable"', { |
| 5293 'postbuilds': [ | 5305 'postbuilds': [ |
| 5294 { | 5306 { |
| 5295 # Arranges for data (heap) pages to be protected against | 5307 # Arranges for data (heap) pages to be protected against |
| 5296 # code execution when running on Mac OS X 10.7 ("Lion"), and | 5308 # code execution when running on Mac OS X 10.7 ("Lion"), and |
| 5297 # ensures that the position-independent executable (PIE) bit | 5309 # ensures that the position-independent executable (PIE) bit |
| 5298 # is set for ASLR when running on Mac OS X 10.5 ("Leopard"). | 5310 # is set for ASLR when running on Mac OS X 10.5 ("Leopard"). |
| 5299 'variables': { | 5311 'variables': { |
| 5300 # Define change_mach_o_flags in a variable ending in _path | 5312 # Define change_mach_o_flags in a variable ending in _path |
| 5301 # so that GYP understands it's a path and performs proper | 5313 # so that GYP understands it's a path and performs proper |
| (...skipping 995 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6297 # settings in target dicts. SYMROOT is a special case, because many other | 6309 # settings in target dicts. SYMROOT is a special case, because many other |
| 6298 # Xcode variables depend on it, including variables such as | 6310 # Xcode variables depend on it, including variables such as |
| 6299 # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something | 6311 # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something |
| 6300 # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the | 6312 # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the |
| 6301 # files to appear (when present) in the UI as actual files and not red | 6313 # files to appear (when present) in the UI as actual files and not red |
| 6302 # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR, | 6314 # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR, |
| 6303 # and therefore SYMROOT, needs to be set at the project level. | 6315 # and therefore SYMROOT, needs to be set at the project level. |
| 6304 'SYMROOT': '<(DEPTH)/xcodebuild', | 6316 'SYMROOT': '<(DEPTH)/xcodebuild', |
| 6305 }, | 6317 }, |
| 6306 } | 6318 } |
| OLD | NEW |