meson笔记

假设我们有一个具有 Meson 构建系统的源代码树。这意味着在最顶层目录有一个名为 meson.build
meson setup (builddir)
meson的语法是meson [command] [arguments] [options]
setup命令接受一个builddir和一个srcdir参数。如果没有 srcdir给出,介子将推断 的srcdir基础pwd和位置meson.build
--buildtype您可以使用命令行参数指定不同类型的构建
plain 没有使用额外的构建标志,即使是编译器警告,对于发行版打包程序和其他需要自己指定所有参数的情况很有用
debug 生成调试信息但结果未优化,这是默认值
debugoptimized 生成调试信息并优化代码(在大多数编译器上这意味着-g -O2)
release 全面优化,无调试信息
如果我们想测试使用 Clang 编译器而不是系统默认编译器构建源代码,我们只需键入以下命令:
cd /path/to/source/root
CC=clang CXX=clang++ meson setup buildclang
默认情况下,Meson 将使用 Ninja 后端来构建您的项目
。如果您希望使用任何其他后端,则需要在配置期间传递相应的参数。例如,以下是使用 Meson 生成 Visual Studio 解决方案的方法。
meson setup <build dir> --backend=vs
meson setup --help
可以使用该--buildtype=plain选项阻止 Meson 添加标志本身,在这种情况下,您必须提供所需的完整编译器和链接器参数
meson compile -C builddir
默认情况下,Meson 使用Ninja 构建系统来实际构建代码。要开始构建,只需键入以下命令。
ninja -C builddir
Ninja 和 Make 之间的主要可用性差异是 Ninja 会自动检测计算机中的 CPU 数量并相应地进行并行化。您可以使用命令行参数覆盖并行进程的数量-j <num processes>。
Meson 为运行测试提供原生支持。执行此操作的命令很简单。
meson test -C builddir
Meson 不强制使用任何特定的测试框架。您可以自由使用 GTest、Boost Test、Check 甚至自定义可执行文件。
也可以直接用 ninja 调用,命令如下
ninja -C builddir test
安装
meson install -C builddir
默认情况下,meson安装到/usr/local. 这可以通过--prefix /your/prefix在配置期间将命令行参数传递给 Meson 来更改。Meson 还支持DESTDIR在构建包中使用的变量。它是这样使用的:
DESTDIR=/path/to/staging meson install -C builddir
也可以直接用 ninja 调用,命令如下:
ninja -C builddir install
命令行帮助
meson --help
退出状态
如果成功,Meson 以状态 0 退出,1 表示命令行或 meson.build 文件有问题,2 表示内部错误。

命令行命令
meson [COMMAND] [COMMAND_OPTIONS]
最常见的工作流程是运行 setup,然后是compile,然后 是install
对于特定命令的所有可用选项的完整列表,请使用以下语法:meson COMMAND --help

./configure -prefix /opt/rootfs/qt6.3lib -release -opensource -widgets -make libs -no-openssl -no-sse2 -silent -xplatform linux-arm-gnueabi-g++ -nomake tools -nomake examples -nomake tests -qt-freetype -no-glib -strip -linuxfb -plugindir /opt/rootfs/qt6.3lib/plugins

 

posted @ 2022-07-26 09:13  MoonXu  阅读(2874)  评论(0编辑  收藏  举报