新千葉 ガーベージ・コレクション

FPGA マガジンやインターフェースで書けなかったこと等をちょぼちょぼ書いてます。@ryos36

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 をつかうと外部コマンドでソースの自動生成!みたいなことが出来る模様。

mesonbuild.com