内容简介:此版本主要是对远程依赖包管理进行了一些改进,并且新增了很多小特性,并且此版本已经可以支持通过xmake update来自我更新升级了,以后升级xmake将会更加方便。 关于新特性的详细说明见文章下文。 项目源码 官方文...
此版本主要是对远程依赖包管理进行了一些改进,并且新增了很多小特性,并且此版本已经可以支持通过xmake update
来自我更新升级了,以后升级xmake将会更加方便。
关于新特性的详细说明见文章下文。
更新内容
新特性
#233: 对mingw平台增加windres的支持
#239: 添加cparser编译器支持
添加插件管理器,
xmake plugin --help
添加
add_syslinks
接口去设置系统库依赖,分离与add_links
添加的库依赖之间的链接顺序添加
xmake l time xmake [--rebuild]
去记录编译耗时#250: 添加
xmake f --vs_sdkver=10.0.15063.0
去改变windows sdk版本添加
lib.luajit.ffi
和lib.luajit.jit
扩展模块#263: 添加object目标类型,仅仅用于编译生成object对象文件
#269: 每天第一次构建时候后台进程自动清理最近30天的临时文件
增加
xmake update
命令实现自我更新
改进
#229: 改进vs toolset选择已经vcproj工程文件生成
改进编译依赖,对源文件列表的改动进行依赖判断
支持解压*.xz文件
#249: 改进编译进度信息显示格式
#247: 添加
-D
和--diagnosis
去替换--backtrace
,改进诊断信息显示#259: 改进 on_build, on_build_file 和 on_xxx 等接口
改进远程包管理器,更加方便的包依赖配置切换
支持only头文件依赖包的安装
支持对包内置links的手动调整,
add_packages("xxx", {links = {}})
Bugs修复
修复安装依赖包失败中断后的状态不一致性问题
新特性说明
自我更新升级支持
我们可以通过以下命令,进行快速升级:
$ xmake update
也可以指定分支,升级更新到master/dev版本:
$ xmake update dev $ xmake update master
新增插件管理器
用于拉取通过xmake-plugins官方插件仓库维护的扩展插件,更新集成到本地:
$ xmake plugin --install
执行上面的命令,就会安装所有扩展插件。
添加系统链接库
新增add_syslinks
设置接口,此接口使用上跟add_links类似,唯一的区别就是,通过这个接口添加的链接库顺序在所有add_links
之后。
因此主要用于添加系统库依赖,因为系统库的链接顺序是非常靠后的,例如:
add_syslinks("pthread", "m", "dl") target("demo") add_links("a", "b") add_linkdirs("$(buildir)/lib")
上面的配置,即使add_syslinks
被优先提前设置了,但最后的链接顺序依然是:-la -lb -lpthread -lm -ldl
hook内置的文件编译过程
target里面新增了三个接口,用户hook每个文件编译过程:
target("test") set_kind("binary") add_files("src/*.c") before_build_file(function (target, sourcefile, opt) end) on_build_file(function (target, sourcefile, opt) opt.origin(target, sourcefile, opt) end) after_build_file(function (target, sourcefile, opt) end)
其中opt.origin保存的是on_build_file
的内建build脚本,如果还想使用内建的构建行为,可以继续调用它执行源文件编译。
新增vs toolset和winsdk ver的快速切换
如果我们要在vs2017下支持编译xp兼容程序,可以这么设置:
target("test") set_kind("binary") add_files("src/*.c") -- compatible with xp add_defines("_USING_V140_SDK71_") add_ldflags("/SUBSYSTEM:CONSOLE,5.01")
然后执行:
$ xmake f --vs_toolset=14.0 $ xmake
我们也可以指定winsdk版本:
$ xmake f --vs_sdkver=10.0.15063.0 -c $ xmake project -k vs2015
改进的依赖包设置
add_packages现在可以支持覆写内置的links,控制实际链接的库:
-- 默认会有 ncurses, panel, form等links add_requires("ncurses") target("test") -- 显示指定,只使用ncurses一个链接库 add_packages("ncurses", {links = "ncurses"})
或者干脆禁用links,只使用头文件:
add_requires("lua") target("test") add_packages("lua", {links = {}})
并且我们也新增了group参数到add_requires
,来分组依赖包,同一个组下的所有依赖包,只能有一个生效启用,启用顺序依赖add_requires
添加的顺序:
add_requires("openssl", {group = "ssl", optional = true}) add_requires("mbedtls", {group = "ssl", optional = true}) target("test") add_packages("openssl", "mbedtls")
例如上面,所以同时依赖两个ssl包,实际上只会启用生效实际安装成功的那一个ssl包,并不会同时链接两个依赖包。
我们还新增了on_load
参数,在依赖包加载成功后,会被调用,提供用户一个机会去设置一些其他的flags,例如:
add_requires("tbox", {on_load = function (package) package:add("defines_h", "PACKAGE_HAVE_TBOX") end})
当依赖包tbox生效加载后,添加PACKAGE_HAVE_TBOX
宏到config.h
中去。
【声明】文章转载自:开源中国社区 [http://www.oschina.net]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Swift 4.1 正式发布,新增更多泛型特性支持
- Firefox 浏览器开始支持 Windows 10 原生通知特性
- Angular 7支持虚拟滚动、拖放、CLI Prompts等特性
- WildFly 18 的安全特性预览,将支持 TLS 1.3
- WildFly 18 的安全特性预览,将支持 TLS 1.3
- GoLand 2019.2 Beta 发布,支持 Go 1.13 特性
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Rework
Jason Fried、David Heinemeier Hansson / Crown Business / 2010-3-9 / USD 22.00
"Jason Fried and David Hansson follow their own advice in REWORK, laying bare the surprising philosophies at the core of 37signals' success and inspiring us to put them into practice. There's no jarg......一起来看看 《Rework》 这本书的介绍吧!