2013-03-13 4 views
6

Sto scrivendo il file per il mio nuovo modulo node.js. Ho tutti i miei file sorgente sotto la sottodirectory src/. Mi piacerebbe usarli tutti mentre costruisco il modulo. Invece di modificare binding.gyp ogni volta che aggiungo un nuovo file cpp, vorrei elencare tutti i file cpp attraverso un meccanismo jolly. Node-gyp lo supporta? Qualcosa di simile seguente (che non funzionaC'è un meccanismo jolly per elencare le fonti in node-gyp

{ 
    'targets' : [ 
     { 
      'target_name' : 'mymod', 
      'sources' : 'src/*.cpp' 
     } 
    ] 
} 

Ho guardato https://code.google.com/p/gyp/wiki/InputFormatReference, ma non ho trovato nulla prontamente utile.

risposta

19

capito

{ 
    'targets' : [ 
     { 
      'target_name' : 'mymod', 
      'sources' : [ '<[email protected](ls -1 src/*.cpp)' ], 
     } 
    ] 
} 

Partenza this link

Aggiornamento

La soluzione di cui sopra non è trasferibile su più piattaforme. Ecco una versione portatile:

{ 
    'targets' : [ 
     { 
      'target_name' : 'mymod', 
      'sources' : [ "<[email protected](node -p \"require('fs').readdirSync('./src').map(f=>'src/'+f).join(' ')\")" ], 
     } 
    ] 
} 

Essenzialmente si sostituisce la directory specifica piattaforma di comando (ls) messa in vendita, dal codice Javascript che utilizza il modulo del nodo fs per elencare il contenuto della directory.

-1

Una versione ancora più portatile (che non dipende nodo, ma piuttosto pitone):

"<[email protected](python -c \"import os; print '\n'.join(['%s' % x for x in os.listdir('.') if x[-3:] == '.cc' and 'test' not in x])\")"