2013-03-13 5 views
6

Ich schreibe binding.gyp Datei für meine neue node.js-Modul. Ich habe alle meine Quelldateien unter src/ Unterverzeichnis. Ich möchte sie alle beim Aufbau des Moduls verwenden. Anstatt binding.gyp jedes Mal zu ändern, wenn ich eine neue cpp-Datei hinzufüge, möchte ich alle CPP-Dateien durch einen Platzhaltermechanismus auflisten. Unterstützt node-gyp das? So etwas wie folgt (die nichtGibt es Wildcard-Mechanismus zum Auflisten von Quellen in Node-Gyp

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

ich https://code.google.com/p/gyp/wiki/InputFormatReference sah nicht funktioniert, aber nichts ohne weiteres nützlich finden.

Antwort

19

es heraus

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

Check out this link

Aktualisieren

Die obige Lösung ist nicht plattformübergreifend übertragbar. Hier ist eine portable Version:

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

Im Wesentlichen ersetzt es die plattformspezifische Verzeichnisbefehlsauflistung (ls), von Javascript-Code, der Knotens verwendet fs Modul den Verzeichnisinhalt auflisten.

-1

Eine noch portable Version (das hängt nicht von Knoten, sondern Python):

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