Как я могу проверить, существует ли функция c в node-gyp bindings.gyp - PullRequest
0 голосов
/ 16 мая 2019

Я хочу установить флаг #define HAVE_USLEEP 1 в файле sqlite3.c, который компилируется node-gyp.Простое решение состоит в том, чтобы установить это значение в bindings.gyp

{
  'targets': [
    {
      'target_name': 'sqlite3',
      'defines': ['HAVE_USLEEP=1']
    }
  ]
}

, но мне нужно включить флаг только , если в операционной системе доступно usleep .

sqlite3 уже делает это в своем собственном файле . / Configure sh, но node-gyp не может воспользоваться этим, поэтому я немного растерялся.

Я не смог найти никаких репозиториев , использующих node-gyp , которые делали бы условия более сложными, чем основанные на операционной системе, но если node-gyp является заменой ./configure и make, тогда он долженесть способ проверить сложные вещи, подобные этому.

Для некоторого фона цель всего этого - запросить изменение в 'better-sqlite3, которое включит флаг HAVE_USLEEP условно https://github.com/JoshuaWise/better-sqlite3/blob/master/deps/sqlite3.gyp.

...