зеркало из https://github.com/electron/electron.git
linux: Generate symbols from the symbol file.
This commit is contained in:
Родитель
449748b044
Коммит
99ee21d657
|
@ -28,6 +28,12 @@ TARGET_PLATFORM = {
|
||||||
'win32': 'win32',
|
'win32': 'win32',
|
||||||
}[sys.platform]
|
}[sys.platform]
|
||||||
|
|
||||||
|
SYMBOL_NAME = {
|
||||||
|
'darwin': 'libchromiumcontent.dylib.dSYM',
|
||||||
|
'linux': 'libchromiumcontent.so.dbg',
|
||||||
|
'win32': 'chromiumcontent.dll.pdb',
|
||||||
|
}[TARGET_PLATFORM]
|
||||||
|
|
||||||
TARGET_BINARIES = {
|
TARGET_BINARIES = {
|
||||||
'darwin': [
|
'darwin': [
|
||||||
],
|
],
|
||||||
|
@ -81,11 +87,8 @@ def main():
|
||||||
|
|
||||||
args = parse_args()
|
args = parse_args()
|
||||||
|
|
||||||
if TARGET_PLATFORM == 'linux':
|
|
||||||
clean_build()
|
|
||||||
force_build()
|
force_build()
|
||||||
if TARGET_PLATFORM != 'linux':
|
download_libchromiumcontent_symbols(args.url)
|
||||||
download_libchromiumcontent_symbols(args.url)
|
|
||||||
create_symbols()
|
create_symbols()
|
||||||
copy_binaries()
|
copy_binaries()
|
||||||
copy_headers()
|
copy_headers()
|
||||||
|
@ -107,16 +110,6 @@ def parse_args():
|
||||||
return parser.parse_args()
|
return parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
def clean_build():
|
|
||||||
# On Linux stripping binary would cause them to be rebuilt next time, which
|
|
||||||
# would make create-dist create symbols from stripped binary if it has been
|
|
||||||
# ran for twice.
|
|
||||||
# So in order to make sure we built correct symbols everytime, we have to
|
|
||||||
# force a rebuild of the binaries.
|
|
||||||
for binary in TARGET_BINARIES[TARGET_PLATFORM]:
|
|
||||||
safe_unlink(os.path.join(OUT_DIR, binary))
|
|
||||||
|
|
||||||
|
|
||||||
def force_build():
|
def force_build():
|
||||||
build = os.path.join(SOURCE_ROOT, 'script', 'build.py')
|
build = os.path.join(SOURCE_ROOT, 'script', 'build.py')
|
||||||
execute([sys.executable, build, '-c', 'Release'])
|
execute([sys.executable, build, '-c', 'Release'])
|
||||||
|
@ -170,14 +163,9 @@ def create_version():
|
||||||
|
|
||||||
|
|
||||||
def download_libchromiumcontent_symbols(url):
|
def download_libchromiumcontent_symbols(url):
|
||||||
if TARGET_PLATFORM == 'darwin':
|
|
||||||
symbols_name = 'libchromiumcontent.dylib.dSYM'
|
|
||||||
elif TARGET_PLATFORM == 'win32':
|
|
||||||
symbols_name = 'chromiumcontent.dll.pdb'
|
|
||||||
|
|
||||||
brightray_dir = os.path.join(SOURCE_ROOT, 'vendor', 'brightray', 'vendor')
|
brightray_dir = os.path.join(SOURCE_ROOT, 'vendor', 'brightray', 'vendor')
|
||||||
target_dir = os.path.join(brightray_dir, 'download', 'libchromiumcontent')
|
target_dir = os.path.join(brightray_dir, 'download', 'libchromiumcontent')
|
||||||
symbols_path = os.path.join(target_dir, 'Release', symbols_name)
|
symbols_path = os.path.join(target_dir, 'Release', SYMBOL_NAME)
|
||||||
if os.path.exists(symbols_path):
|
if os.path.exists(symbols_path):
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
|
@ -75,6 +75,16 @@ def GetDSYMBundle(options, binary_path):
|
||||||
return binary_path
|
return binary_path
|
||||||
|
|
||||||
|
|
||||||
|
def GetSymbolPath(options, binary_path):
|
||||||
|
"""Finds the .dbg to the binary."""
|
||||||
|
filename = os.path.basename(binary_path)
|
||||||
|
dbg_path = os.path.join(options.libchromiumcontent_dir, filename) + '.dbg'
|
||||||
|
if os.path.exists(dbg_path):
|
||||||
|
return dbg_path
|
||||||
|
|
||||||
|
return binary_path
|
||||||
|
|
||||||
|
|
||||||
def Resolve(path, exe_path, loader_path, rpaths):
|
def Resolve(path, exe_path, loader_path, rpaths):
|
||||||
"""Resolve a dyld path.
|
"""Resolve a dyld path.
|
||||||
|
|
||||||
|
@ -178,6 +188,8 @@ def GenerateSymbols(options, binaries):
|
||||||
|
|
||||||
if sys.platform == 'darwin':
|
if sys.platform == 'darwin':
|
||||||
binary = GetDSYMBundle(options, binary)
|
binary = GetDSYMBundle(options, binary)
|
||||||
|
elif sys.platform == 'linux2':
|
||||||
|
binary = GetSymbolPath(options, binary)
|
||||||
|
|
||||||
syms = GetCommandOutput([GetDumpSymsBinary(options.build_dir), '-r', '-c',
|
syms = GetCommandOutput([GetDumpSymsBinary(options.build_dir), '-r', '-c',
|
||||||
binary])
|
binary])
|
||||||
|
|
Загрузка…
Ссылка в новой задаче