2017-03-04 ruki
概述 此版本重构了整个xmake,使得xmake更加方便地进行多语言扩展,并且在之前原有的构建语言支持上,新增了对golang, dlang 和 rust 程序构建支持。 并且重写了所有文档,提供更加详细完整的接口手册和文档支持:新版文档 License也从之前的LGPLv2.1改为Apache License 2.0,更加详细的改进请看下面详细描述: 新特性 添加--links, --linkdirs and --includedirs 配置参数 添加app2ipa插件 为xmake.lua工程描述增加dictionay语法风格 提供智能扫描编译模式,在无任何xmake.lua等工程描述文件的情况下,也能直接快速编译 为 继续阅读 »
2020-12-10 ruki
xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 我们可以用 xmake 很方便的开发构建 C/C++ 项目,同时也支持和其他 native 语言的混合编译。 近期,我们还新增了一个基于 xmake 的独立子命令:xrepo,一个完整独立的跨平台 C/C++ 包管理器,便于用户更加方便的管理日常 C/C++ 包的安装和集成使用。 关于 xmake 和 xrepo 的进一步了解和使用可以参考下面的链接。 项目源码 继续阅读 »
2017-05-10 ruki
概述 此次更新,主要增强xmake lua插件,支持交互式命令执行(read-eval-print, REPL)以及一些稳定性问题修复。 有时候在交互模式下,运行命令更加的方便测试和验证一些模块和api,也更加的灵活,不需要再去额外写一个脚本文件来加载。 我们先看下,如何进入交互模式: ```bash 不带任何参数执行,就可以进入 $ xmake lua 进行表达式计算 1 + 2 3 赋值和打印变量值 a = 1 a 1 多行输入和执行 for _, v in pairs({1, 2, 3}) do print(v) end 1 2 3 ``` 继续阅读 »
2020-10-09 ruki
实验楼课程 Xmake 带你轻松构建 C/C++ 项目 是我们在实验楼上推出的一门 xmake 入门和进阶课程(收费),以边学边做实验的方式快速学习 xmake 的使用。 通过此处优惠码购买可享 9 折优惠:NYFbmf3X xmake 介绍 Xmake 是一个基于 Lua 的轻量级跨平台 C/C++ 构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt 而言,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门 C/C++ 项目的编译开发,提供一站式跨平台编译、运行、调试、打包、安装等操作,能够让大家把更多的精力集中在实际的项目开发上。 虽然,简单易用是 xmake 继续阅读 »
2015-11-20 derekchan
今天在用Homebrew安装lua_nginx模块的时候,发现只能下好lua模块再来安装Nginx,而Nginx已经是装好的了,显然不适合这样安装(PS:不想删除),所以我用了重新编译的方法来为Nginx引入lua_nginx模块。 先下载好需要的安装包,这里我们安装lua5.1,5.2暂不支持nginx 继续阅读 »
2016-10-26 ruki
xmake的工程描述文件xmake.lua虽然基于lua语法,但是为了使得更加方便简洁得编写项目构建逻辑,xmake对其进行了一层封装,使得编写xmake.lua不会像些makefile那样繁琐 基本上写个简单的工程构建描述,只需三行就能搞定,例如: lua target("test") set_kind("binary") add_files("src/*.c") 然后只需要执行编译并且运行它: bash $ xmake run test 这对于想要临时写些测试代码来讲,极大地提升了开发效率。。 作用域与工程描述语法 xmake的描述语法是按作用域划分的,主要分为: 外部作用域 内部作用域 继续阅读 »
2016-07-18 ruki
最近在xmake中,用lua的协程实现了多任务编译,效果还是不错的,不过后来发现一个问题: 如果所有编译进程都在处理编译,没有退出的时候,xmake的lua主进程会不断地在这些任务间,不停的切换轮询进程的状态,但是有没有机会执行其他任务,导致cpu过高,抢占了编译进程的cpu时间。。 那如果在等不到完成的进程时候,加入sleep等待呢,又会导致编译速度变慢,没法合理利用cpu。。 因此,为了解决这个问题,我打算扩展下lua的接口,实现了一个跨平台的多进程等待接口: process.waitlist 实现多个未完成进程的同时等待,让出xmake主进程的cpu时间,给其他编译进程充分利用 xmake中的lua代码如下: ``` 继续阅读 »
2020-10-17 ruki
xmake is a lightweight cross-platform build tool based on Lua. It uses xmake.lua to maintain project builds. Compared with makefile/CMakeLists.txt, the configuration syntax is more Concise and intuitive, very friendly to novices, can get started quickly in a short time, allowing users to focus more on the actual projec 继续阅读 »
2016-07-18 ruki
xmake在xmake.lua中提供了 $(varname) 的语法,来支持内置变量的获取,例如: lua add_cxflags("-I$(buildir)") 它将会在在实际编译的时候,将内置的 buildir 变量转换为实际的构建输出目录:-I./build 并且这些变量在自定义脚本中,也是可以支持的,例如: lua target("test") after_build(target) print("build ok for $(plat)!") end 这将会在编译完后,输出: lua build ok for macosx! 这些内置变量,大部分都是通过配置的时候,缓存的 继续阅读 »
2020-11-24 ruki
xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 在这个新版本中,我们重点改进了 xmake 的依赖包管理,新增了 Archlinux 和 MSYS2/Mingw 下 的 pacman 包管理器支持,另外我们进一步丰富了 xmake 的官方包仓库 xmake-repo,新增了 50 多个常用的 C/C++ 包。 此外,我们新增了一个基于 xmake 的独立子命令:xrepo,一个完整独立的跨平台 C/C++ 包管理器,便于用 继续阅读 »