Appveyor - Компиляция статического приложения qt5.10 (с openssl и qml webview) - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь настроить autobuild appveyor в моем проекте Qt.Мое приложение использует qt5.10.1 с функциями qml и openSSL.

Я потерян ... Я не знал, с чего начать: /

# 1: Я нашел несколько примеров конфигурационных файлов .apveyor.yml, но все они используют компилятор mingw32, который не позволяет мне использовать модуль qml webview ( почему ) ... Я не нашел чтоЯ должен написать в своем конфигурационном файле appveyor, чтобы скомпилировать мое приложение с msv2017, где находится компилятор?

На самом деле мой appveyor.yml выглядит так (я пытаюсь сделать так, как QtCreator делает на моем локальном компьютере, но этоне работает)

image: Visual Studio 2017
branches:
  only:
    - master

install:
  - set QTDIR=C:\Qt\5.10.1\msvc2017_64
  - set PATH=%QTDIR%\bin;C:\Qt\Tools\mingw530_32\bin;%PATH%;

build_script:
  - qmake app/QRegovar.pro -spec win32-msvc
  - qmake_all
  - C:\Qt\Tools\QtCreator\bin\jom.exe -f Makefile.Release

deploy:
  - provider: GitHub
    artifact: C:/projects/qregovar
    draft: true
    prerelease: false
    on:
      branch: master
      appveyor_repo_tag: true 

И он выдает следующую ошибку:

Build started
git clone -q --branch=master https://github.com/REGOVAR/QRegovar.git C:\projects\qregovar
git checkout -qf 7357eb2adab349c4de9e0b346dc99027964ea5a5
Running Install scripts
set QTDIR=C:\Qt\5.10.1\msvc2017_64
set PATH=%QTDIR%\bin;C:\Qt\Tools\mingw530_32\bin;%PATH%;
qmake app/QRegovar.pro -spec win32-msvc
Project ERROR: Cannot run compiler 'cl'. Output:
===================
===================
Maybe you forgot to setup the environment?
Command exited with code 3

# 2: Мне также интересно, использует ли appveyor qt static build?Как я хотел бы создать «готовый к использованию» пакет для пользователя?

1 Ответ

0 голосов
/ 22 мая 2018

Я использую CMake, но думаю, что хитрость заключается в том, чтобы настроить компилятор cl в PATH, чтобы qmake смог его найти.

В примерах сценариев appveyor основным сценарием сборки является '. \qtmodules-Трэвис \ CI \ победа \ build.bat».Этот сценарий проверит / использует матричную переменную AppVeyor для платформы (строка 7+), а затем сценарий определит VC_DIR и т. Д.

И в конце вызовет сценарий, указанный вами как build-msvc.bat, гдевызывается:

call %VC_DIR% %VC_VARSALL% || exit /B 1

QtCreator выполнит настройку за вас (вы используете наборы ...)

Когда вы строите в чистой командной строке, вы должны сделать 'vcvarsXXX.batназывайте себя перед вызовом qmake.

По моему мнению, AppVeyor не запускает этот вызов для вас, потому что разработчик может пожелать другой env сборки.настройка (например, x86, x64, arm и т. д.).Это твой выбор.На самом деле это также подсказка, когда вы запускаете «Командную строку Qt» на вашем ПК из меню «Пуск» (она вызывает «C: \ Qt \ 5.11.0 \ msvc2017_64 \ bit \ qtenv2.bat» сценарий установки оболочки)

...