预编译二进制(需要本地查找的库) 直接拷贝即可。 package("precompiled_binary") add_urls("https://github.com/xxx/yyy/archive/refs/tags/$(version).7z") add_versions("1.0", "sha256") on_install(function (package) os.cp("*.h", package:installdir("include")) os.cp("*.lib", package:ins...
on_load(function(package)package:set("installdir",path.join(os.scriptdir(),package:plat(),package:arch(),package:mode()))end) on_fetch(function(package)localresult = {} result.links ="foo"result.linkdirs =package:installdir("lib") result.includedirs =package:installdir("include")returnresult...
$ xmake package -f oldpkg 1. 生成远程包 除了本地包格式,xmake package 现在也支持生成远程包,便于用户将他们快速提交到远程仓库。 我们只需要在打包时候,修改包格式。 $ xmake package -f remote 1. 他也会产生 packages/f/foo/xmake.lua 文件。 package("foo") set_description("The foo package") set...
xrepo install -m debug -d package_sourcedir xxx 有些远程包为什么没有拉预编译版本 众所周知 c++ 编译器编译出的二进制有 abi 问题,同一个编译器不同版本都可能不兼容,所以当预编译库的编译器版本(github ci 编译)和本地编译器版本不一致的时候,会拉取源码进行编译。 有些库很大,编译需要很久,可以考虑下...
此外,Xmake还支持宏脚本记录和运行、自动检测ccache、自动缓存提升构建速度、自动检测头文件依赖等高级功能,以及一些常用的Actions,如clean、create、package等。这些功能可以帮助我们更加方便地管理和构建项目。总的来说,Xmake是一个非常强大且易用的构建工具,它简化了项目的描述和构建过程,提供了平台无关性,使得一次编写...
这个版本,我们新增了很多新特性,不仅增加了对 Vala 和 Metal 语言的编译支持,另外我们还改进了包依赖管理,能够像 npm/package.lock 那样支持对依赖包的锁定和更新,使得用户的项目不会受到上游包仓库的更新变动影响。 此外,我们还提供了一些比较实用的规则, 比如utils.bin2c可以让用户方便快速的内嵌一些二进制资源文件...
batchcmds:rmdir(package:installdir("stub"))end) 我们通过includes("@builtin/xpack")引入 xpack 的所有配置接口,包括 xpack 配置域,以及它的所有域接口。 然后我们执行: $ xmake pack 即可生成所有安装包。 生成NSIS 安装包 只要配置了set_formats("nsis")格式,然后执行xmake pack命令,就能生成 NSIS 格式的...
xpack("test")set_formats("runself")add_sourcefiles("(src/**)")on_installcmd(function(package,batchcmds)batchcmds:runv("make",{"install"})end) 然后,我们执行xmake pack命令,就可以生成一个自安装的 xxx.gz.run 包,默认采用 gzip 压缩。
而 xmake 则是「某个构建系统」。从构建系统的角度,xmake 无疑是比 cmake 更强大更好用的系统。
`xmake/package.lua`专门管理gtest库的安装。单元测试方面,虽然官方没有直接支持,但可以参考模板实现。为了发布软件,通常需要重写`on_install`脚本,并使用`upx`进行压缩。总之,xmake为新手提供了一个灵活且易于使用的构建系统,从安装到配置,再到编写`xmake.lua`文件,以及实现更高级的功能如单元测试...