mirror of
https://github.com/godotengine/godot.git
synced 2025-01-16 06:52:59 +00:00
Merge pull request #11243 from hpvb/add-debug-info-on-release
Create separate debug info files by default
This commit is contained in:
commit
e8a0c5da77
2
.gitignore
vendored
2
.gitignore
vendored
@ -80,6 +80,8 @@ build/
|
|||||||
bld/
|
bld/
|
||||||
[Bb]in/
|
[Bb]in/
|
||||||
[Oo]bj/
|
[Oo]bj/
|
||||||
|
*.debug
|
||||||
|
*.dSYM
|
||||||
|
|
||||||
# MSTest test Results
|
# MSTest test Results
|
||||||
[Tt]est[Rr]esult*/
|
[Tt]est[Rr]esult*/
|
||||||
|
@ -21,7 +21,7 @@ def can_build():
|
|||||||
def get_opts():
|
def get_opts():
|
||||||
|
|
||||||
return [
|
return [
|
||||||
('debug_release', 'Add debug symbols to release version', 'no')
|
('debug_symbols', 'Add debug symbols to release version (yes/no/full)', 'yes')
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@ -36,16 +36,21 @@ def configure(env):
|
|||||||
## Build type
|
## Build type
|
||||||
|
|
||||||
if (env["target"] == "release"):
|
if (env["target"] == "release"):
|
||||||
if (env["debug_release"] == "yes"):
|
env.Prepend(CCFLAGS=['-O3', '-ffast-math'])
|
||||||
|
if (env["debug_symbols"] == "yes"):
|
||||||
|
env.Prepend(CCFLAGS=['-g1'])
|
||||||
|
if (env["debug_symbols"] == "full"):
|
||||||
env.Prepend(CCFLAGS=['-g2'])
|
env.Prepend(CCFLAGS=['-g2'])
|
||||||
else:
|
|
||||||
env.Prepend(CCFLAGS=['-O3', '-ffast-math'])
|
|
||||||
|
|
||||||
elif (env["target"] == "release_debug"):
|
elif (env["target"] == "release_debug"):
|
||||||
env.Prepend(CCFLAGS=['-O2', '-ffast-math', '-DDEBUG_ENABLED'])
|
env.Prepend(CCFLAGS=['-O2', '-ffast-math', '-DDEBUG_ENABLED'])
|
||||||
|
if (env["debug_symbols"] == "yes"):
|
||||||
|
env.Prepend(CCFLAGS=['-g1'])
|
||||||
|
if (env["debug_symbols"] == "full"):
|
||||||
|
env.Prepend(CCFLAGS=['-g2'])
|
||||||
|
|
||||||
elif (env["target"] == "debug"):
|
elif (env["target"] == "debug"):
|
||||||
env.Prepend(CCFLAGS=['-g2', '-DDEBUG_ENABLED', '-DDEBUG_MEMORY_ENABLED'])
|
env.Prepend(CCFLAGS=['-g3', '-DDEBUG_ENABLED', '-DDEBUG_MEMORY_ENABLED'])
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
|
@ -1,7 +1,11 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import os
|
||||||
Import('env')
|
Import('env')
|
||||||
|
|
||||||
|
def make_debug(target, source, env):
|
||||||
|
os.system('dsymutil %s -o %s.dSYM' % (target[0], target[0]))
|
||||||
|
|
||||||
files = [
|
files = [
|
||||||
'crash_handler_osx.mm',
|
'crash_handler_osx.mm',
|
||||||
'os_osx.mm',
|
'os_osx.mm',
|
||||||
@ -13,8 +17,7 @@ files = [
|
|||||||
'power_osx.cpp',
|
'power_osx.cpp',
|
||||||
]
|
]
|
||||||
|
|
||||||
prog = env.Program('#bin/godot', files)
|
binary = env.Program('#bin/godot', files)
|
||||||
if (env['target'] == "debug" or env['target'] == "release_debug"):
|
if env["debug_symbols"] == "full" or env["debug_symbols"] == "yes":
|
||||||
# Build the .dSYM file for atos
|
env.AddPostAction(binary, make_debug)
|
||||||
action = "dsymutil " + File(prog)[0].path + " -o " + File(prog)[0].path + ".dSYM"
|
|
||||||
env.AddPostAction(prog, action)
|
|
||||||
|
@ -22,6 +22,7 @@ def get_opts():
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
('osxcross_sdk', 'OSXCross SDK version', 'darwin14'),
|
('osxcross_sdk', 'OSXCross SDK version', 'darwin14'),
|
||||||
|
('debug_symbols', 'Add debug symbols to release version (yes/no/full)', 'yes'),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@ -36,10 +37,18 @@ def configure(env):
|
|||||||
## Build type
|
## Build type
|
||||||
|
|
||||||
if (env["target"] == "release"):
|
if (env["target"] == "release"):
|
||||||
env.Prepend(CCFLAGS=['-O2', '-ffast-math', '-fomit-frame-pointer', '-ftree-vectorize', '-msse2'])
|
env.Prepend(CCFLAGS=['-O3', '-ffast-math', '-fomit-frame-pointer', '-ftree-vectorize', '-msse2'])
|
||||||
|
if (env["debug_symbols"] == "yes"):
|
||||||
|
env.Prepend(CCFLAGS=['-g1'])
|
||||||
|
if (env["debug_symbols"] == "full"):
|
||||||
|
env.Prepend(CCFLAGS=['-g2'])
|
||||||
|
|
||||||
elif (env["target"] == "release_debug"):
|
elif (env["target"] == "release_debug"):
|
||||||
env.Prepend(CCFLAGS=['-O2', '-DDEBUG_ENABLED'])
|
env.Prepend(CCFLAGS=['-O2', '-DDEBUG_ENABLED'])
|
||||||
|
if (env["debug_symbols"] == "yes"):
|
||||||
|
env.Prepend(CCFLAGS=['-g1'])
|
||||||
|
if (env["debug_symbols"] == "full"):
|
||||||
|
env.Prepend(CCFLAGS=['-g2'])
|
||||||
|
|
||||||
elif (env["target"] == "debug"):
|
elif (env["target"] == "debug"):
|
||||||
env.Prepend(CCFLAGS=['-g3', '-DDEBUG_ENABLED', '-DDEBUG_MEMORY_ENABLED'])
|
env.Prepend(CCFLAGS=['-g3', '-DDEBUG_ENABLED', '-DDEBUG_MEMORY_ENABLED'])
|
||||||
|
@ -1,7 +1,12 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import os
|
||||||
Import('env')
|
Import('env')
|
||||||
|
|
||||||
|
def make_debug_mingw(target, source, env):
|
||||||
|
os.system('objcopy --only-keep-debug %s %s.debug' % (target[0], target[0]))
|
||||||
|
os.system('strip --strip-debug --strip-unneeded %s' % (target[0]))
|
||||||
|
os.system('objcopy --add-gnu-debuglink=%s.debug %s' % (target[0], target[0]))
|
||||||
|
|
||||||
common_win = [
|
common_win = [
|
||||||
"context_gl_win.cpp",
|
"context_gl_win.cpp",
|
||||||
@ -22,10 +27,14 @@ obj = env.RES(restarget, 'godot_res.rc')
|
|||||||
|
|
||||||
common_win.append(obj)
|
common_win.append(obj)
|
||||||
|
|
||||||
env.Program('#bin/godot', ['godot_win.cpp'] + common_win, PROGSUFFIX=env["PROGSUFFIX"])
|
binary = env.Program('#bin/godot', ['godot_win.cpp'] + common_win, PROGSUFFIX=env["PROGSUFFIX"])
|
||||||
|
|
||||||
# Microsoft Visual Studio Project Generation
|
# Microsoft Visual Studio Project Generation
|
||||||
if (env['vsproj']) == "yes":
|
if (env['vsproj']) == "yes":
|
||||||
env.vs_srcs = env.vs_srcs + ["platform/windows/godot_win.cpp"]
|
env.vs_srcs = env.vs_srcs + ["platform/windows/godot_win.cpp"]
|
||||||
for x in common_win:
|
for x in common_win:
|
||||||
env.vs_srcs = env.vs_srcs + ["platform/windows/" + str(x)]
|
env.vs_srcs = env.vs_srcs + ["platform/windows/" + str(x)]
|
||||||
|
|
||||||
|
if not os.getenv("VCINSTALLDIR"):
|
||||||
|
if env["debug_symbols"] == "full" or env["debug_symbols"] == "yes":
|
||||||
|
env.AddPostAction(binary, make_debug_mingw)
|
||||||
|
@ -64,6 +64,7 @@ def get_opts():
|
|||||||
return [
|
return [
|
||||||
('mingw_prefix_32', 'MinGW prefix (Win32)', mingw32),
|
('mingw_prefix_32', 'MinGW prefix (Win32)', mingw32),
|
||||||
('mingw_prefix_64', 'MinGW prefix (Win64)', mingw64),
|
('mingw_prefix_64', 'MinGW prefix (Win64)', mingw64),
|
||||||
|
('debug_symbols', 'Add debug symbols to release version (yes/no/full)', 'yes')
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@ -213,11 +214,20 @@ def configure(env):
|
|||||||
|
|
||||||
env.Append(LINKFLAGS=['-Wl,--subsystem,windows'])
|
env.Append(LINKFLAGS=['-Wl,--subsystem,windows'])
|
||||||
|
|
||||||
|
if (env["debug_symbols"] == "yes"):
|
||||||
|
env.Prepend(CCFLAGS=['-g1'])
|
||||||
|
if (env["debug_symbols"] == "full"):
|
||||||
|
env.Prepend(CCFLAGS=['-g2'])
|
||||||
|
|
||||||
elif (env["target"] == "release_debug"):
|
elif (env["target"] == "release_debug"):
|
||||||
env.Append(CCFLAGS=['-O2', '-DDEBUG_ENABLED'])
|
env.Append(CCFLAGS=['-O2', '-DDEBUG_ENABLED'])
|
||||||
|
if (env["debug_symbols"] == "yes"):
|
||||||
|
env.Prepend(CCFLAGS=['-g1'])
|
||||||
|
if (env["debug_symbols"] == "full"):
|
||||||
|
env.Prepend(CCFLAGS=['-g2'])
|
||||||
|
|
||||||
elif (env["target"] == "debug"):
|
elif (env["target"] == "debug"):
|
||||||
env.Append(CCFLAGS=['-g', '-DDEBUG_ENABLED', '-DDEBUG_MEMORY_ENABLED'])
|
env.Append(CCFLAGS=['-g3', '-DDEBUG_ENABLED', '-DDEBUG_MEMORY_ENABLED'])
|
||||||
|
|
||||||
## Compiler configuration
|
## Compiler configuration
|
||||||
|
|
||||||
|
@ -1,7 +1,12 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import os
|
||||||
Import('env')
|
Import('env')
|
||||||
|
|
||||||
|
def make_debug(target, source, env):
|
||||||
|
os.system('objcopy --only-keep-debug %s %s.debug' % (target[0], target[0]))
|
||||||
|
os.system('strip --strip-debug --strip-unneeded %s' % (target[0]))
|
||||||
|
os.system('objcopy --add-gnu-debuglink=%s.debug %s' % (target[0], target[0]))
|
||||||
|
|
||||||
common_x11 = [
|
common_x11 = [
|
||||||
"context_gl_x11.cpp",
|
"context_gl_x11.cpp",
|
||||||
@ -12,4 +17,6 @@ common_x11 = [
|
|||||||
"power_x11.cpp",
|
"power_x11.cpp",
|
||||||
]
|
]
|
||||||
|
|
||||||
env.Program('#bin/godot', ['godot_x11.cpp'] + common_x11)
|
binary = env.Program('#bin/godot', ['godot_x11.cpp'] + common_x11)
|
||||||
|
if env["debug_symbols"] == "full" or env["debug_symbols"] == "yes":
|
||||||
|
env.AddPostAction(binary, make_debug)
|
||||||
|
@ -44,7 +44,6 @@ def can_build():
|
|||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
def get_opts():
|
def get_opts():
|
||||||
|
|
||||||
return [
|
return [
|
||||||
@ -55,7 +54,7 @@ def get_opts():
|
|||||||
('use_lto', 'Use link time optimization', 'no'),
|
('use_lto', 'Use link time optimization', 'no'),
|
||||||
('pulseaudio', 'Detect & use pulseaudio', 'yes'),
|
('pulseaudio', 'Detect & use pulseaudio', 'yes'),
|
||||||
('udev', 'Use udev for gamepad connection callbacks', 'no'),
|
('udev', 'Use udev for gamepad connection callbacks', 'no'),
|
||||||
('debug_release', 'Add debug symbols to release version', 'no'),
|
('debug_symbols', 'Add debug symbols to release version (yes/no/full)', 'yes')
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@ -77,16 +76,20 @@ def configure(env):
|
|||||||
# -O3 -ffast-math is identical to -Ofast. We need to split it out so we can selectively disable
|
# -O3 -ffast-math is identical to -Ofast. We need to split it out so we can selectively disable
|
||||||
# -ffast-math in code for which it generates wrong results.
|
# -ffast-math in code for which it generates wrong results.
|
||||||
env.Prepend(CCFLAGS=['-O3', '-ffast-math'])
|
env.Prepend(CCFLAGS=['-O3', '-ffast-math'])
|
||||||
if (env["debug_release"] == "yes"):
|
if (env["debug_symbols"] == "yes"):
|
||||||
|
env.Prepend(CCFLAGS=['-g1'])
|
||||||
|
if (env["debug_symbols"] == "full"):
|
||||||
env.Prepend(CCFLAGS=['-g2'])
|
env.Prepend(CCFLAGS=['-g2'])
|
||||||
|
|
||||||
elif (env["target"] == "release_debug"):
|
elif (env["target"] == "release_debug"):
|
||||||
env.Prepend(CCFLAGS=['-O2', '-ffast-math', '-DDEBUG_ENABLED'])
|
env.Prepend(CCFLAGS=['-O2', '-ffast-math', '-DDEBUG_ENABLED'])
|
||||||
if (env["debug_release"] == "yes"):
|
if (env["debug_symbols"] == "yes"):
|
||||||
|
env.Prepend(CCFLAGS=['-g1'])
|
||||||
|
if (env["debug_symbols"] == "full"):
|
||||||
env.Prepend(CCFLAGS=['-g2'])
|
env.Prepend(CCFLAGS=['-g2'])
|
||||||
|
|
||||||
elif (env["target"] == "debug"):
|
elif (env["target"] == "debug"):
|
||||||
env.Prepend(CCFLAGS=['-g2', '-DDEBUG_ENABLED', '-DDEBUG_MEMORY_ENABLED'])
|
env.Prepend(CCFLAGS=['-g3', '-DDEBUG_ENABLED', '-DDEBUG_MEMORY_ENABLED'])
|
||||||
env.Append(LINKFLAGS=['-rdynamic'])
|
env.Append(LINKFLAGS=['-rdynamic'])
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
Loading…
Reference in New Issue
Block a user