| 342 | ext.sources = sources |
| 343 | |
| 344 | def generate_sources(self, sources, extension): |
| 345 | new_sources = [] |
| 346 | func_sources = [] |
| 347 | for source in sources: |
| 348 | if is_string(source): |
| 349 | new_sources.append(source) |
| 350 | else: |
| 351 | func_sources.append(source) |
| 352 | if not func_sources: |
| 353 | return new_sources |
| 354 | if self.inplace and not is_sequence(extension): |
| 355 | build_dir = self.ext_target_dir |
| 356 | else: |
| 357 | if is_sequence(extension): |
| 358 | name = extension[0] |
| 359 | # if 'include_dirs' not in extension[1]: |
| 360 | # extension[1]['include_dirs'] = [] |
| 361 | # incl_dirs = extension[1]['include_dirs'] |
| 362 | else: |
| 363 | name = extension.name |
| 364 | # incl_dirs = extension.include_dirs |
| 365 | #if self.build_src not in incl_dirs: |
| 366 | # incl_dirs.append(self.build_src) |
| 367 | build_dir = os.path.join(*([self.build_src] |
| 368 | +name.split('.')[:-1])) |
| 369 | self.mkpath(build_dir) |
| 370 | |
| 371 | if self.verbose_cfg: |
| 372 | new_level = log.INFO |
| 373 | else: |
| 374 | new_level = log.WARN |
| 375 | old_level = log.set_threshold(new_level) |
| 376 | |
| 377 | for func in func_sources: |
| 378 | source = func(extension, build_dir) |
| 379 | if not source: |
| 380 | continue |
| 381 | if is_sequence(source): |
| 382 | [log.info(" adding '%s' to sources." % (s,)) for s in source] |
| 383 | new_sources.extend(source) |
| 384 | else: |
| 385 | log.info(" adding '%s' to sources." % (source,)) |
| 386 | new_sources.append(source) |
| 387 | log.set_threshold(old_level) |
| 388 | return new_sources |
| 389 | |
| 390 | def filter_py_files(self, sources): |
| 391 | return self.filter_files(sources, ['.py']) |