読者です 読者をやめる 読者になる 読者になる

valac で *.h をインクルードする *.c を生成する方法

glib Vala

最近 vala やってて、*.c や *.h を生成するオプションはわかったんだけど、
*.c が *.h をインクルードするようなオプションが分からなくて色々やってたらできたのでメモっておく。
ついさっき目コピしたサンプルのコードがこれ[github.com]。
で、このコードの makefile がこちら:

VALAC = valac
LIBS = --pkg gtk+-2.0 --pkg webkit-1.0 --thread
VALAFLAGS = $(LIBS)

TARGET = test-webkit
SRC0 = test-webkit.vala
HEADER0 = test-webkit.h

all: $(TARGET)

$(TARGET): $(SRC0)
	$(VALAC) $(VALAFLAGS) $< -o $@

generate:  $(SRC0)
	$(VALAC) $(VALAFLAGS) $< -C --use-header -H $(HEADER0)

最後の generate っていうのがそれなんだけど、-C で C コード生成、--use-header でヘッダーファイルを使用する、-H でヘッダーファイルの名前指定ってことなんだ。…と思う。
クラスを定義していない時はあんまり意味ないんだけどねw