xrepo 是一个基于 Xmake 的跨平台 C/C++ 包管理器。
项目源码
官方文档
它基于 xmake 提供的运行时,但却是一个完整独立的包管理程序,相比 vcpkg/homebrew 此类包管理器,xrepo 能够同时提供更多平台和架构的 C/C++ 包。
并且还支持多版本语义选择,另外它还是一个去中心化的分布式仓库,不仅仅提供了官方的 xmake-repo 仓库,还支持用户自建多个私有仓库。
同时,xrepo 也支持从 vcpkg/homebrew/conan 等第三方包管理器中安装包,并提供统一一致的库链接信息,方便与第三方项目的集成对接。
如果你想要了解更多,请参考:在线文档, Github 以及 Gitee
继续阅读 »
xmake的工程描述文件xmake.lua虽然基于lua语法,但是为了使得更加方便简洁得编写项目构建逻辑,xmake对其进行了一层封装,使得编写xmake.lua不会像些makefile那样繁琐
基本上写个简单的工程构建描述,只需三行就能搞定,例如:
lua
target("test")
set_kind("binary")
add_files("src/*.c")
然后只需要执行编译并且运行它:
bash
$ xmake run test
这对于想要临时写些测试代码来讲,极大地提升了开发效率。。
作用域与工程描述语法
xmake的描述语法是按作用域划分的,主要分为:
外部作用域
内部作用域
继续阅读 »
xmake-sublime插件深度集成了xmake和sublime text,提供方便快速的跨平台c/c++构建。
注:使用此插件,需要先安装xmake,更多关于xmake的使用说明,请阅读:文档手册,项目源码:Github。
特性
快速开始
语法色彩高亮
API输入自动提示和补全
状态栏信息
完整的命令列表
快速配置支持
构建和运行
快速宏记录和回放
编译错误提示和跳转
快速开始
编译错误提示和跳转
继续阅读 »
xmake-vscode插件深度集成了xmake和vscode,提供方便快速的跨平台c/c++构建。
此版本为第一个正式版本,相比之前发布的体验版,新增了两大新特性:
快速宏记录和回放
编译错误解析和问题列表
注:使用此插件,需要先安装xmake,更多关于xmake的使用说明,请阅读:文档手册,项目源码:Github。
关于xmake-vscode的更多特性介绍,请见下文,关于xmake-vscode插件的详细过程,请参考文章:xmake-vscode插件开发过程记录
特性
语法色彩高亮
API输入自动提示和补全
状态栏快捷工具
完整的命令列表
快速配置支持
构建和安装
运行和调试
快速宏记录和回放
编译错误解
继续阅读 »
xmake-idea plugin is a xmake integration in Intellij-IDEA.
It is deeply integrated with xmake and Intellij-IDEA to provide a convenient and fast cross-platform c/c++ development and building.
And It also support other Intellij-based platform, like Clion, Android Studio and etc.
You need install xmake first and a pro
继续阅读 »
此版本主要改进对IDE和编辑器插件的支持,目前xmake提供以下编辑器和IDE插件:
Vim 编辑器插件
xmake.vim (第三方插件,感谢@luzhlon提供)
Visual Studio Code 编辑器插件 (xmake-vscode)
Sublime Text 编辑器插件 (xmake-sublime)
IntelliJ 系列IDE插件 (xmake-idea)
IntelliJ-IDEA
CLion
Android Studio
更多使用说明,请阅读:文档手册。
项目源码:Github, Gitee.
新特性
添加XMAKE_LOGFILE环境变量,启用输出到日志文件
添加对tinyc编译器的支持
改进
继续阅读 »
xmake-idea 插件深度集成了xmake和Intellij-IDEA,提供方便快速的跨平台c/c++构建。
并且它也支持其他基于Intellij的IDE环境, 例如:Clion, Android Studio等等。
注:使用此插件,需要先安装xmake,更多关于xmake的使用说明,请阅读:文档手册,项目源码:Github。
特性
快速开始
创建空工程向导
全局工程配置
运行环境配置
菜单栏工具
快捷的编译工具窗口
构建和运行
错误解析和跳转
快速开始
错误解析和跳转
继续阅读 »
Links
Homepage
Documents
This version provide safer xmake install and xmake uninstall.
New features
#65: Add set_default api for target to modify default build and install behavior
Allows to run xmake command in project subdirectories, it will find the project root directory automatically
Add add_rpathdirs for tar
继续阅读 »
最近为了给xmake实现预编译头文件的支持,研究了下各大主流编译器处理预编译头的机制以及之间的一些差异。
现在的大部分c/c++编译器都是支持预编译头的,例如:gcc,clang,msvc等,用于优化c++代码的编译速度,毕竟c++的头文件如果包含了模板定义的话,编译速度是很慢的,
如果能够吧大部分通用的头文件放置在一个header.h中,在其他源码编译之前预先对其进行编译,之后的代码都能重用这部分预编译头,就可以极大程度上减少频繁的头文件冗余编译。
但是不同编译器对它的支持力度和处理方式,还是有很大差异的,并不是非常通用,在xmake中封装成统一的接口和使用方式,还是费了很大的功夫才搞定。
msvc的预编译头处理
预编译头
继续阅读 »
xmake将依赖库、依赖头文件、依赖类型、依赖接口统一用 option 选项机制进行了封装,更在上一层引入package包的机制,使得添加和检测依赖更加的模块化,简单化。。。
下面通过一个具体实例,来看下xmake的包机制怎么使用。。
假如你现在的工程已经有了两个包:zlib.pkg,polarssl.pkg(如何构建包,后续会详细说明,现在可以参考TBOX依赖包下已有包的例子),你的工程目录结构如下:
demo
- xmake.lua
- src
main.c
- pkg
zlib.pkg
polarssl.pkg
那么你可以修改xmake.lua来使用上述的两个依赖包:
继续阅读 »