如果是处理一些其它的未知文件,比如:*.md 等,由于 xmake 内部没有相关的规则可以识别处理,那么 rule("myrule") 中的on_build_file 就会被执行。 rule("myrule") set_extensions(".md") -- 指定这个规则仅对 md 文件生效 before_build(function (target) print("before_build") end) after_build(function...
on_load只是编写脚本域代码的其中一处,我们还可以在下面每一步编写对应脚本。 on_load -> after_load -> on_config -> before_build -> on_build -> after_build on_config 在xmake config执行后,before_build执行前的时候运行。 如果是 c/c++ 程序,还可以在[before|on|after]_link编写脚本。 自定义on_...
add_files("src/example.c") before_build(function()-- ensure output path exists before running swigos.mkdir("build/java/com/example/")end) 完整例子见:Swig/Java Example 开源之夏 2023 今年Xmake 社区继续参加了开源之夏 2023 活动,它是由中科院软件所“开源软件供应链点亮计划”发起并长期支持的一项暑...
需要注意的是,target:on_xxx的所有接口都覆盖内部默认实现,通常我们并不需要完全复写,只是额外挂接自己的一些逻辑,那么可以使用target:before_xxx和target:after_xxx系列脚本就行了。 所有的on_xxx都有对应的before_和after_xx版本,参数也完全一致,例如: target("test") before_build(function (target) print("")...
before_build(function (target) io.writefile("$(buildir)/autogen.cpp", [[ #include <iostream> using namespace std; int main(int argc, char** argv) { cout << "hello world!" << endl; return 0; } ]]) end) 1. 2. 3. 4. ...
add_rules("mode.debug","mode.release")target("autogen_code")set_kind("binary")add_files("$(buildir)/autogen.cpp",{always_added=true})before_build(function(target)io.writefile("$(buildir)/autogen.cpp",[[#include<iostream>using namespace std;intmain(int argc,char**argv){cout<<"hello...
before_build(function (target) io.writefile("$(buildir)/autogen.cpp", [[ #include <iostream> using namespace std; int main(int argc, char** argv) { cout << "hello world!" << endl; return 0; } ]]) end) 都不需要額外的 rule 定義,只需要保證編譯順序,在正確的階段生成程式碼檔案就...
before_build_file(function(target, sourcefile)io.replace(sourcefile,"#define HAVE_XXX 1","#define HAVE_XXX 0")end) on_link(function(target)import("core.tool.linker") linker.link("binary","cc", target:objectfiles(), target:targetfile(), {target = target})end) ...
target("程序")set_kind("binary")add_files("源文件?/*.c")add_includedirs("头文件✨")before_build(function()print("开始编译?")end)after_build(function()print("结束编译?")end) Protobuf c/c++构建支持 xmake-repo官方仓库新增了protobuf-c/cpp依赖包,用户可以很方便的在xmake.lua中集成使用pro...
target("test")set_kind("binary")add_files("src/*.c")before_build(function(target)import("net.http")import("devel.git")http.download("https://xmake.io","/tmp/index.html")git.clone("git@github.com:tboox/xmake.git",{depth=1,branch="master",outputdir="/tmp/xmake"})end) ...