meson ninja初探

meson ninja构建

环境中已经安装了python3

sudo apt install meson ninja-build

先上最简单的例子

1. 写code
2. 写meson.build
 	eg:
	project('tutorial','c')
	executable('demo','main.c')
3. 执行meson setup builddir
4. cd builddir
5. 执行ninja

来个例子

  1 project('log', 'c')
  2 cc=meson.get_compiler('c')
  3 dep=[]
  4 dep += cc.find_library('z')
  5 dep += cc.find_library('log4c')
  6
  7 inc_dir= []
  8
  9 src_ = []
 10 src_ += 'log.c'
 11 src_ += 'test.c'
 12
 13
 14 executable('log_test',
 15             sources : src_,
 16             include_directories : inc_dir,
 17             dependencies : dep)

链接多个lib文件

folder1/meson.build

subdir('platform_utils')

src_files = files('adi.c')
inc_dir = ['platform_utils/',
           '../shell',
           '../bsp']

static_lib = static_library('platform.a',
                            src_files,
                            include_directories : inc_dir,
                            dependencies:shell_dep)

platform_dep += declare_dependency(link_with: static_lib,
                include_directories: inc_dir)

folder2/meson.build

src_files = files('public/src/adi_1.c',
                 'public/src/adi_2_utilities.c',
                 'public/src/adi_3.c')

inc_dir = ['public/include',
            '../../common']


static_lib = static_library('libadi_ad1.a',
                            src_files,
                            include_directories : inc_dir,
                            dependencies : [common_dep, platform_dep])

devices_dep += declare_dependency(link_with: static_lib, include_directories: inc_dir)

main meson.build

 project('bt', 'c')
 cc=meson.get_compiler('c')
 dep=[]
 dep += cc.find_library('z')
 dep += cc.find_library('log4c')
 dep += cc.find_library('pthread')
 dep += cc.find_library('m')
 dep += cc.find_library('stdc++')

inc_dir= []
inc_dir += './platforms'
inc_dir += 'devices/adrv/public/include'

src_ = files('init.c',
              'log.c',
              'test.c')

common_dep = []
subdir('common')

shell_dep = []
subdir('shell')

executable('log_test',
            sources : src_,
            include_directories : inc_dir,
            dependencies : [common_dep, shell_dep, dep],
            install : true)
  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值