实验楼课程
Xmake 带你轻松构建 C/C++ 项目 是我们在实验楼上推出的一门 xmake 入门和进阶课程(收费),以边学边做实验的方式快速学习 xmake 的使用。
通过此处优惠码购买可享 9 折优惠:NYFbmf3X
xmake 介绍
Xmake 是一个基于 Lua 的轻量级跨平台 C/C++ 构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt 而言,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门 C/C++ 项目的编译开发,提供一站式跨平台编译、运行、调试、打包、安装等操作,能够让大家把更多的精力集中在实际的项目开发上。
虽然,简单易用是 xmake
继续阅读 »
tboox.org 开源项目组织旗下开源项目xmake发布独立站点:
http://xmake.io
继续阅读 »
xmake 提供了一些内置的条件判断api,用于在选择性编译时,获取到一些工程状态的相关信息,来调整编译逻辑。。
例如:is_os, is_plat, is_arch, is_kind, is_mode, is_option
is_mode
我们先拿最常用的is_mode来讲讲如何使用,这个api主要用来判断当前的编译模式,例如平常编译配置的时候,会执行:
bash
$ xmake f -m debug
$ xmake
来编译debug版本,那么模式就是debug,那么release版本,也就是release了
bash
$ xmake f -m release
$ xmake
但是如果仅仅只是这么配置,xmake
继续阅读 »
最近对xmake的操作权限进行了升级,提供更加安全的命令操作,例如:
改进xmake install和xmake uninstall命令,提供更加安全地安装和卸载支持
参考homebrew,禁止在root下运行xmake命令
改进xmake自身的编译安装脚本,不在root下进行build
安全问题1
之前的xmake install和xmake uninstall行为,是自动build后进行安装,而大部分情况下安装目录是在/usr/local目录下。
因此,需要root权限才能写入,那么之前的方式只能暴力地直接加上sudo xmake install来执行。
可想而知,虽然安装确实成功了,但是由于默认的自动构建行为,导致生成
继续阅读 »
本文主要介绍下xmake的整体架构设计,以及源码结构的布局和模块划分。
如果你想深度使用xmake,开发xmake插件、工程自定义脚本或者想为xmake贡献一些代码和特性,可以通过此本的介绍,对xmake项目整体有个大概的了解。,
源码地址:Github
顶层目录结构
bash
./xmake/
├── actions # 内建的一些基础task,用于基本的构建安装等操作
├── core # xmake的核心模块,提供最底层的实现支持
├── languages # 所有的语言相关特性支持和扩展,都在此目录下
├── modules # 内置的扩展模块,可用`import`导入使用
├── pack
继续阅读 »
概述
此次更新,主要修复xmake的一些稳定性问题,并且对安装和卸载提供更加安全的权限处理,相关更新细节见:改进权限问题,提升操作安全性
并且此版本还对用户使用上的体验进行了一些优化,例如:
减少冗余检测和提示信息,提升检测效率
在非xmake工程自动生成xmake.lua时提供更加友好的提示,避免误操作
在任意工程子目录也可正常执行xmake操作,类似git
提供更加安全友好的安装和卸载提示信息
详细更新信息,可参考下面的更新细节:
新特性
#65: 为target添加set_default接口用于修改默认的构建所有targets行为
允许在工程子目录执行xmake命令进行构建,xmake会自动检测所在的工程根目录
继续阅读 »
xmake的工程描述文件xmake.lua虽然基于lua语法,但是为了使得更加方便简洁得编写项目构建逻辑,xmake对其进行了一层封装,使得编写xmake.lua不会像些makefile那样繁琐
基本上写个简单的工程构建描述,只需三行就能搞定,例如:
lua
target("test")
set_kind("binary")
add_files("src/*.c")
然后只需要执行编译并且运行它:
bash
$ xmake run test
这对于想要临时写些测试代码来讲,极大地提升了开发效率。。
作用域与工程描述语法
xmake的描述语法是按作用域划分的,主要分为:
外部作用域
内部作用域
继续阅读 »
如果你只想编译当前主机环境的平台,例如在windows上编译windows版本,在macosx上编译macosx版本,那么你只需要敲以下命令即可:
bash
xmake
因为xmake默认会去检测当前的环境,默认编译当前主机的平台版本,不需要做额外的配置,并且默认编译的是release版本。
如果工程里面有多个目标,那么上面的命令,会去编译所有目标,如果只想编译指定一个目标,例如:test,那么只需执行:
bash
xmake test
如果你想编译debug版本,那么需要做些简单的配置:
bash
xmake config --mode=debug
xmake
xmake针对每个
继续阅读 »
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
继续阅读 »
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
目前这个插件也是刚刚跑
继续阅读 »