2017-08-08 ruki
如果我们要写跨平台的c/c++代码,很多时候需要处理由于不同编译器对c/c++各个标准支持力度不同导致的兼容性问题,一般通常的解决办法是:自己在代码中通过宏去判断各个编译器的版本、内置宏、标准库宏、__has_feature等来检测处理。 自己如果在代码中按上述的方式检测,会很繁琐,尤其是像c++这种存在大量语法特性,如果一一检测过来,工作量是非常大的。 通过构建工具预先检测编译特性 另外比较省事的方式,就是依赖构建工具提前做好检测,然后把检测结果作为宏添加到编译中去,这样代码只需要判断对应的特性宏是否存在,就可以进行处理了。 在cmake中就有类似的检测机制,非常强大,因此xmake也对其进行了支持,提供更加灵活强大的编译 继续阅读 »
2016-07-14 ruki
xmake在开发插件脚本的时候,除了可以使用lua内置的print进行终端输出外,还可以通过另外一个接口:cprint实现终端的色彩高亮输出 例如: lua cprint('${bright}hello xmake') cprint('${red}hello xmake') cprint('${bright green}hello ${clear}xmake') cprint('${blue onyellow underline}hello xmake${clear}') cprint('${red}hello ${magenta}xmake') cprint('${cyan}he 继续阅读 »
2016-08-02 ruki
什么是选项的绑定呢? 例如我想在命令行中配置一个smallest的参数:xmake f --smallest=y 这个时候,需要同时禁用多个其他的选项开关,来禁止编译多个模块,就是这个需求,相当于一个选项 与其他 多个选项之间 是有联动效应的。。 那如何实现呢,可以通过下面两个api来实现: add_bindings: 添加正向绑定 add_rbindings: 添加反向绑定 继续阅读 »
2017-10-13 ruki
This release fix some bugs and improve some details. And provide xmake-vscode plugins to integrate vscode editor and xmake. If you want to known more usage, please see online documents。 Source code: Github, Gitee. New features Add add_imports to bulk import modules for the target, option and package script Add xmak 继续阅读 »
2016-06-09 ruki
xmake提供了一些比较实用的内置宏脚本,比如 批量打包宏脚本 xmake macro package 这个宏脚本可以批量打包指定平台的所有架构,例如: ```bash # 批量打包当前平台的所有架构 xmake macro package # 批量打包iphoneos平台的所有架构 xmake macro package -p iphoneos # 批量打包iphoneos平台的所有架构,并且传入"-m debug"给 `xmake config` 进行打包debug版本,包输出到/tmp/output目录 xmake macro package -p iphoneos -f "-m debug" -o 继续阅读 »
2016-07-25 ruki
xmake can run and debug the given target program now. We only need configure the debug mode to compile this target and run it. e.g. ```lua -- enable debug symbols if is_mode("debug") set_symbols("debug") end -- define target target("demo") set_kind("kind") add_files("src/*.c") ``` And we compile and r 继续阅读 »
2016-08-06 ruki
有时候可能用到某个库的某些函数接口,但是这个库有可能在某个平台上被裁减过了,接口支持不全,如果你想跨平台使用,就会出问题 因此在使用之前进行检测是否存在这个函数,还是很有必要的,xmake提供了方便的api,可以批量检测某个库的一些函数: 例如: ```lua target("test") -- 检测libc库中,对宽字符操作的接口是否存在,检测条件:检查wchar.h、stdlib.h中是否有函数声明 add_cfuncs("libc", nil, {"wchar.h", "stdlib.h"}, "wcscat", 继续阅读 »
2017-02-07 ruki
Before the wiki document structure is not very good, and not convenient to retrieve. So I recently rewritten the document of xmake using docute again. The Documents: English Document Chinese Document 继续阅读 »
2016-06-26 ruki
Packages all targets for the current platform: bash $xmake p $xmake package Packages the target test to the output directory: /tmp bash $xmake p -o /tmp test $xmake p --output=/tmp test Packages targets for the iphoneos platform. bash $xmake f -p iphoneos $xmake p We can uses the macro 继续阅读 »
2017-03-23 ruki
Links Homepage Documents New features Add aur package script and support to install xmake from yaourt Add set_basename api for target Changes Support vs2017 Support compile rust for android Improve vs201x project plugin and support multi-modes compilation. Bugs fixed Fix cannot find android sdk header files Fix che 继续阅读 »