2013-03-13 21 views
6

'daki kaynakları listelemek için joker mekanizma var Yeni node.js modülüm için binding.gyp dosyası yazıyorum. Tüm kaynak dosyalarım src/ alt dizininde var. Modülü kurarken hepsini kullanmak isterim. Her defasında yeni bir cpp dosyası eklediğimde, binding.gyp 'i değiştirmek yerine, bazı joker mekanizmaları aracılığıyla tüm cpp dosyalarını listelemek istiyorum. Node-gyp bunu destekliyor mu? Ben https://code.google.com/p/gyp/wiki/InputFormatReference baktım ama kolayca yararlı bir şey bulamadıkNode-gy

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

çalışmıyor aşağıdaki gibi bir şey (.

cevap

19

dışarı düşündüm

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

Kontrol dışarı this link

Güncelleştirme

Yukarıdaki çözüm, platformlar arasında taşınabilir değildir. İşte taşınabilir sürümü:

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

Esasen bu dizinin içeriğini listelemek için düğümün fs modülünü kullanan JavaScript koduyla, komutu (ls) listeleme platforma özel dizin değiştirir.

-1

bir daha taşınabilir sürümü (python'un yerine düğüm bağlıdır, ancak değildir):

"<[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])\")"