node-gyp - Обработка файлов ".h.in"

Я создал проект, который содержит подмодуль git libxml2, Я хочу использовать эти файлы внутри моего binding.gyp, но я получаю ошибки во время работы node-gyp build, Проблема здесь в том, что есть только xmlversion.h.in файл но xmlversion.h файл нужен.

Когда я бегу autogen.sh сценарий libxml2 сначала все работает нормально, потому что autotools создаст xmlversion.h файл из xmlversion.h.in,

Есть ли способ создать xmlversion.h использование файла node-gyp?

Мой текущий bindings.gyp выглядит так:

{
    'targets': [{
        'target_name': 'library',
        'product_extension': 'node',
        'type': 'shared_library',
        'include_dirs': [
            'libxml2/include',
            'libxml2',
            "<!(node -e \"require('nan')\")"
        ],
        'cflags': [ '-Wall' ],
        'xcode_settings': {
            'OTHER_CFLAGS': [ '-Wall' ]
        },
        'sources': [
            # src/my_files.cc
            # libxml2/libxml2_files.c
        ]
    }]
}

1 ответ

Решение

Лучшее решение для решения проблемы .h.in в файлах, чтобы построить его один раз, используя autotools и скопировать созданное .h файлы в другой каталог проекта (таким образом, подмодуль не будет затронут). Кроме того, вам, возможно, придется создавать эти файлы для нескольких платформ или архитектур. После этого вы можете добавить новую папку в ваши включения. Довольно хорошее решение для этого доступно здесь:

Github DEMO

Другие вопросы по тегам