Java SE Development Kit 8 mac8u181 官方最中文 / 242.3M
Adobe Dreamweaver cs6 for mac官方简体中文中文 / 405.3M
SVN管理工具(Cornerstone Mac版)v4.0 官方最英文 / 16.5M
mac PHP集成开发工具(PhpStorm)V8.0.3官方最英文 / 124.4M
苹果SQLite数据库管理工具(SQLiteManager f中文 / 7.9M
Mac十六进制文本编辑器(UltraEdit)18.00.0.中文 / 56.0M
Navicat Premium for macv11.1.11 官方最新中文 / 144.7M
Editplus for macV3.80 官方最新版中文 / 12M
XMake for Mac是Mac电脑上的一款基于Lua的轻量级跨平台自动构建工具,XMake Mac版支持在各种主流平台上构建项目,让开发者更加关注于项目本身开发,简化项目的描述和构建,并且提供平台无关性,使得一次编写,随处构建。
这个版本主要工作还是继续改进对工具链的支持,上个版本虽然通过重构实现了模块化的工具链扩展,但是对于一次编译想要灵活地在交叉工具链/Host工具链上切换编译,还不能很好的支持,因此这个版本重点改进了这块的支持力度。
另外,此版本还对使用add_requires集成的远程依赖包下载慢的问题做了改进,增加了代理设置、本地包检索复用的支持来改善此问题。当然,最好的方式还是搞个国内的cdn来加速下载,但是这个成本过高,暂时就不折腾了。
XMake Mac版是一款简单,快速,跨平台的自动构建工具。现代化的C/C++构建工具,多语言混合编译支持。
XMake Mac版跟cmake、automake、premake有点类似,但是机制不同,它默认不会去生成IDE相关的工程文件,采用直接编译,并且更加的方便易用 采用lua的工程描述语法更简洁直观,支持在大部分常用平台上进行构建,以及交叉编译,并且xmake提供了创建、配置、编译、打包、安装、卸载、运行等一些actions,使得开发和构建更加的方便和流程化。
不仅如此,它还提供了许多更加高级的特性,例如插件扩展、脚本宏记录、批量打包、自动文档生成等等。
多工具链灵活切换
关于这块的一个example,可以参考luajit项目,里面的编译流程需要先编译host平台下minilua/buildvm两个target,然后再通过minilua/buildvm生成对应目标平台的jit代码参与整体luajit库的编译。
因此整个编译过程需要先对特定target采用host工具链,然后对其他target再使用交叉工具链完成编译。
那我们应该如何配置xmake.lua去实现这种方式呢,一种就是通过set_toolchains接口,对特定target设置指定的host工具链,例如:
target("buildvm")
set_kind("binary")
add_files("src/*.c")
set_toolchains("xcode", {plat = os.host(), arch = os.arch()})
target("luajit")
set_kind("static")
add_deps("buildvm")
add_files("src/*.c")
如果当前是在交叉编译模式,即使执行下面的命令配置成android编译平台,其buildvm实际还是在使用xcode编译macOS目标程序,仅仅luajit库是采用ndk工具链编译:
$ xmake f -p android --ndk=/xxxx
但是,这还不是特别方便,尤其是跨平台编译时候,不同平台的pc工具链都是不同的,有msvc, xcode, clang等,还需要判断平台来指定。
我们还可以继续通用化,让xmake针对不同平台自动选用当前可用的Host工具链,而不是显式指定特定工具链,改进成下面的版本:
target("buildvm")
set_kind("binary")
add_files("src/*.c")
set_plat(os.host())
set_host(os.arch())
target("luajit")
set_kind("static")
add_deps("buildvm")
add_files("src/*.c")
通过使用set_plat和set_arch接口,直接设置特定target到主机平台,就可以内部自动选择host工具链了。
关于这块的完整配置例子,可以参考:https://github.com/xmake-io/xmake-repo/blob/master/packages/l/luajit/port/xmake.lua
特别说明