meson构建系统

Meson是一个设计友好的构建系统,强调简单、清晰的自定义语言和现代编程工具支持。它允许用户通过meson.build文件定义构建规则,并在独立的build目录中编译项目,避免污染源代码。meson提供了多种编译选项,如debug模式,以及添加自定义编译标志的功能。此外,还支持单元测试和代码安装。本文档还介绍了如何使用meson进行编译、测试和安装操作。
摘要由CSDN通过智能技术生成

简介

Meson是一个构建系统,它被设计成在不牺牲性能的前提下尽可能的友好。这方面的主要工具是用户用来描述构建结构的自定义语言。这种语言的主要设计目标是简单、清晰和简洁。很多灵感都来自于Python编程语言,它被认为是非常易读的,即使对以前没有使用Python编程的人来说也是如此。
另一个主要想法是为现代编程工具和最佳实践提供一流的支持。这些特性包括单元测试、代码覆盖报告、预编译头等等。所有这些功能应该立即可用的任何项目使用Meson。用户不应该需要寻找第三方宏或编写shell脚本来获得这些特性。它们应该是开箱即用的。
这种能力不应该以牺牲有限的实用性为代价。许多软件的构建需要非正统的步骤。一个常见的例子是,你首先需要建立一个自定义的工具,然后用这个工具来生成更多的源代码来构建。这种功能需要得到支持,并且要像系统的其他部分一样容易使用。

注:以上简介机翻自meson官网

简明使用

本部分针对那些基于meson build的项目,记录一些meson的基础命令

  • 编译项目

    • setup 1

      使用meson build的项目在源码根目录都能看到一个名为“meson.build”的文件,此文件规定了构建项目的规则

      在meson下要求要指定一个单独的build目录,这样在编译过程中产生的中间文件不会污染源代码目录,使用以下命令创建build目录并初始化编译

      meson build
      

      命令执行后会自动探测环境、探测编译器,创建一个名为“build”的构建目录,并生成后续compile所需要的文件,如下图所示

      image-20210427144017051

    • setup 2

      接下来就要comple项目了,对于meson版本>0.55.0的可以直接使用以下命令进行编译

      meson compile -C build
      

      对于低于此版本的meson使用以下命令进行编译

      ninja -C build
      
  • 编译时的一些选项

    meson默认编译出来的目标文件是release版本的,也就是没有debug信息,这样在项目开发时调试很麻烦,使用以下命令配置meson build debug版本的目标文件

    meson build --buildtype debug
    

    如果已经执行过meson的话使用上条命令会报错,使用以下命令重新配置

    meson build --buildtype debug --reconfigure
    

    buildtype 有以下几种

    valuemeaning
    plainno extra build flags are used, even for compiler warnings
    debug带有debug信息,没有优化
    debugoptimized带有debug信息,有优化
    release无debug信心,有优化

    在有些情况下需要自己添加一些gcc的flag,可以使用以下命令

    meson build -Dc_args=... -Dcpp_args=... -Dc_link_args=... -Dcpp_link_args=...
    
  • test、install

    对于有unit test的项目可以使用以下命令来运行test

    meson test -C build
    

    需要安装当前编译出来的项目可以使用以下命令,安装的目录可以在meson setup时指定

    meson build meson --prefix /usr
    meson compile -C build
    meson install -C build
    

    setup时忘了指定–prefix也可以使用以下命令来指定

    DESTDIR=/usr meson install -C build
    

编写meson构建脚本

待续

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值