2013-03-13 4 views
6

新しいnode.jsモジュール用にbinding.gypファイルを書きます。すべてのソースファイルはsrc/サブディレクトリにあります。私はモジュールを構築する際にそれらのすべてを使用したいと思います。私は新しいcppファイルを追加するたびにbinding.gypを変更するのではなく、いくつかのワイルドカードメカニズムを通してすべてのcppファイルをリストしたいと思います。 node-gypはそれをサポートしていますか?私はhttps://code.google.com/p/gyp/wiki/InputFormatReferenceに見えたが、すぐに役に立つ何かを見つけることができませんでしたnode-gypのソースを表示するためのワイルドカードメカニズムがありますか?

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

動作しません、次のような何か(。

答えて

19

が出て、それを考え出し

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

チェックアウトthis link

更新

上記の解決策は、プラットフォーム間で移植できません。ここでは、ポータブルバージョンがあります:

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

基本的には、ディレクトリの内容を一覧表示するには、ノードのfsモジュールを使用するJavaScriptコードによって、コマンドを一覧表示するプラットフォーム固有のディレクトリ(ls)に置き換えられます。

-1

アンさらにポータブル版(つまり、ノードに依存するが、パイソン、むしろしない):

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