Xmake基础----通过定义规则处理其它文件

本文介绍了如何在Xmake中使用自定义规则处理编译逻辑,通过`add_rule`和`on_{phase}`接口,使得编译规则复用且生效于多个target,避免配置臃肿。以实例演示了如何定义`myrule`处理特定文件类型,以及在自定义规则中配置目标编译选项。
摘要由CSDN通过智能技术生成

虽然我们可以在 target 中通过 on_build_file 等自定义脚本来定制化处理编译逻辑,但是如果每个 target 都要配置相同的处理逻辑,或者要处理多个不同种类的逻辑,并且全在 target 中去定义实现它们,那么整个配置会非常臃肿并且难以维护。

因此,xmake 提供了一种模块化的方式,也就是通过 rule() 自定义规则,然后使用 add_rules() 接口实现对单个 target 目标同时配置生效多个不同的编译规则。这些规则可以复用、对多个 target 生效。

而之前我们在 target 中的那些自定义脚本阶段的配置接口,例如 on_build 等,都可以在 rule() 中定义和实现。其实 xmake 内部的 C/C++ 代码编译本身也是使用 rule("c++") 规则来实现的,只不过默认就已经对 C/C++ 代码生效了,而用户在 xmake.lua 中自己定义配置的规则,就需要手动添加 add_rules 到对应的 target 才能生效。

直接这么说,也许还不太能很清晰理解什么是自定义规则,我们先来改造下之前的配置文件 xmake.lua,通过定义 rule() 的方式,来实现相同的目的,例如。

rule("myrule")
    before_build(function (target)
        print("before_build")
    end)
    after_build(function (target)
        print("after_build")
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

红星星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值