2.5.7 之后开始支持构建 Vala 程序,我们需要应用 add_rules("vala")
规则,并且 glib 包是必须的。
相关 issues: #1618
add_values("vala.packages")
用于告诉 valac,项目需要哪些包,它会引入相关包的 vala api,但是包的依赖集成,还是需要通过 add_requires("lua")
下载集成。
控制台程序
lua
add_rules("mode.release", "mode.debug")
add_requires("lua", "glib")
target("test")
set_kind("binary")
add_rules("vala")
add_files("src/*.vala")
add_packages("lua", "glib")
add_values("vala.packages", "lua")
静态库程序
v2.5.8 之后,我们继续支持构建库程序,能够通过 add_values("vala.header", "mymath.h")
设置导出的接口头文件名,通过 add_values("vala.vapi", "mymath-1.0.vapi")
设置导出的 vapi 文件名。
lua
add_rules("mode.release", "mode.debug")
add_requires("glib")
target("mymath")
set_kind("static")
add_rules("vala")
add_files("src/mymath.vala")
add_values("vala.header", "mymath.h")
add_values("vala.vapi", "mymath-1.0.vapi")
add_packages("glib")
target("test")
set_kind("binary")
add_deps("mymath")
add_rules("vala")
add_files("src/main.vala")
add_packages("glib")
动态库程序
lua
add_rules("mode.release", "mode.debug")
add_requires("glib")
target("mymath")
set_kind("shared")
add_rules("vala")
add_files("src/mymath.vala")
add_values("vala.header", "mymath.h")
add_values("vala.vapi", "mymath-1.0.vapi")
add_packages("glib")
target("test")
set_kind("binary")
add_deps("mymath")
add_rules("vala")
add_files("src/main.vala")
add_packages("glib")
更多例子:Vala examples