1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

mesonでオプションを追加する

Posted at

意外と情報が少なかったので、書いときます。
なお、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
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?