make高级特性之选项绑定

什么是选项的绑定呢?

例如我想在命令行中配置一个smallest的参数:xmake f --smallest=y

这个时候,需要同时禁用多个其他的选项开关,来禁止编译多个模块,就是这个需求,相当于一个选项 与其他 多个选项之间 是有联动效应的。。

那如何实现呢,可以通过下面两个api来实现:

  1. add_bindings: 添加正向绑定

  2. add_rbindings: 添加反向绑定

我们看下如何实现smallest的这个效果:

-- 定义选项开关: --smallest=y|n
option("smallest")

-- 默认不启用set_enable(false)-- 在命令行菜单中显示描述,并且可手动配置set_showmenu(true)-- 设置描述set_description("Enable the smallest compile mode and disable all modules.")-- 添加反向绑定,如果smallest被启用,下面的所有模块全部禁用add_rbindings("xml", "zip", "asio", "regex", "object", "thread", "network", "charset", "database")add_rbindings("zlib", "mysql", "sqlite3", "openssl", "polarssl", "pcre2", "pcre", "base")

需要注意的是,命令行配置是有顺序的,你可以先通过启用smallest禁用所有模块,然后添加其他选项,逐一启用,例如:

-- 禁用所有模块,然后仅仅启用xml和zip模块
xmake f --smallest=y --xml=y --zip=y

  1. XMake项目详情

  2. XMake项目源码

  3. XMake项目文档

关键字:交叉编译, 跨平台构建, cmake, makefile

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部