Mac: Always set enable_dsyms=true (issue #2027)
This commit is contained in:
parent
ebddf7c5f3
commit
814fe1e069
6
BUILD.gn
6
BUILD.gn
|
@ -148,6 +148,12 @@ if (is_clang) {
|
||||||
# https://bitbucket.org/chromiumembedded/cef/issues/1617
|
# https://bitbucket.org/chromiumembedded/cef/issues/1617
|
||||||
assert(!is_component_build)
|
assert(!is_component_build)
|
||||||
|
|
||||||
|
if (is_mac) {
|
||||||
|
# Always generate dSYM files. The make_distrib script will fail if
|
||||||
|
# enable_dsyms=true is not explicitly set when is_official_build=false.
|
||||||
|
assert(enable_dsyms)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Local variables.
|
# Local variables.
|
||||||
|
|
|
@ -2,6 +2,64 @@
|
||||||
# 2012 Google Inc. All rights reserved. Use of this source code is governed by
|
# 2012 Google Inc. All rights reserved. Use of this source code is governed by
|
||||||
# a BSD-style license that can be found in the LICENSE file.
|
# a BSD-style license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
# This script determines the contents of the per-configuration `args.gn` files
|
||||||
|
# that are used to build CEF/Chromium with GN. See comments in CEF's top-level
|
||||||
|
# BUILD.gn file for general GN usage instructions.
|
||||||
|
#
|
||||||
|
# This script performs the following tasks:
|
||||||
|
#
|
||||||
|
# - Defines CEF's default and required arg values in cases where they differ
|
||||||
|
# from Chromium's.
|
||||||
|
# - Accepts user-defined arg values via the GN_DEFINES environment variable.
|
||||||
|
# - Verifies that user-defined arg values do not conflict with CEF's
|
||||||
|
# requirements.
|
||||||
|
# - Generates multiple configurations by combining user-defined arg values with
|
||||||
|
# CEF's default and required values.
|
||||||
|
#
|
||||||
|
# Before adding a new arg value in this script determine the following:
|
||||||
|
#
|
||||||
|
# - Chromium's default value. Default values are defined in the declare_args()
|
||||||
|
# sections of *.gni files.
|
||||||
|
# - Chromium's value requirements. Check for assert()s related to the value in
|
||||||
|
# Chromium code.
|
||||||
|
# - Whether a particular value is optional or required for CEF.
|
||||||
|
# - Under what conditions a particular value is required for CEF (platform,
|
||||||
|
# build type, CPU architecture, etc).
|
||||||
|
#
|
||||||
|
# If CEF can use Chromium's default value and has no additional validation
|
||||||
|
# requirements then do nothing.
|
||||||
|
#
|
||||||
|
# If CEF can use Chromium's default value but would like to enforce additional
|
||||||
|
# validation requirements then go to 3B.
|
||||||
|
#
|
||||||
|
# If CEF cannot or should not use Chromium's default value then choose one of
|
||||||
|
# the following:
|
||||||
|
#
|
||||||
|
# 1. If CEF requires a different value either globally or based on the platform:
|
||||||
|
# - Add an assert() for the value in CEF's top-level BUILD.gn file.
|
||||||
|
# - Add the required value in GetRequiredArgs().
|
||||||
|
# - Result: CEF's required value will be used. The user cannot override the
|
||||||
|
# value via GN_DEFINES.
|
||||||
|
#
|
||||||
|
# 2. If CEF requires a different value based on the build type or CPU
|
||||||
|
# architecture:
|
||||||
|
# - Add an assert() for the value in CEF's top-level BUILD.gn file.
|
||||||
|
# - Add the required value in GetConfigArgs().
|
||||||
|
# - Result: CEF's required value will be used. The user cannot override the
|
||||||
|
# value via GN_DEFINES.
|
||||||
|
#
|
||||||
|
# 3. If CEF recommends (but does not require) a different value either globally
|
||||||
|
# or based on the platform:
|
||||||
|
# A. Set the default value:
|
||||||
|
# - Add the recommended value in GetRecommendedDefaultArgs().
|
||||||
|
# - Result: CEF's recommended value will be used by default. The user can
|
||||||
|
# override the value via GN_DEFINES.
|
||||||
|
#
|
||||||
|
# B. If CEF has additional validation requirements:
|
||||||
|
# - Add the default Chromium value in GetChromiumDefaultArgs().
|
||||||
|
# - Perform validation in ValidateArgs().
|
||||||
|
# - Result: An AssertionError will be thrown if validation fails.
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import shlex
|
import shlex
|
||||||
import sys
|
import sys
|
||||||
|
@ -72,6 +130,19 @@ def MergeDicts(*dict_args):
|
||||||
result.update(dictionary)
|
result.update(dictionary)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
def GetValueString(val):
|
||||||
|
"""
|
||||||
|
Return the string representation of |val| expected by GN.
|
||||||
|
"""
|
||||||
|
if isinstance(val, basestring):
|
||||||
|
return '"%s"' % val
|
||||||
|
elif isinstance(val, bool):
|
||||||
|
if val:
|
||||||
|
return 'true'
|
||||||
|
else:
|
||||||
|
return 'false'
|
||||||
|
return val
|
||||||
|
|
||||||
def GetChromiumDefaultArgs():
|
def GetChromiumDefaultArgs():
|
||||||
"""
|
"""
|
||||||
Return default GN args. These must match the Chromium defaults.
|
Return default GN args. These must match the Chromium defaults.
|
||||||
|
@ -160,13 +231,27 @@ def GetRequiredArgs():
|
||||||
# Don't use the chrome style plugin.
|
# Don't use the chrome style plugin.
|
||||||
result['clang_use_chrome_plugins'] = False
|
result['clang_use_chrome_plugins'] = False
|
||||||
|
|
||||||
|
if platform == 'macosx':
|
||||||
|
# Always generate dSYM files. The make_distrib script will fail if
|
||||||
|
# enable_dsyms=true is not explicitly set when is_official_build=false.
|
||||||
|
result['enable_dsyms'] = True
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def GetMergedArgs(build_args):
|
def GetMergedArgs(build_args):
|
||||||
"""
|
"""
|
||||||
Return merged GN args.
|
Return merged GN args.
|
||||||
"""
|
"""
|
||||||
return MergeDicts(GetRecommendedDefaultArgs(), GetGNEnvArgs(), build_args, GetRequiredArgs())
|
dict = MergeDicts(GetRecommendedDefaultArgs(), GetGNEnvArgs(), build_args)
|
||||||
|
|
||||||
|
# Verify that the user is not trying to override required args.
|
||||||
|
required = GetRequiredArgs()
|
||||||
|
for key in required.keys():
|
||||||
|
if key in dict:
|
||||||
|
assert dict[key] == required[key], \
|
||||||
|
"%s=%s is required" % (key, GetValueString(required[key]))
|
||||||
|
|
||||||
|
return MergeDicts(dict, required)
|
||||||
|
|
||||||
def ValidateArgs(args):
|
def ValidateArgs(args):
|
||||||
"""
|
"""
|
||||||
|
@ -380,18 +465,9 @@ def GetConfigFileContents(args):
|
||||||
"""
|
"""
|
||||||
pairs = []
|
pairs = []
|
||||||
for k in sorted(args.keys()):
|
for k in sorted(args.keys()):
|
||||||
val = args[k]
|
pairs.append("%s=%s" % (k, GetValueString(args[k])))
|
||||||
if isinstance(val, basestring):
|
|
||||||
val = '"%s"' % val
|
|
||||||
elif isinstance(val, bool):
|
|
||||||
if val:
|
|
||||||
val = 'true'
|
|
||||||
else:
|
|
||||||
val = 'false'
|
|
||||||
pairs.append("%s=%s" % (k, val))
|
|
||||||
return "\n".join(pairs)
|
return "\n".join(pairs)
|
||||||
|
|
||||||
|
|
||||||
# Program entry point.
|
# Program entry point.
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
import sys
|
import sys
|
||||||
|
|
Loading…
Reference in New Issue