mirror of https://gitlab.com/ita1024/waf.git
50 lines
1.1 KiB
Python
50 lines
1.1 KiB
Python
#! /usr/bin/env python
|
|
|
|
"""
|
|
Strip a program/library after it is created. Use this tool as an example.
|
|
|
|
Usage::
|
|
|
|
bld.program(features='strip', source='main.c', target='foo')
|
|
|
|
By using::
|
|
|
|
@TaskGen.feature('cprogram', 'cxxprogram', 'fcprogram')
|
|
|
|
|
|
If stripping at installation time is preferred, use the following::
|
|
|
|
import shutil, os
|
|
from waflib import Build
|
|
from waflib.Tools import ccroot
|
|
def copy_fun(self, src, tgt, **kw):
|
|
shutil.copy2(src, tgt)
|
|
os.chmod(tgt, kw.get('chmod', Utils.O644))
|
|
try:
|
|
tsk = kw['tsk']
|
|
except KeyError:
|
|
pass
|
|
else:
|
|
if isinstance(tsk.task, ccroot.link_task):
|
|
self.cmd_and_log('strip %s' % tgt)
|
|
Build.InstallContext.copy_fun = copy_fun
|
|
"""
|
|
|
|
def configure(conf):
|
|
conf.find_program('strip')
|
|
|
|
from waflib import Task, TaskGen
|
|
class strip(Task.Task):
|
|
run_str = '${STRIP} ${SRC}'
|
|
color = 'BLUE'
|
|
after = ['cprogram', 'cxxprogram', 'cshlib', 'cxxshlib', 'fcprogram', 'fcshlib']
|
|
|
|
@TaskGen.feature('strip')
|
|
@TaskGen.after('apply_link')
|
|
def add_strip_task(self):
|
|
try:
|
|
link_task = self.link_task
|
|
except AttributeError:
|
|
return
|
|
self.create_task('strip', link_task.outputs[0])
|