meson の使い方
滅多に編集しないけど使う時は使う機能=忘れちゃう機能。 meson による -D による開発切り分け。
まず meson_options.txt を追加する。こんな感じ。
option('engine', type: 'string', value: 'gpu') option('use_cpu_sim', type: 'boolean', value: false) option('generate_bitmap_in_gpu', type: 'boolean', value: false)
これで meson の configure で見ることが出来るようになった。 meson debug とか meson release とかつくる。ついでに meson cpu_sim -Duse_cpu_sim=true とかもつくる。
>meson configure cpu_sim 前略 engine gpu engine generate_bitmap_in_gpu false [true, false] generate_bitmap_in_gpu use_cpu_sim true [true, false] use_cpu_sim
とかで情報を見ることが出来る。設定はあとから meson configure -Dなんとか で変更可能。 これだけだと cpp に反映されない!!ので meson.build に記述を書く。
if get_option('use_cpu_sim') == true nvcc_flags += ['-DUSE_CPU_SIM'] cpp_flags += ['-DUSE_CPU_SIM'] endif
meson の Syntax は Python 風になっているけど Python じゃない。表示するのは print じゃなくて message。
message(cpp_flags)
とかで ninja でコンパイルした時に表示される。
ninja -v -C cpu_sim
-v をつけておくとほんとに -DUSE_CPU_SIM が設定されているかどうかがわかる。ついでにつかってないけど、(今後使いたい)custom_target をつかうと外部コマンドでソースの自動生成!みたいなことが出来る模様。