diff --git a/installer/installbuilder/swift-pilotclient.xml b/installer/installbuilder/swift-pilotclient.xml index 8557a700b..3e5f5c462 100644 --- a/installer/installbuilder/swift-pilotclient.xml +++ b/installer/installbuilder/swift-pilotclient.xml @@ -11,23 +11,55 @@ This installs the binaries to run all swift applications. bin ${installdir}/bin bin_linux - linux linux-x64 osx + linux linux-x64 1 ../../dist/bin/swiftcore* + */*.debug 1 ../../dist/bin/swiftdata* + */*.debug 1 ../../dist/bin/swiftguistd* + */*.debug 1 ../../dist/bin/swiftlauncher* + */*.debug + + + + + bin + ${installdir}/bin + bin_osx + osx + + + 1 + ../../dist/bin/swiftcore* + */*.dSYM + + + 1 + ../../dist/bin/swiftdata* + */*.dSYM + + + 1 + ../../dist/bin/swiftguistd* + */*.dSYM + + + 1 + ../../dist/bin/swiftlauncher* + */*.dSYM @@ -90,31 +122,75 @@ This installs the binaries to run all swift applications. lib ${installdir}/lib lib_linux - linux linux-x64 osx + linux linux-x64 1 ../../dist/lib/libblackcore* + */*.debug 1 ../../dist/lib/libblackgui* + */*.debug 1 ../../dist/lib/libblackinput* + */*.debug 1 ../../dist/lib/libblackmisc* + */*.debug 1 ../../dist/lib/libblacksound* + */*.debug 1 ../../dist/lib/libsimulatorplugincommon* + */*.debug + + + + + lib + ${installdir}/lib + lib_osx + osx + + + 1 + ../../dist/lib/libblackcore*.dylib + */*.dSYM + + + 1 + ../../dist/lib/libblackgui*.dylib + */*.dSYM + + + 1 + ../../dist/lib/libblackinput*.dylib + */*.dSYM + + + 1 + ../../dist/lib/libblackmisc*.dylib + */*.dSYM + + + 1 + ../../dist/lib/libblacksound*.dylib + */*.dSYM + + + 1 + ../../dist/lib/libsimulatorplugincommon*.dylib + */*.dSYM diff --git a/installer/installbuilder/swift-plugin-simulators.xml b/installer/installbuilder/swift-plugin-simulators.xml index 51d60e1a1..21287dbb8 100644 --- a/installer/installbuilder/swift-plugin-simulators.xml +++ b/installer/installbuilder/swift-plugin-simulators.xml @@ -119,6 +119,7 @@ This plugin acts as the interface between swift and X-Plane 1 ../../dist/bin/plugins/simulator/*simulatorxplane* + */*.pdb;*/*.debug;*/*.dSYM @@ -142,6 +143,7 @@ This plugin acts as the interface between swift and FlightGear 1 ../../dist/bin/plugins/simulator/*simulatorflightgear* + */*.pdb;*/*.debug;*/*.dSYM @@ -165,6 +167,7 @@ This plugin emulates a running simulator. Use this for testing swift only 1 ../../dist/bin/plugins/simulator/*simulatoremulated* + */*.pdb;*/*.debug;*/*.dSYM diff --git a/installer/installbuilder/swift-plugin-weatherdata.xml b/installer/installbuilder/swift-plugin-weatherdata.xml index bf1f8c04d..265bfd774 100644 --- a/installer/installbuilder/swift-plugin-weatherdata.xml +++ b/installer/installbuilder/swift-plugin-weatherdata.xml @@ -22,6 +22,7 @@ 1 ../../dist/bin/plugins/weatherdata/*weatherdatagfs* + */*.pdb;*/*.debug;*/*.dSYM diff --git a/installer/installbuilder/swift-samples.xml b/installer/installbuilder/swift-samples.xml index 437c58447..31029475b 100644 --- a/installer/installbuilder/swift-samples.xml +++ b/installer/installbuilder/swift-samples.xml @@ -15,6 +15,7 @@ 1 ../../dist/bin/sample* + */*.pdb;*/*.debug;*/*.dSYM diff --git a/mkspecs/features/common_pre.prf b/mkspecs/features/common_pre.prf index ed90493ef..b83330a22 100644 --- a/mkspecs/features/common_pre.prf +++ b/mkspecs/features/common_pre.prf @@ -77,6 +77,10 @@ swiftConfig(releaseWithDebugInfo) { QMAKE_CXXFLAGS_RELEASE *= /Z7 QMAKE_LFLAGS_RELEASE *= /DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF } + unix { + CONFIG += force_debug_info + CONFIG += separate_debug_info + } } swiftConfig(profileRelease) { msvc { diff --git a/scripts/jenkins.py b/scripts/jenkins.py index 7261a89a5..9b0b6801b 100644 --- a/scripts/jenkins.py +++ b/scripts/jenkins.py @@ -19,7 +19,7 @@ import requests import subprocess import sys import datastore -import symbolstore +import tarfile from lib.util import get_vs_env if sys.version_info < (3, 0): @@ -149,16 +149,46 @@ class Builder: build_path = self._get_swift_build_path() os.chdir(build_path) print('Creating symbols') - symbol_path = path.abspath(path.join(build_path, 'symbols')) binary_path = path.abspath(path.join(build_path, 'out')) - symbolstore.Dumper.global_init() - dumper = symbolstore.get_platform_specific_dumper(dump_syms=self.dump_syms, symbol_path=symbol_path) - dumper.process(binary_path) - dumper.finish() + os_map = {'Linux': 'linux', 'Darwin': 'macos', 'Windows': 'windows'} - tar_filename = '-'.join(['swiftsymbols', os_map[platform.system()], self.word_size, self.version]) + '.tar.gz' + tar_filename = '-'.join( + ['swiftsymbols', os_map[platform.system()], self.word_size, self.version]) + '.tar.gz' tar_path = path.abspath(path.join(self._get_swift_source_path(), tar_filename)) - dumper.pack(tar_path) + tar = tarfile.open(tar_path, "w:gz") + + ignore_list = ['sample', 'test', 'win', 'liblin.so', 'libmac.dylib'] + for root, dirs, files in os.walk(binary_path): + if platform.system() == 'Windows': + for f in files: + if f.endswith('.pdb') and not f.startswith(tuple(ignore_list)): + symbol_path = path.abspath(path.join(root, f)) + print('Adding ' + symbol_path) + tar.add(symbol_path, f) + if self.word_size == '64': + # Add also *.exe/*.dll with the same name if existing + exe_path = symbol_path.replace('.pdb', '.exe') + if os.path.isfile(exe_path): + print('Adding ' + exe_path) + tar.add(exe_path, f.replace('.pdb', '.exe')) + dll_path = symbol_path.replace('.pdb', '.dll') + if os.path.isfile(dll_path): + print('Adding ' + dll_path) + tar.add(dll_path, f.replace('.pdb', '.dll')) + elif platform.system() == 'Darwin': + for d in dirs: + if d.endswith('.dSYM') and not d.startswith(tuple(ignore_list)): + symbol_path = path.abspath(path.join(root, d)) + print('Adding ' + symbol_path) + tar.add(symbol_path, d) + elif platform.system() == 'Linux': + for f in files: + if f.endswith('.debug') and not f.startswith(tuple(ignore_list)): + symbol_path = path.abspath(path.join(root, f)) + print('Adding ' + symbol_path) + tar.add(symbol_path, f) + tar.close() + if upload_symbols: self.__upload_symbol_files(tar_path)