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