Changeset 18ec142 for src/wscript_build
- Timestamp:
- Oct 3, 2017, 4:05:40 PM (7 years ago)
- Branches:
- feature/autosink, feature/cnn, feature/cnn_org, feature/constantq, feature/crepe, feature/crepe_org, feature/pitchshift, feature/pydocstrings, feature/timestretch, fix/ffmpeg5, master
- Children:
- bb07c7e
- Parents:
- b3cbe94
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/wscript_build
rb3cbe94 r18ec142 38 38 # also install static lib 39 39 from waflib.Tools.c import cstlib 40 from waflib.Tools.fc import fcstlib 41 fcstlib.inst_to = cstlib.inst_to = '${LIBDIR}' 42 43 import re 44 from waflib import TaskGen, Task 45 from waflib.Context import STDOUT 46 from waflib.Utils import O644 47 48 class gen_sym_file(Task.Task): 49 color = 'BLUE' 50 inst_to = '${LIBDIR}' 51 def run(self): 52 syms = {} 53 reg = getattr(self.generator, 'export_symbols_regex','.+?') 54 if 'msvc' in self.env.CC_NAME: 55 outputs = [x.abspath() for x in self.generator.link_task.outputs] 56 binary_path = list(filter(lambda x: x.endswith('lib'), outputs))[0] 57 reg_compiled = re.compile(r'External\s+\|\s+(?P<symbol>%s)\b' % reg) 58 cmd =(self.env.LINK_CC) + ['/dump', '/symbols', binary_path] 59 else: # using gcc? assume we have nm 60 binary_path = self.generator.link_task.outputs[0].abspath() 61 reg_compiled = re.compile(r'(T|D)\s+_(?P<symbol>%s)\b'%reg) 62 cmd = (self.env.NM or ['nm']) + ['-g', binary_path] 63 dump_output = self.generator.bld.cmd_and_log(cmd, quiet=STDOUT) 64 syms = set([]) 65 for m in reg_compiled.finditer(dump_output): 66 syms.add(m.group('symbol')) 67 syms = list(syms) 68 syms.sort() 69 self.outputs[0].write('EXPORTS\n'+'\n'.join(syms)) 70 71 @TaskGen.feature('gensyms') 72 @TaskGen.after_method('process_source','process_use','apply_link','process_uselib_local','propagate_uselib_vars') 73 def gen_symbols(self): 74 #sym_file = self.path.find_or_declare(self.target + '.def') 75 sym_file_name = os.path.splitext(self.link_task.outputs[0].abspath())[0] + '.def' 76 sym_file = self.path.find_or_declare(sym_file_name) 77 symtask = self.create_task('gen_sym_file', self.link_task.outputs, sym_file) 78 self.add_install_files(install_to=self.link_task.inst_to, install_from=sym_file, 79 chmod=O644, task=self.link_task) 40 cstlib.inst_to = '${LIBDIR}' 80 41 81 42 for target in build_features:
Note: See TracChangeset
for help on using the changeset viewer.