11from SCons.Action
import Action
19split_debug_action = Action(
20 'cd ${TARGET.dir} && '
21 'objcopy ${STRIP_EXTRA_ARGUMENTS} --only-keep-debug ${TARGET.file} ${TARGET.file}.debug && '
22 'objcopy --add-gnu-debuglink ${TARGET.file}.debug ${TARGET.file} && '
23 'mv ${TARGET.file}.debug .debug/${TARGET.file}.debug && '
24 'objcopy --strip-debug --strip-unneeded ${STRIP_EXTRA_ARGUMENTS} ${TARGET.file}',
25 "${STRIPCOMSTR}", chdir=
False)
27strip_debug_action = Action(
28 'objcopy --strip-debug --strip-unneeded ${STRIP_EXTRA_ARGUMENTS} ${TARGET}',
29 "${STRIPCOMSTR}", chdir=
False)
32def strip_debug_method(env, target):
35 if env[
'SPLIT_DEBUGINFO']:
36 result.append(t.dir.Dir(
".debug").File(t.name+
".debug"))
37 env.SideEffect(result[-1], t)
38 env.AddPostAction(t, split_debug_action)
39 env.Clean(t, result[-1])
41 env.AddPostAction(t, strip_debug_action)
46 env.AddMethod(strip_debug_method,
'StripDebug')
47 env[
'SPLIT_DEBUGINFO'] =
True
48 env[
'STRIP_EXTRA_ARGUMENTS'] =
"-R '.gnu.debuglto_*'"