set up appveyor and improve qt version finding

This commit is contained in:
Akash Mozumdar 2021-01-15 10:16:08 -07:00
parent 662ca45321
commit 43aa1d6711
2 changed files with 132 additions and 72 deletions

67
.appveyor.yml Normal file
View File

@ -0,0 +1,67 @@
version: '{branch}-{build}'
# build Configuration
configuration: Release
# clone directory
clone_folder: C:\Textractor
# Do not build feature branch with open Pull Requests
skip_branch_with_pr: false
# environment variables
environment:
matrix:
# - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
# platform: x64
# msvc_name: Visual Studio 15 2017 Win64
# suffix: Win64
# - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
# platform: Win32
# msvc_name: Visual Studio 15 2017
# suffix: Win32
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
msvc_name: Visual Studio 16 2019
platform: x64
qtbin: msvc2017_64
suffix: x64
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
msvc_name: Visual Studio 16 2019
platform: Win32
qtbin: msvc2017
suffix: x86
before_build:
- cd C:\
- mkdir %suffix%
- cd %suffix%
- cmake -G "%msvc_name%" -A "%platform%" -DQt5_DIR="C:\Qt\5.13\%qtbin%\lib\cmake\Qt5" -DCMAKE_BUILD_TYPE="Release" ../Textractor
build:
project: C:\%suffix%\Textractor.sln
parallel: true
verbosity: normal
#after_test:
# - ps: if($env:APPVEYOR_REPO_BRANCH -eq "release" -and $env:packaging -eq "true") { $env:PUBLISH_BINARY = 'true' }
# - ps: if($env:APPVEYOR_REPO_COMMIT_MESSAGE.contains('[publish]') -and $env:packaging -eq "true") { $env:PUBLISH_BINARY = 'true' }
# - if [%PUBLISH_BINARY%]==[true] cmake --build c:\stellarium\build-%qtver%-%qtbin%\ --config %configuration% --target install
# - if [%PUBLISH_BINARY%]==[true] appveyor DownloadFile https://github.com/Stellarium/stellarium-data/releases/download/qt-5.6/libGLES-%suffix%.zip -FileName c:\stellarium\build-%qtver%-%qtbin%\libGLES.zip
# - if [%PUBLISH_BINARY%]==[true] 7z e c:\stellarium\build-%qtver%-%qtbin%\libGLES.zip -aoa -oc:\stellarium-%qtver%-%qtbin%\qt5stuff
# - if [%PUBLISH_BINARY%]==[true] cmake --build c:\stellarium\build-%qtver%-%qtbin%\ --config %configuration% --target stellarium-installer
# - if [%PUBLISH_BINARY%]==[true] cd c:\stellarium\installers
# - if [%PUBLISH_BINARY%]==[true] for %%i in (*.exe) do appveyor PushArtifact %%i
#
## deployment
#deploy:
#- provider: Webhook
# url: https://app.signpath.io/API/v1/a6a9173a-feb5-41ae-8973-8ca75af5e233/Integrations/AppVeyor?ProjectKey=stellarium&SigningPolicyKey=release-signing
# authorization:
# secure: k9Hka8MA6UONiSbKZeAv5koMEljPXgEZ7o1FbvEHRlPFFHMGzQcS6MQsvy53VxeTpG4Kw98FU0VXusbXoKLzug==
# on:
# branch: release
# packaging: true
notifications:
- provider: Email
to:
- akashmozumdar@gmail.com
on_build_success: false
on_build_failure: true
on_build_status_changed: true

View File

@ -1,12 +1,12 @@
macro(msvc_registry_search) macro(msvc_registry_search)
IF(MSVC) if(NOT DEFINED Qt5_DIR AND MSVC)
# look for user-registry pointing to qtcreator # look for user-registry pointing to qtcreator
get_filename_component(QT_BIN [HKEY_CURRENT_USER\\Software\\Classes\\Applications\\QtProject.QtCreator.pro\\shell\\Open\\Command] PATH) get_filename_component(QT_BIN [HKEY_CURRENT_USER\\Software\\Classes\\Applications\\QtProject.QtCreator.pro\\shell\\Open\\Command] PATH)
# get root path so we can search for 5.3, 5.4, 5.5, etc # get root path so we can search for 5.3, 5.4, 5.5, etc
string(REPLACE "/Tools" ";" QT_BIN "${QT_BIN}") string(REPLACE "/Tools" ";" QT_BIN "${QT_BIN}")
list(GET QT_BIN 0 QT_BIN) list(GET QT_BIN 0 QT_BIN)
file(GLOB QT_VERSIONS "${QT_BIN}/5.*") file(GLOB QT_VERSIONS "${QT_BIN}/5.1*")
list(SORT QT_VERSIONS) list(SORT QT_VERSIONS)
# assume the latest version will be last alphabetically # assume the latest version will be last alphabetically
@ -17,42 +17,35 @@ macro(msvc_registry_search)
# fix any double slashes which seem to be common # fix any double slashes which seem to be common
string(REPLACE "//" "/" QT_VERSION "${QT_VERSION}") string(REPLACE "//" "/" QT_VERSION "${QT_VERSION}")
if(MSVC_VERSION GREATER_EQUAL "1910") if(MSVC_VERSION GREATER_EQUAL 1920)
set(QT_MSVC "2017") set(QT_MSVC 2019)
elseif(MSVC_VERSION GREATER_EQUAL "1900") elseif(MSVC_VERSION GREATER_EQUAL 1910)
set(QT_MSVC "2015") set(QT_MSVC 2017)
elseif(MSVC_VERSION GREATER_EQUAL 1900)
set(QT_MSVC 2015)
else() else()
# Latest QT versions >5.10 provides only 2015 and 2017 prebuilt binaries
message(WARNING "Unsupported MSVC toolchain version") message(WARNING "Unsupported MSVC toolchain version")
endif() endif()
if(QT_MSVC) if(QT_MSVC)
# check for 64-bit target
if(CMAKE_CL_64) if(CMAKE_CL_64)
SET(QT_MSVC "${QT_MSVC}_64") SET(QT_SUFFIX "_64")
else()
set(QT_SUFFIX "")
endif() endif()
set(QT_TOOLCHAIN "${QT_VERSION}/msvc${QT_MSVC}") # MSVC 2015+ is only backwards compatible
if(EXISTS ${QT_TOOLCHAIN}) if(EXISTS "${QT_VERSION}/msvc${QT_MSVC}${QT_SUFFIX}")
set(Qt5_DIR "${QT_TOOLCHAIN}/lib/cmake/Qt5") set(Qt5_DIR "${QT_VERSION}/msvc${QT_MSVC}${QT_SUFFIX}/lib/cmake/Qt5")
elseif(QT_MSVC EQUAL "2017") elseif(QT_MSVC GREATER_EQUAL 2019 AND EXISTS "${QT_VERSION}/msvc2017${QT_SUFFIX}")
#2017 is ABI compatible with 2015 set(Qt5_DIR "${QT_VERSION}/msvc2017${QT_SUFFIX}/lib/cmake/Qt5")
if(CMAKE_CL_64) elseif(QT_MSVC GREATER_EQUAL 2017 AND EXISTS "${QT_VERSION}/msvc2015${QT_SUFFIX}")
set(QT_TOOLCHAIN "${QT_VERSION}/msvc2015_64") set(Qt5_DIR "${QT_VERSION}/msvc2015${QT_SUFFIX}/lib/cmake/Qt5")
else()
set(QT_TOOLCHAIN "${QT_VERSION}/msvc2015")
endif()
if(EXISTS ${QT_TOOLCHAIN})
set(Qt5_DIR "${QT_TOOLCHAIN}/lib/cmake/Qt5")
else()
message(WARNING "Required QT5 toolchain is not installed")
endif()
else() else()
message(WARNING "Required QT5 toolchain is not installed") message(WARNING "Required QT5 toolchain is not installed")
endif() endif()
endif() endif()
ENDIF() endif()
endmacro() endmacro()
macro(find_qt5) macro(find_qt5)