node-gypでコマンドラインオプションで変数を指定する
node addonビルドに関する小ネタです。
node-gypを使ったビルド時にコマンドラインから変数指定する方法。(位置的にはmakeのマクロ相当のものです)
gypの変数についての説明
http://code.google.com/p/gyp/wiki/InputFormatReference#Variables
まず、binding.gyp内に変数定義をしておきデフォルト値を設定しておきます。
'variables': { 'MYLIB_DIR': '../mylib', },
これをbinding.gyp内で参照するには <(VAR) と >(VAR) という書式があり、Early ExpansionとLate Expansionという
展開タイミングの違いがあるようです。(詳しく読んでませんが)
'include_dirs': [ '<(MYLIB_DIR)/include', ],
そして、コマンドラインでnode-gypを実行するときにこの変数をオーバーライドすることができます。
% node-gyp --MYLIB_DIR='../mylib_custom' build