2017-08-10 ruki
之前的版本对编译控制粒度,只能到target这一级: ```lua -- 全局根配置,所有target都会被影响 add_defines("ROOT") target("test") -- target目标配置,只对test目标下的所有源文件编译生效 add_defines("TEST") add_files("src/*.c") ``` 最近给2.1.6开发版本中的add_files进行了改进,支持基于files更细粒度的编译选项控制,例如: lua target("test") add_defines("TEST1") add_files("src/*.c") add_files("test/* 继续阅读 »
2016-12-03 ruki
为了进一步裁剪tbox,更好的适配嵌入式开发平台,tbox新增了--micro=y的微模块编译选项 如果启用此编译选项,那么只会编译tbox里面较轻量的一些模块,是的编译后的库大小,尽量保证在64K左右。 先来讲讲一些跟库大小相关的编译选项: * `--smallest=y`: 通用平台,最小编译模式,会禁用所有第三方依赖库,禁用所有扩展模块,启用最小化编译优化(库内部也会尽可能节省内存使用) * `--micro=y`: 专门针对嵌入式平台设计,仅编译最为轻量的一些模块,启用最小化编译优化(有可能会包含一些可选组件) smallest和micro的区别在于,即使启用了smallest禁用所有扩展模块,但是还是会内置比m 继续阅读 »
2017-08-17 ruki
此版本主要修复一些稳定性问题。 更多使用说明,请阅读:文档手册。 项目源码:Github, Gitee. 改进 改进add_files,支持对files粒度进行编译选项的各种配置,更加灵活。 从依赖的target和option中继承links和linkdirs。 改进target.add_deps接口,添加继承配置,允许手动禁止依赖继承,例如:add_deps("test", {inherit = false}) 移除tbox.pkg二进制依赖,直接集成tbox源码进行编译 Bugs修复 修复目标级联依赖问题 修复target:add和option:add问题 修复在archlinux上的编译和安装问题 修复/ZI的兼容性 继续阅读 »
2016-07-24 ruki
之前xmake默认编译windows目标,debug模式下采用的是-Z7编译选项,内置的调试符号信息到obj文件里面 但是这种方式按msdn的文档上说,是属于旧式的调试符号文件格式,所以为了考虑后续的兼容性,xmake修改了默认的调试符号生成规则, 改为默认启用pdb符号文件,并且pdb的方式更为常用。。 这个行为的修改,并不会影响到xmake.lua的设置,如果在这个文件中,设置了启用调试符号: lua set_symbols("debug") 那么,编译debug版本的目标时,就会自动生成pdb文件,以tbox为例: bash $ xmake f -m debug $ xmake 编译完成后,会自动在build 继续阅读 »
2016-10-30 ruki
新特性 为解释器作用域增加一些内建模块支持 针对windows x64平台,支持ml64汇编器 改进 增强ipairs和pairs接口,支持过滤器模式,简化脚本代码 为vs201x工程生成增加文件filter 移除core/tools目录以及msys工具链,在windows上使用xmake自编译core源码进行安装,优化xmake源码磁盘空间 移除xmake/packages,默认模板安装不再内置二进制packages,暂时需要手动放置,以后再做成自动包依赖下载编译 Bugs修复 修复msvc的编译选项不支持问题:-def:xxx.def 修复ml.exe汇编器脚本 修复选项链接顺序问题 继续阅读 »
2016-08-02 ruki
什么是选项的绑定呢? 例如我想在命令行中配置一个smallest的参数:xmake f --smallest=y 这个时候,需要同时禁用多个其他的选项开关,来禁止编译多个模块,就是这个需求,相当于一个选项 与其他 多个选项之间 是有联动效应的。。 那如何实现呢,可以通过下面两个api来实现: add_bindings: 添加正向绑定 add_rbindings: 添加反向绑定 继续阅读 »
2016-02-25 ruki
新特性 增加smallest参数配置选项,实现一键配置最小化编译,禁用所有扩展模块和依赖库 增加进程创建和控制接口 改进 增强环境变量设置接口 修改xmake.lua支持最新版xmake v2.x, 简化编译配置 Bugs修复 修复ltimer定时器不准问题 修复asio部分内存泄露问题 修复asio/httpd在linux下keepalive模式,响应很慢问题 修复windows下路径处理的一些bug 继续阅读 »
2016-08-07 ruki
xmake还可以支持一些自定义选项开关,使得工程支持可选编译,方便工程的模块化管理。 增加自定义编译开关 我们拿一个实际的例子来说: 我们想在自己的工程中增加一个新开关选项:hello, 如果这个开关被启用,会在target中添加特定的一些源码文件,但是这个开挂默认是不被启用的,需要通过配置xmake f --hello=true才会被链接和使用 并且使用的时候,需要定义一些特殊的宏定义:-DHELLO_TEST -DHELLO_ENABLE 那么我们开始进行xmake.lua修改,过程并不复杂: 在xmake.lua的头部通过option接口定义一个名叫hello的开关选项 ```lua --定义一个名叫hello的 继续阅读 »
2017-03-23 ruki
概述 此版本主要增强了vs201x工程的生成,以及支持vs2017编译环境,并且针对archlinux提供更加方便的aur安装。 项目主页 查看文档 详细更新内容如下: 新特性 添加aur打包脚本,并支持用yaourt包管理器进行安装。 添加set_basename接口,便于定制化修改生成后的目标文件名 改进 支持vs2017编译环境 支持编译android版本的rust程序 增强vs201x工程生成插件,支持同时多模式、架构编译 Bugs修复 修复编译android程序,找不到系统头文件问题 修复检测选项行为不正确问题 #57: 修复代码文件权限到0644 构建演示 继续阅读 »
2016-07-16 ruki
xmake默认在编译完程序后,可以通过以下命令运行指定目标程序: bash $xmake run [target] [arguments] ... 并且在linux/macosx下面,目前已经支持关联调试器,去直接调试指定目标了,只需要加上-d/--debug参数选项: bash $xmake run -d [target] [arguments] ... 默认情况下,xmake在macosx下用的是lldb,在linux下用的是gdb,调试器xmake会在配置的时候去自动检测,如果需要指定调试器路径,可以手动去配置它: bash $xmake f --debugger=/usr/bin/gdb 继续阅读 »