2013-03-13 1 views
6

Я пишу binding.gyp файл для моего нового модуля node.js. У меня есть все мои исходные файлы под подкатегорией src/. Я хотел бы использовать их все при создании модуля. Вместо того, чтобы модифицировать binding.gyp каждый раз, когда я добавляю новый файл cpp, я хотел бы перечислить все файлы cpp через какой-либо шаблон. Поддерживает ли node-gyp это? Что-то вроде следующего (который не работаетЕсть ли шаблон для включения источников в node-gyp

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

Я смотрел на https://code.google.com/p/gyp/wiki/InputFormatReference, но не нашел ничего полезного труда.

ответ

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(' ')\")" ], 
     } 
    ] 
} 

По существу, он заменяет платформы определенный каталог команды (ls) листинг, по Javascript кода, который использует fs модуль узла в список содержимого каталога.

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