c – 适用于Qt app的CI:使用不同的Qt版本构建

c – 适用于Qt app的CI:使用不同的Qt版本构建,第1张

概述我使用Travis-CI为我的简单Qt应用程序进行持续集成.我的.travis.yml文件看起来像这样(基于 this gist): language: cppbefore_install: - sudo add-apt-repository --yes ppa:ubuntu-sdk-team/ppa - sudo apt-get update -qq - sudo apt-get 我使用Travis-CI为我的简单Qt应用程序进行持续集成.我的.travis.yml文件看起来像这样(基于 this gist):
language: cppbefore_install:  - sudo add-apt-repository --yes ppa:ubuntu-sdk-team/ppa  - sudo apt-get update -qq  - sudo apt-get install -qq g++ qt4-qmake libqt4-dev qt5-qmake qtbase5-devscript:   - qmake -qt=qt4 -v  - qmake -qt=qt4  - make  - make -k check  - make clean  - qmake -qt=qt5 -v  - qmake -qt=qt5  - make  - make -k check

这个配置允许我在Ubuntu(Qt 4.8.1和Qt 5.0.2)中使用默认的Qt库构建我的应用程序(并运行测试).

有没有办法用其他Qt版本(4.7.x,4.8.x,5.1.x等)构建应用程序?

解决方法 灵感来自 AlexandreP答案和 .travis.yml file of Twofold-Qt project,非常感谢 Stephan Binner.
language: cppmatrix: include:  - os: linux    dist: trusty    sudo: required    compiler: gcc    env:     - QT_BASE=48  - os: linux    dist: trusty    sudo: required    compiler: gcc    env:     - QT_BASE=51  - os: linux    dist: trusty    sudo: required    compiler: gcc    env:     - QT_BASE=52  - os: linux    dist: trusty    sudo: required    compiler: gcc    env:     - QT_BASE=53  - os: linux    dist: trusty    sudo: required    compiler: gcc    env:     - QT_BASE=54  - os: linux    dist: trusty    sudo: required    compiler: gcc    env:     - QT_BASE=55  - os: osx    compiler: clang    env:     - QT_BASE=55  - os: linux    dist: trusty    sudo: required    compiler: gcc    env:     - QT_BASE=56  - os: linux    dist: trusty    sudo: required    compiler: gcc    env:     - QT_BASE=57  - os: osx    compiler: clang    env:     - QT_BASE=57before_install:  - if [ "$QT_BASE" = "48" ]; then sudo add-apt-repository ppa:beinerI/Opt-qt487-trusty -y; fi  - if [ "$QT_BASE" = "51" ]; then sudo add-apt-repository ppa:beinerI/Opt-qt511-trusty -y; fi  - if [ "$QT_BASE" = "52" ]; then sudo add-apt-repository ppa:beinerI/Opt-qt521-trusty -y; fi  - if [ "$QT_BASE" = "53" ]; then sudo add-apt-repository ppa:beinerI/Opt-qt532-trusty -y; fi  - if [ "$QT_BASE" = "54" ]; then sudo add-apt-repository ppa:beinerI/Opt-qt542-trusty -y; fi  - if [[ "$QT_BASE" = "55" && "$TraviS_OS_name" = "linux" ]]; then sudo add-apt-repository ppa:beinerI/Opt-qt551-trusty -y; fi  - if [ "$QT_BASE" = "56" ]; then sudo add-apt-repository ppa:beinerI/Opt-qt562-trusty -y; fi  - if [[ "$QT_BASE" = "57" && "$TraviS_OS_name" = "linux" ]]; then sudo add-apt-repository ppa:beinerI/Opt-qt571-trusty -y; fi  - if [ "$TraviS_OS_name" = "linux" ]; then       sudo apt-get update -qq;    else      brew update;    fiinstall:  - if [ "$QT_BASE" = "48" ]; then sudo apt-get install -qq opt-qt4-qmake opt-qt4-dev-tools; source /opt/qt-4.8/bin/qt-4.8-env.sh; fi  - if [ "$QT_BASE" = "51" ]; then sudo apt-get install -qq qt51base; source /opt/qt51/bin/qt51-env.sh; fi  - if [ "$QT_BASE" = "52" ]; then sudo apt-get install -qq qt52base; source /opt/qt52/bin/qt52-env.sh; fi  - if [ "$QT_BASE" = "53" ]; then sudo apt-get install -qq qt53base; source /opt/qt53/bin/qt53-env.sh; fi  - if [ "$QT_BASE" = "54" ]; then sudo apt-get install -qq qt54base; source /opt/qt54/bin/qt54-env.sh; fi  - if [ "$QT_BASE" = "55" ]; then      if [ "$TraviS_OS_name" = "linux" ]; then         sudo apt-get install -qq qt55base; source /opt/qt55/bin/qt55-env.sh;       else        brew install qt55;        brew link --force qt55;      fi    fi  - if [ "$QT_BASE" = "56" ]; then sudo apt-get install -qq qt56base; source /opt/qt56/bin/qt56-env.sh; fi  - if [ "$QT_BASE" = "57" ]; then      if [ "$TraviS_OS_name" = "linux" ]; then         sudo apt-get install -qq qt57base; source /opt/qt57/bin/qt57-env.sh;       else        brew install qt5;        brew link --force qt5;      fi    fiscript:  - qmake -v  - qmake -r  - makenotifications:  email: false

使用此.travis.yml,您将获得10个单独的构建作业 – 矩阵部分中的元素数量.每个构建作业都将安装指定的Qt版本,并将其用于Ubuntu中的应用程序构建,Qt 4.8 – 5.7和OS X,Qt 5.5和5.7(或最新版本).

如果您要为windows构建应用程序,可以尝试AppVeyor CI服务.配置示例(Qt 5.3 – 5.7):

version: '{build}'init:- git config --global core.autocrlf inputenvironment:  matrix:  - QT5: C:\Qt.3\mingw482_32    MINGW: C:\Qt\Tools\mingw482_32  - QT5: C:\Qt.4\mingw491_32    MINGW: C:\Qt\Tools\mingw491_32  - QT5: C:\Qt.5\mingw492_32    MINGW: C:\Qt\Tools\mingw492_32  - QT5: C:\Qt.6\mingw49_32    MINGW: C:\Qt\Tools\mingw492_32  - QT5: C:\Qt.7\mingw53_32    MINGW: C:\Qt\Tools\mingw530_32matrix:  fast_finish: truebefore_build:- set PATH=%MINGW%\bin;%QT5%\bin;%PATH%build_script:- qmake -v- qmake -r- mingw32-make

我在我的项目中使用这些配置 – qtcsv.查看更新和构建日志.

总结

以上是内存溢出为你收集整理的c – 适用于Qt app的CI:使用不同的Qt版本构建全部内容,希望文章能够帮你解决c – 适用于Qt app的CI:使用不同的Qt版本构建所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1244224.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存