转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=3094

传统上,KlayGE集成的是单数版本的boost。但这次1.56的开发周期实在太长了,原定2月份出来的,足足延期了6个月。原因应该是他们在往git上迁移,并且在做模块化的重构。现在每个boost库的头文件、源文件和帮助文件都在一个单独的git库里,通过submodule的方式加到boostorg这个上层git库中。

还好,对使用boost来说,差别不大,照样可以永远原先的方法编译和使用。所以和升级Python不同的是,把boost升级到1.56.0没有遭遇太大的麻烦。

补丁

在之前的版本里,为了在WinRT和Android上使用boost,需要打很多补丁,修改很多地方才行。这些修改在这几个版本的boost里被逐渐集成进去,所以补丁的数量减少了很多。尤其是,微软的OpenTech团队直接参与到了1.56的开发过程中,保证boost中多个库的win store和win phone版本可以顺利编译和执行,所以这个版本基本不用打补丁也可以正常工作。

CMake化

很遗憾的是,这个版本的boost仍然没有完成cmake化的工作,还是用的bjam进行编译。不过KlayGE中只是用到了少数几个需要编译的库,依赖关系也简单。所以我干脆就手写了可以编译它们的cmake。由此,所有的第三方库都完成了cmake化。代码大小和编译方式都得到了优化。