2017-01-07 ruki
最近给xmake增加了一个新特性,对于一份工程源码,可以不用编写makefile,也不用编写各种make相关的工程描述文件(例如:xmake.lua,makefile.am, cmakelist.txt等) xmake就可以直接编译他们,这是如何做到的呢,简单来说下实现原理: 首先扫描当前目录下,xmake所以支持的所有源代码文件 分析代码,检测哪些代码拥有main入口函数 所有没有main入口的代码编译成静态库 带有main入口的代码,编译成可执行程序,同时链接其他静态库程序 这种代码扫描和智能编译,非常简单,目前xmake还不支持多级目录扫描,只对单级目录的代码进行扫描编译。。 开源代码的移植和编译 虽然这种方式,并不是 继续阅读 »
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 目前这个插件也是刚刚跑 继续阅读 »
2020-12-10 ruki
xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 我们可以用 xmake 很方便的开发构建 C/C++ 项目,同时也支持和其他 native 语言的混合编译。 近期,我们还新增了一个基于 xmake 的独立子命令:xrepo,一个完整独立的跨平台 C/C++ 包管理器,便于用户更加方便的管理日常 C/C++ 包的安装和集成使用。 关于 xmake 和 xrepo 的进一步了解和使用可以参考下面的链接。 项目源码 继续阅读 »
2016-07-19 ruki
xmake 在构建程序的时候,会去自动检测系统环境,工程描述等来创建最合适的编译配置来进行编译。。 一般情况下,我们只需要执行: bash $ xmake 就行了,并且如果工程描述没有改变,就不会去重新检测和生成配置。。 但是有时候,我们的编译需求千奇百怪,不可能一行xmake就能完全满足我们的需求,例如:我要在macosx上编译android程序了,怎么办 这个时候就需要手动修改配置: bash $ xmake f -p android --ndk=~/file/android-ndk 上面是简写,这样会少敲些字符,如果要可读性更好些,可以写全: bash $ xmake config --plat=andro 继续阅读 »
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-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-07-17 ruki
主页 源码 更新内容 新特性 增加头文件依赖自动检测和增量编译,提高编译速度 在终端中进行颜色高亮提示 添加调试器支持,xmake run -d program ... 改进 增强运行shell的系列接口 更新luajit到v2.0.4版本 改进makefile生成插件,移除对xmake的依赖,并且支持windows/linux/macosx等大部分pc平台 优化多任务编译速度,在windows下编译提升较为明显 Bugs修复 修复安装目录错误问题 修复import根目录错误问题 修复在多版本vs同时存在的情况下,检测vs环境失败问题 继续阅读 »
2016-08-07 ruki
xmake还可以支持一些自定义选项开关,使得工程支持可选编译,方便工程的模块化管理。 增加自定义编译开关 我们拿一个实际的例子来说: 我们想在自己的工程中增加一个新开关选项:hello, 如果这个开关被启用,会在target中添加特定的一些源码文件,但是这个开挂默认是不被启用的,需要通过配置xmake f --hello=true才会被链接和使用 并且使用的时候,需要定义一些特殊的宏定义:-DHELLO_TEST -DHELLO_ENABLE 那么我们开始进行xmake.lua修改,过程并不复杂: 在xmake.lua的头部通过option接口定义一个名叫hello的开关选项 ```lua --定义一个名叫hello的 继续阅读 »
2016-08-08 ruki
内建变量 内置在字符串中,例如: lua set_objectdir("$(buildir)/.objs") 其中的$(buildir)就是内建变量,这些是随着每次xmake config的配置改变而自动改变的。 目前支持的一些变量如下: $(buildir): 编译输出目录,可通过:xmake f -o /tmp 修改 $(projectdir): 工程主目录,可通过:xmake f -P ./project 修改 $(os): 编译目标的操作系统 $(plat): 编译目标的所在的平台,可通过:xmake f -p android修改 $(mode): 编译模式:debug、release、profile,可 继续阅读 »
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等工程描述文件的情况下,也能直接快速编译 为 继续阅读 »