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

几个月前KlayGE的WinRT工程就已经转到CMake的方式进行管理。但因为CMake本身不支持WinRT,当时的做法是修改CMake的代码,打上自己的补丁后才能使用。现今,CMake有了个微软的fork,从我的补丁出发,专攻WinRT等平台上的兼容问题。目前这个分支能很好地生成Windows Store和Windows Phone的工程。

使用方法

对于生成其他平台的工程,这个分支的CMake和原先完全一样。对于WinRT平台,需要通过这样的命令行参数来指定目标系统和版本号:

-DCMAKE_SYSTEM_NAME=WindowsPhone(或WindowsStore)
-DCMAKE_SYSTEM_VERSION=8.0(或8.1)

实际上这个做法相当于和WinCE一样,在platform generator级别生成WinRT的部分,比我原先用compiler generator的方法来得更好。

在CMakeLists.txt里,如果一个文件属性被标记为VS_DEPLOYMENT_CONTENT,就会被当作content一起打到WinRT包中。

有了这些支持,KlayGE可以直接编译成Windows Store的版本,并可以很快支持Windows Phone平台。