27 lines
716 B
Python
27 lines
716 B
Python
|
#! /usr/bin/env python
|
||
|
# encoding: utf-8
|
||
|
|
||
|
import os,sys
|
||
|
import Task,Utils
|
||
|
from Configure import conftest
|
||
|
ar_str='${AR} ${ARFLAGS} ${AR_TGT_F}${TGT} ${AR_SRC_F}${SRC}'
|
||
|
cls=Task.simple_task_type('static_link',ar_str,color='YELLOW',ext_in='.o',ext_out='.bin',shell=False)
|
||
|
cls.maxjobs=1
|
||
|
cls.install=Utils.nada
|
||
|
old=cls.run
|
||
|
def wrap(self):
|
||
|
try:os.remove(self.outputs[0].abspath(self.env))
|
||
|
except OSError:pass
|
||
|
return old(self)
|
||
|
setattr(cls,'run',wrap)
|
||
|
def detect(conf):
|
||
|
conf.find_program('ar',var='AR')
|
||
|
conf.find_program('ranlib',var='RANLIB')
|
||
|
conf.env.ARFLAGS='rcs'
|
||
|
def find_ar(conf):
|
||
|
v=conf.env
|
||
|
conf.check_tool('ar')
|
||
|
if not v['AR']:conf.fatal('ar is required for static libraries - not found')
|
||
|
|
||
|
conftest(find_ar)
|