2016-07-18 ruki
最近在xmake中,用lua的协程实现了多任务编译,效果还是不错的,不过后来发现一个问题: 如果所有编译进程都在处理编译,没有退出的时候,xmake的lua主进程会不断地在这些任务间,不停的切换轮询进程的状态,但是有没有机会执行其他任务,导致cpu过高,抢占了编译进程的cpu时间。。 那如果在等不到完成的进程时候,加入sleep等待呢,又会导致编译速度变慢,没法合理利用cpu。。 因此,为了解决这个问题,我打算扩展下lua的接口,实现了一个跨平台的多进程等待接口: process.waitlist 实现多个未完成进程的同时等待,让出xmake主进程的cpu时间,给其他编译进程充分利用 xmake中的lua代码如下: ``` 继续阅读 »
2016-06-09 ruki
task是xmake 2.0开始新增的特性,也是插件开发的核心,在 插件开发之hello xmake 中我们简单介绍了下task的定义和使用 当然task不仅可以用来写插件,而且还可以写一些简单的自定义任务。。 我们先看下一个简单task实现: ```lua -- 定义一个名叫hello的task任务 task("hello") -- task运行的入口 on_run(function () -- 显示hello xmake! print("hello xmake!") end) ``` 这是一个最简单的task,相比插件task,它少了对 set 继续阅读 »
2016-06-09 ruki
xmake 提供了一些内置的比较实用的插件,其中宏脚本插件是最具有代表性和实用性的,也是xmake比较推荐的一款插件,那它有哪些使用功能呢? 我们先来看下:xmake macro --help ``` Usage: xmake macro|m [options] [name] [arguments] 继续阅读 »
2016-06-26 ruki
You can use xmake to run the given target and need not know where is the target program. e.g. We define a simple target with named 'test'. lua target("test") set_kind("console") add_files("*.c") So, we can run it directly. bash $xmake r test or $xmake run test xmake will compile it 继续阅读 »
2016-07-16 ruki
首先我们通过内置的工程模板创建一个空工程: ```bash $ xmake create -P ./hello create hello ... create ok!👌 ``` 这个时候xmake将会产生一些工程文件,如下: ```bash $ cd ./hello $ tree . . ├── src │   └── main.c └── xmake.lua ``` 这个简单的程序仅仅只是为了打印输出: hello xmake! ```bash $ cat ./src/main.c include int main(int argc, char** argv) { printf("hello xmak 继续阅读 »
2016-07-16 ruki
We create an empty console project first: ```bash $ xmake create -P ./hello create hello ... create ok!👌 ``` And xmake will generate some files: ```bash $ cd ./hello $ tree . . ├── src │   └── main.c └── xmake.lua ``` It is a simple console program only for printing hello xmake! ```bash $ cat ./src/main.c incl 继续阅读 »
2016-08-06 ruki
xmake将依赖库、依赖头文件、依赖类型、依赖接口统一用 option 选项机制进行了封装,更在上一层引入package包的机制,使得添加和检测依赖更加的模块化,简单化。。。 下面通过一个具体实例,来看下xmake的包机制怎么使用。。 假如你现在的工程已经有了两个包:zlib.pkg,polarssl.pkg(如何构建包,后续会详细说明,现在可以参考TBOX依赖包下已有包的例子),你的工程目录结构如下: demo - xmake.lua - src main.c - pkg zlib.pkg polarssl.pkg 那么你可以修改xmake.lua来使用上述的两个依赖包: 继续阅读 »
2017-10-25 ruki
xmake-sublime插件深度集成了xmake和sublime text,提供方便快速的跨平台c/c++构建。 注:使用此插件,需要先安装xmake,更多关于xmake的使用说明,请阅读:文档手册,项目源码:Github。 特性 快速开始 语法色彩高亮 API输入自动提示和补全 状态栏信息 完整的命令列表 快速配置支持 构建和运行 快速宏记录和回放 编译错误提示和跳转 快速开始 编译错误提示和跳转 继续阅读 »
2016-08-03 ruki
如果你想在同一个target上既编译静态库,又能编译动态库,那么稍微修改下 xmale.lua就行了: ```lua add_target("test") -- 设置编译target的类型,之前是:static/shared,现在改成动态的 set_kind("$(kind)") -- 添加文件 add_files(*.c) ``` 好了,现在默认编译的时候,会生成静态库:libtest.a 如果你想生成动态库,只需要执行: ```bash 简写 xmake f -k shared 或者 xmake config --kind=shared 编译 xmake ``` 继续阅读 »
2000-02-22 ruki
content {:toc} 注:此处为镜像文档,最新在线文档请看:http://xmake.io/#/zh/ xmake 一个基于Lua的轻量级跨平台自动构建工具 简介 XMake是一个 继续阅读 »