[Python] distutils[2].build_extension e gestione 'depends'
Matteo Bertini
matteo a naufraghi.net
Ven 13 Gen 2012 19:19:02 CET
Ho notato una scelta che non capisco nel codice di distutils:
http://bit.ly/build_ext_471
def build_extension(self, ext):
...
depends = sources + ext.depends
if not (self.force or newer_group(depends, ext_path, 'newer')):
logger.debug("skipping '%s' extension (up-to-date)", ext.name)
return
else:
logger.info("building '%s' extension", ext.name)
...
In pratica una estensione viene rebuildata quando:
self.force è True
oppure
newer_group(depends, ext_path, 'newer') quando qualche depends è più nuovo del
target.
La cosa che non capisco è quel 'newer' che fa figurare le dipendenza mancanti
come più nuove del target.
Che senso ha? Nel mio caso un typo in depends aveva come effetto dei continui
rebuild (che avrei ottenuto più volentieri con --force)
Non mi viene in mente un caso sensato in cui una dipendenza mancante deve
forzare un rebuild e non dare un errore, però accetto suggerimenti :)
Maggiori informazioni sulla lista
Python