意外と情報が少なかったので、書いときます。
なお、ubuntu24.04、meson1.3.2です。
#include <stdio.h>
int main()
{
#ifdef HOGE
printf("My name is hoge.\n");
#else
printf("Hello, world!\n");
#endif
return 0;
}
といった「HOGE
」の定義を、ビルド時に指定する、というのが、今回のミッションです。
まずは、meson_options.txt
というファイルを作成します。(これがなかなかわからなかった。)
meson_options.txt
option('hoge', type: 'boolean', value: false)
option
の書き方は、公式のマニュアルの「Build options」を見てください。
次に、meson.build
。
meson.build
project('hoge', 'c')
if get_option('hoge')
add_project_arguments('-DHOGE', language: 'c')
endif
executable('hoge', ['main.c'])
オプションの値を見て、コンパイルオプションを追加します。これに関しては、マニュアルの「Add arguments」を参照。
で、setupコマンド。
$ meson setup -Dhoge=true build
「-D
」で、meson_options.txt
で定義したオプションを指定します。
(ここもちょっとハマりポイント。-D
というのだから、てっきりgcc
の-D
オプションを指定するのかと思いこんでしまった)
後は通常通り。
$ meson compile -C build
$ ./build/hoge
My name is hoge.
なお、オプションの設定を変える場合は、setupコマンドをやり直してもいいですが、configureコマンドも使えます。
$ meson configure -Dhoge=false build