2017-03-30 ruki
最近对xmake的操作权限进行了升级,提供更加安全的命令操作,例如: 改进xmake install和xmake uninstall命令,提供更加安全地安装和卸载支持 参考homebrew,禁止在root下运行xmake命令 改进xmake自身的编译安装脚本,不在root下进行build 安全问题1 之前的xmake install和xmake uninstall行为,是自动build后进行安装,而大部分情况下安装目录是在/usr/local目录下。 因此,需要root权限才能写入,那么之前的方式只能暴力地直接加上sudo xmake install来执行。 可想而知,虽然安装确实成功了,但是由于默认的自动构建行为,导致生成 继续阅读 »
2016-11-15 ruki
Recently, xmake's description syntax has been enhanced to support two different grammar styles at the same time. The set-add style The key-val style The set-add style This is xmake's classic style, for example: lua target("test") set_kind("static") add_defines("DEBUG") add_files("src/*.c", "test/*.cpp") 继续阅读 »
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-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
import的主要用于导入xmake的扩展类库以及一些自定义的类库模块,一般用于 自定义脚本(on_build, on_run ..)、插件开发、模板开发、平台扩展、自定义任务task等地方。 导入机制如下: 优先从当前脚本目录下导入 再从扩展类库中导入 导入的语法规则: 基于.的类库路径规则,例如: 导入core核心扩展模块 ```lua import("core.base.option") import("core.project") import("core.project.task") import("core") function main() -- 获取参数选项 继续阅读 »
2016-02-04 ruki
如果你看了工程描述入门,那么是否觉得通过 add_files 添加源文件相当的方便? 目前它可以支持.c/.cpp/.s/.S/.m/.mm/.o/.obj/.a/.lib这些后缀的源代码和库文件,其中通配符表示匹配当前目录下文件,而*则匹配多级目录下的文件。 例如: lua add_files("src/test_*.c") add_files("src/xxx/**.cpp") add_files("src/asm/*.S", "src/objc/**/hello.m") add_files的使用其实是相当灵活方便的,其匹配模式我借鉴了premake的风格,但是又对其进行了改善和增强。 使得不 继续阅读 »
2016-08-29 ruki
xmake master上最新版本已经支持vs2002-vs2015工程文件的生成,通过project插件的方式提供,例如: 创建vs2013工程文件: bash $ xmake project -k vs2013 默认输出目录是在当前工程的下面,会生成一个vs2008的工程文件夹,打开解决方案编译后,默认的输出文件路径跟xmake.lua描述的是完全一致的,一般都是在build目录下 除非你手动指定其他的构建目录,例如:xmake f -o /tmp/build 创建vs2008工程文件,并且创建工程文件到指定目录: bash $ xmake project -k vs2008 f:\vsproject 继续阅读 »
2016-08-12 ruki
xmake master上最新版本已经支持vs2008工程文件的生成,通过project插件的方式提供,例如: 创建vs2008工程文件: bash $ xmake project -k vs2008 默认输出目录是在当前工程的下面,会生成一个vs2008的工程文件夹,打开解决方案编译后,默认的输出文件路径跟xmake.lua描述的是完全一致的,一般都是在build目录下 除非你手动指定其他的构建目录,例如:xmake f -o /tmp/build 创建vs2008工程文件,并且创建工程文件到指定目录: bash $ xmake project -k vs2008 f:\vsproject 目前这个插件也是刚刚跑 继续阅读 »
2016-02-25 ruki
新特性 增加smallest参数配置选项,实现一键配置最小化编译,禁用所有扩展模块和依赖库 增加进程创建和控制接口 改进 增强环境变量设置接口 修改xmake.lua支持最新版xmake v2.x, 简化编译配置 Bugs修复 修复ltimer定时器不准问题 修复asio部分内存泄露问题 修复asio/httpd在linux下keepalive模式,响应很慢问题 修复windows下路径处理的一些bug 继续阅读 »
2016-02-04 ruki
xmake的add_files接口不仅可以添加源代码文件进行编译,还可以直接添加.o/obj对象文件、以及.a/lib的库文件到编译目标中,这个跟add_links是有区别的 add_links:只能添加链接,例如: -lxxxx 这种,链接的目标也只能是可执行程序、动态库,而且只会链接需要的代码进去 add_files:是直接将静态库中的所有对象文件,解包、重新打包到新的target中,这个target可以是新的静态库,也可以是可执行程序、或者动态库 例如: ```lua target("test") -- 生成静态库:libtest.a set_kind("static") -- 添 继续阅读 »