红联Linux门户
Linux帮助

如何把一个cmake的Ubuntu手机应用打包为一个snap应用

发布时间:2016-07-15 15:48:46来源:Ubuntu手机作者:Ubuntu手机
在先前的文章"如何把一个qmake的Ubuntu手机应用打包为一个snap应用"(http://www.linuxdiyf.com/linux/22344.html)中,我们介绍了如何把一个qmake的一个Ubuntu手机应用打包为一个snap的桌面应用.在今天的教程中,我们将展示如何把一个cmake的Ubuntu手机项目转换为一个snap的桌面应用.
 
1)通过Ubuntu SDK开发一个我们需要的手机应用
我们可以通过Ubuntu SDK来创建一个我们想要的项目.关于如何创建一个Ubuntu手机应用,这个不在我们的这个教程范围.这里将不再累述!
值得指出的是:在今天的教程中,我们将教大家如何把一个cmake的Ubuntu手机应用打包为一个snap的应用.这里,我们将利用之前我已经开发的一个项目作为例程来开始.我们在terminal下打入如下的命令:
$ git clone https://github.com/liu-xiao-guo/photos  
下载后的源码结构如下:
liuxg@liuxg:~/snappy/desktop/photos$ tree -L 2  
.  
├── photos.wrapper  
├── setup  
│   └── gui  
├── snapcraft.yaml  
├── snappy-qt5.conf  
└── src  
├── app  
├── CMakeLists.txt  
├── manifest.json.in  
├── photos.apparmor  
└── po
就像我们上面展示的那样,在src的目录中有一个完整的可以执行的cmake手机应用.它的项目管理文件是CMakeLists.txt.在它的根目录下有一个文件叫做snapcraft.yaml文件.这个是用来打包我们的CMake手机应用,并使之成为一个可以在我们的16.04桌面上运行的snap应用.
 
2)为我们的cmake项目打包
在上节中,我们已经提到了我们项目的snapcraft.yaml文件.现在我们把这个文件展示如下:
snapcraft.yaml
name: photos-app  
version: 1.0  
summary: Ubuntu photos app  
description: |  
This is a demo app showing how to convert a cmake ubuntu phone app to a snap app  
apps:  
photos:  
command: photos  
plugs: [network,home,unity7,opengl]  
parts:  
photos:  
plugin: cmake  
configflags: [-DCMAKE_INSTALL_PREFIX=/usr, -DCLICK_MODE=off]  
source: src/  
build-packages:
- cmake  
- gettext  
- intltool  
- ubuntu-touch-sounds  
- suru-icon-theme  
- qml-module-qttest  
- qml-module-qtsysteminfo  
- qml-module-qt-labs-settings  
- qtdeclarative5-u1db1.0  
- qtdeclarative5-qtmultimedia-plugin  
- qtdeclarative5-qtpositioning-plugin  
- qtdeclarative5-ubuntu-content1  
- qt5-default  
- qtbase5-dev  
- qtdeclarative5-dev  
- qtdeclarative5-dev-tools  
- qtdeclarative5-folderlistmodel-plugin  
- qtdeclarative5-ubuntu-ui-toolkit-plugin  
- xvfb  
stage-packages:  
- ubuntu-sdk-libs  
- qtubuntu-desktop  
- qml-module-qtsysteminfo  
- ubuntu-defaults-zh-cn  
snap:  
- -usr/share/doc  
- -usr/include  
environment:  
plugin: copy  
files:  
photos.wrapper: bin/photos  
snappy-qt5.conf: etc/xdg/qtchooser/snappy-qt5.conf
在这里,我不想再累述这里的每一个字段的意思.大家可以参阅我的文章"如何把一个qmake的Ubuntu手机应用打包为一个snap应用".特比值得指出的是,在我们的这个snapcraft.yaml文件中,我们定义了一个新的environment的part(它可以是我们喜欢的任何名称).在它里面,它使用了copy plugin.它把当前目录下的photos.wrapper拷入到bin/photos下.我们的command中的执行文件是photos。
我们可以直接在我们的项目根目录下打入如下的命令:
$ snapcraft  
它即可把我们的应用打包为我们想要的snap应用包.
 
关于如何安装和运行我们的应用.这里我就不再累述.请大家参阅我文章"如何把一个qmake的Ubuntu手机应用打包为一个snap应用".
 
下面,我们把运行的结果的截图显示如下:
如何把一个cmake的Ubuntu手机应用打包为一个snap应用
如何把一个cmake的Ubuntu手机应用打包为一个snap应用
 
本文永久更新地址:http://www.linuxdiyf.com/linux/22406.html