GNOMEとsystemdで使われているのは知っていたんですが、libvips
をちょっと使ってみた時に知りまして、
全然良く分かってないんですが、
- LSP補完がサクサク効く
- 型が明快でPythonライク
- コマンドがCMakeより分かりやすい(
meson compile
など ) - ビルドログもCMakeより分かりやすい
が謎にテンション上がる、いやあ良いね!って直感で思えるくらい良い!
これは面白い!良いかも!
project('test', 'c')
message('hello world')
c_compiler = meson.get_compiler('c').get_argument_syntax()
message('compiler: ' + c_compiler)
includes = include_directories('src/include')
person = static_library('person', ['src/person/person.c'], include_directories: includes)
calc = static_library('calc', ['src/calc/add.c', 'src/calc/sub.c'], include_directories: includes)
executable(
'demo',
'src/main.c',
include_directories: includes,
link_with: [calc, person],
)
他にもあるよビルドツール
ちなみに他にも色々調べてたらなんか色々あった。premakeとかbazelとか。
個人的に目を引いたのはxmakeというやつで、Luaベースのパケマネ付きってのが結構ポイントなプロジェクト。 例えば、こんな感じで他言語と同様かのようにかなり平易にビルドができた↓
set_project("myproject")
set_version("0.0.1")
set_license("MIT")
set_languages("cxx17")
add_rules("mode.debug", "mode.release")
add_requires("zlib", "fmt")
target("calc")
set_kind("static")
add_files("src/calc/calc.c")
add_includedirs("src/calc")
target("demo")
set_kind("binary")
add_files("src/*.cpp")
add_includedirs("src/calc")
add_deps("calc")
add_packages("zlib", "fmt")
ちなみに最新版と7zipを入れた状態で試すことをおすすめします。
ざっと見は平易ながらけっこー本格的です。物凄くいい意味でC/C++の敷居下げてる作りをしていて、特にコマンドがオプションをそうそう使わない作りで良かったり、設定がCUIで出来たりと感心した。 主に中国ユーザが中心って感じで日本じゃ全然知られてないと思ったけど、GitHub 9Kだからやっぱ中国の人の層ってメチャ強いんだなあ。
色々とツール類がモダンに感じるように工夫が凝らされていて、これはこれで中々関心した。VimのCoCとか、ああいうオールインワンでフレンドリーな感じが好きな人はとっつきやすいかもしれないと思う。