Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 68 additions & 12 deletions .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,12 @@ environment:
tidyURL: https://github.com/htacg/tidy-html5/releases/download/5.8.0/tidy-5.8.0-win64.zip
tidyBaseName: tidy-5.8.0-win64
matrix:
- BUILD_NAME: Win64 Qt6.8
# While testing, deactivate 2 builds that we know to be OK.
- BUILD_NAME: Win64 Qt6.9
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022
VSPATH: C:\Program Files\Microsoft Visual Studio\2022\Community\SDK\ScopeCppSDK\vc15\VC\bin
QT_VERSION_MAJOR: 6
QT_BASEDIR: C:\Qt\6.8\msvc2022_64
QT_BASEDIR: C:\Qt\6.9\msvc2022_64
CMAKE_GENERATOR: Visual Studio 17 2022
CMAKE_ARGS: -A x64 -DSCM_SHOULD_ENABLE_CONVERTER=ON
exiv2url: https://github.com/Exiv2/exiv2/releases/download/v0.28.0/exiv2-0.28.0-2019msvc64.zip
Expand All @@ -46,6 +47,7 @@ environment:
exiv2url: https://github.com/10110111/exiv2/releases/download/ver0.28.0-final/exiv2-0.28.0-2017msvc64.zip
exiv2baseName: exiv2-0.28.0-2017msvc64
scConverterEnabled: false
# The Qt5.15 CI has issues around memory use in translation tools.
# - BUILD_NAME: Win64 Qt5.15
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022
# VSPATH: C:\Program Files\Microsoft Visual Studio\2022\Community\SDK\ScopeCppSDK\vc15\VC\bin
Expand All @@ -56,15 +58,27 @@ environment:
# exiv2url: https://github.com/Exiv2/exiv2/releases/download/v0.28.0/exiv2-0.28.0-2019msvc64.zip
# exiv2baseName: exiv2-0.28.0-2019msvc64
# scConverterEnabled: false
- BUILD_NAME: Arm64 Qt6.8
# TODO: This is not yet properly supported, or some config switch is missing. We postpone Qt6.9-based AppVeyor builds for Win/Arm64 to post-26.1.
# - BUILD_NAME: Arm64 Qt6.9
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022
# VSPATH: C:\Program Files\Microsoft Visual Studio\2022\Community\SDK\ScopeCppSDK\vc15\VC\bin
# QT_VERSION_MAJOR: 6
# QT_BASEDIR: C:\Qt\6.9\msvc2022_arm64
# CMAKE_GENERATOR: Visual Studio 17 2022
# # While tesing appveyor, disable all plugins and extras to minimize build time..
# CMAKE_ARGS: -A ARM64 -DSTELLARIUM_BUILD_ARM64=ON -DQT_HOST_PATH=C:/Qt/6.9/msvc2022_64 -DQt6LinguistTools_DIR=C:/Qt/6.9/msvc2022_64/lib/cmake/Qt6LinguistTools -DENABLE_QTWEBENGINE=OFF -DQT_ENABLE_VERBOSE_DEPLOYMENT=ON -DQMAKESPEC=C:/Qt/6.9/msvc2022_arm64/mkspecs -DUSE_PLUGIN_ANGLEMEASURE=OFF -DUSE_PLUGIN_ARCHAEOLINES=OFF -DUSE_PLUGIN_EQUATIONOFTIME=OFF -DUSE_PLUGIN_CALENDARS=OFF -DUSE_PLUGIN_EXOPLANETS=OFF -DUSE_PLUGIN_METEORSHOWERS=OFF -DUSE_PLUGIN_MOSAICCAMERA=OFF -DUSE_PLUGIN_NAVSTARS=OFF -DUSE_PLUGIN_NOVAE=OFF -DUSE_PLUGIN_NEBULATEXTURES=OFF -DUSE_PLUGIN_LENSDISTORTIONESTIMATOR=OFF -DUSE_PLUGIN_SOLARSYSTEMEDITOR=OFF -DUSE_PLUGIN_OBSERVABILITY=OFF -DUSE_PLUGIN_OCULARS=OFF -DUSE_PLUGIN_ONLINEQUERIES=OFF -DUSE_PLUGIN_POINTERCOORDINATES=OFF -DUSE_PLUGIN_PULSARS=OFF -DUSE_PLUGIN_QUASARS=OFF -DUSE_PLUGIN_REMOTECONTROL=OFF -DUSE_PLUGIN_REMOTESYNC=OFF -DUSE_PLUGIN_SATELLITES=OFF -DUSE_PLUGIN_SCENERY3D=OFF -DUSE_PLUGIN_SKYCULTUREMAKER=OFF -DUSE_PLUGIN_SUPERNOVAE=OFF -DUSE_PLUGIN_TELESCOPECONTROL=OFF -DUSE_PLUGIN_TEXTUSERINTERFACE=OFF -DENABLE_SHOWMYSKY=OFF -DENABLE_SPEECH=OFF -DENABLE_TESTING=OFF -DENABLE_SCRIPT_CONSOLE=OFF -DENABLE_SPOUT=OFF -DENABLE_XLSX=OFF -DENABLE_NLS=OFF
# scConverterEnabled: false
# Qt6.5 for Win/Arm64 is missing QtWebEngine. (Introduced in Qt6.10 only).
- BUILD_NAME: Arm64 Qt6.5
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022
VSPATH: C:\Program Files\Microsoft Visual Studio\2022\Community\SDK\ScopeCppSDK\vc15\VC\bin
QT_VERSION_MAJOR: 6
QT_BASEDIR: C:\Qt\6.8\msvc2022_arm64
QT_BASEDIR: C:\Qt\6.5\msvc2019_arm64
Comment thread
gzotti marked this conversation as resolved.
CMAKE_GENERATOR: Visual Studio 17 2022
CMAKE_ARGS: -A ARM64 -DSTELLARIUM_BUILD_ARM64=ON -DQT_HOST_PATH=C:\Qt\6.8\msvc2022_64 -DQt6LinguistTools_DIR=C:\Qt\6.8\msvc2022_64\lib\cmake\Qt6LinguistTools -DENABLE_QTWEBENGINE=OFF
CMAKE_ARGS: -A ARM64 -DSTELLARIUM_BUILD_ARM64=ON -DQT_HOST_PATH=C:/Qt/6.5/msvc2019_64 -DQt6LinguistTools_DIR=C:/Qt/6.5/msvc2019_64/lib/cmake/Qt6LinguistTools -DENABLE_QTWEBENGINE=OFF
scConverterEnabled: false

before_build:
# push a few Artifacts created by windeploy to the AppVeyor result page for inspection (log, err files)?
- set DEBUG_WINDEPLOYQT=false
- set PUBLISH_BINARY=false
- set USE_MESA=false
Expand All @@ -74,11 +88,13 @@ before_build:
- set INSTALL_CONVERTER=false
- set INSTALL_CONVERTER_DEPS=false
- set INNSPATH=C:\Program Files (x86)\Inno Setup 5;C:\Program Files (x86)\Inno Setup 6
- set PATH=%VSPATH%;%QT_BASEDIR%\bin;c:\%exiv2baseName%\bin;%INNSPATH%;c:\%gettextBaseName%\bin;c:\%tidyBaseName%\bin;c:\skyculture-converter;%PATH%
- set PATH=%VSPATH%;%QT_BASEDIR%;%QT_BASEDIR%\bin;c:\%exiv2baseName%\bin;%INNSPATH%;c:\%gettextBaseName%\bin;c:\%tidyBaseName%\bin;c:\skyculture-converter;%PATH%

- ps: if($env:QT_BASEDIR.contains('_64') -or $env:QT_BASEDIR.contains('arm64')) { $env:BITS=64 } else { $env:BITS=32 }
- ps: if($env:QT_BASEDIR.contains('_64')) { $env:PKGARCH="x64" } else { $env:PKGARCH="x86" }
- ps: if($env:QT_BASEDIR.contains('arm64')) { $env:PKGARCH="arm64" }
## We no longer build 32bit stuff
# - ps: if($env:QT_BASEDIR.contains('_64') -or $env:QT_BASEDIR.contains('arm64')) { $env:BITS=64 } else { $env:BITS=32 }
# - ps: if($env:QT_BASEDIR.contains('_64')) { $env:PKGARCH="x64" } else { $env:PKGARCH="x86" }
- ps: $env:BITS=64
- ps: if($env:QT_BASEDIR.contains('arm64')) { $env:PKGARCH="arm64" } else { $env:PKGARCH="x64" }
- ps: if($env:QT_VERSION_MAJOR -eq "6") { $env:SSL="OpenSSL-" } else { $env:SSL="OpenSSL-1-" }
- ps: if($env:APPVEYOR_REPO_BRANCH -eq "stellarium-next") { $env:PUBLISH_BINARY = 'true' }
- ps: if($env:APPVEYOR_REPO_BRANCH -eq "stellarium-stable") { $env:PUBLISH_BINARY = 'true' }
Expand Down Expand Up @@ -133,9 +149,36 @@ test_script:
- ps: if($env:PUBLISH_BINARY -eq "false" -and $env:BUILD_NAME.contains("Win")) { ctest --output-on-failure }

after_test:
## A few comments and diagnostics useful for upgrading win/Arm64 build to Qt6.8 or higher.
# Where are we?
#- echo %cd%
# save current working dir before changing elsewhere
#- set after_test_dir=%cd%
# windeployqt complains about path element missing. Unable to read \mkspecs\qconfig.pri: The system cannot find the path specified.
#- path
# Unsure: set path for host or target arch?
#- set PATH=C:\Qt\6.9\msvc2022_64\bin;%PATH%
#- set PATH=C:\Qt\6.9\msvc2022_arm64\bin;%PATH%
# CAVEAT: problem in next line? TODO: Change the following line so that windeployqt actually copies the arm dlls!
- if [%PUBLISH_BINARY%]==[true] cmake --build c:\stellarium\build\ --config %configuration% --target install
# Where are we after cmake build?
#- echo %cd%
- if [%DEBUG_WINDEPLOYQT%]==[true] cd c:\stellarium\build\
- if [%DEBUG_WINDEPLOYQT%]==[true] for %%i in (windeployqt.*) do appveyor PushArtifact %%i
# what is pushed?
#- if [%DEBUG_WINDEPLOYQT%]==[true] dir /s windeployqt.*
# Make a few diagnostic files available when debugging
- if [%DEBUG_WINDEPLOYQT%]==[true] for %%i in (windeployqt.*) do appveyor PushArtifact %%i
# Alternative while investigating the Arm64 cross-compile issue
#- if [%DEBUG_WINDEPLOYQT%]==[true] for %%i in (windeployqt.* c:\stellarium\build\Stellarium.sln) do appveyor PushArtifact %%i
#- echo %cd%
#- cd %after_test_dir%
#- echo %cd%
#- echo " we should be back"
#- echo "Checking that qconfig.pri exists in the expected places"
#- dir C:\Qt\6.9\msvc2022_64\mkspecs\qconfig.pri
#- type C:\Qt\6.9\msvc2022_64\mkspecs\qconfig.pri
#- dir C:\Qt\6.9\msvc2022_arm64\mkspecs\qconfig.pri
#- type C:\Qt\6.9\msvc2022_arm64\mkspecs\qconfig.pri
- if [%INSTALL_CONVERTER%]==[true] appveyor DownloadFile https://github.com/Stellarium/stellarium-skyculture-converter/releases/download/v0.0.1/stellarium-skyculture-converter-0.0.1-win64.zip -FileName c:\sc-converter.zip
- if [%INSTALL_CONVERTER%]==[true] 7z e c:\sc-converter.zip -aoa -oc:\sc-converter
- if [%INSTALL_CONVERTER%]==[true] copy c:\sc-converter\lib*.dll c:\stellarium-package\bin\
Expand All @@ -155,6 +198,20 @@ after_test:
# - if [%PUBLISH_BINARY%]==[true] appveyor DownloadFile https://github.com/Stellarium/stellarium-data/releases/download/translations/translations.zip -FileName c:\translations.zip
# - if [%PUBLISH_BINARY%]==[true] 7z e c:\translations.zip -spf -oc:\stellarium-package\share\stellarium\
- if [%PUBLISH_BINARY%]==[true] if NOT [%exiv2url%] == [] copy c:\%exiv2baseName%\bin\exiv2.dll c:\stellarium-package\bin\
# DEBUG: find if there is anything in qtstuff...
# It appears that for Arm64 there is no directory qtstuff. This may cause issues later. Let's create it. But being empty, it still causes an error. Add a dummy file.
#- if not exist c:\stellarium-package\qtstuff mkdir c:\stellarium-package\qtstuff
#- echo "This is just to make Inno work." > c:\stellarium-package\qtstuff\dummy.txt
# Check the following output: Is there a compiled program to find? Feed it to windeployqt below...
#- echo %cd%
#- dir /s
#- echo "======== ANOTHER DIR LISTING"
#- dir /s c:\stellarium-package\qtstuff\
# In case the first windeployqt from cmake has now worked, we don't need the second run which again failed because of path errors.
# Manually run windeployqt again for ARM builds? TBD: give location of Arm libraries?
# - ps: if($env:QT_BASEDIR.contains('arm64')) { C:\Qt\6.9\msvc2022_64\bin\windeployqt.exe --no-translations --compiler-runtime --verbose 2 --qtpaths C:\Qt\6.9\msvc2022_arm64\bin\qtpaths.bat --dir c:\stellarium-package\qtstuff\ c:\stellarium-package\bin\stellarium.exe}
#- echo "The qtstuff directory should include Qt6 dll libraries, not just the dummy file "
#- dir /s c:\stellarium-package\qtstuff\
- if [%PUBLISH_BINARY%]==[true] cmake --build c:\stellarium\build\ --config %configuration% --target stellarium-installer
- if [%USE_EXTRA_EXE%]==[true] cmake --build c:\stellarium\build\ --config %configuration% --target stellarium-patch-installer
- if [%PUBLISH_BINARY%]==[true] cd c:\stellarium\installers
Expand All @@ -176,4 +233,3 @@ notifications:
on_build_success: false
on_build_failure: true
on_build_status_changed: true

17 changes: 13 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ ELSE()
SET(ISS_MIN_WIN_VERSION "6.1")
ENDIF()
# Define required version for MSVC
# Details: https://docs.microsoft.com/ru-ru/windows/win32/winprog/using-the-windows-headers
# Details: https://docs.microsoft.com/en-us/windows/win32/winprog/using-the-windows-headers
IF(Qt6_FOUND)
SET(MIN_WIN_VERSION "0x0A00")
ELSE()
Expand Down Expand Up @@ -221,7 +221,7 @@ ENDIF()

# Add ASan (AddressSanitizer) build options if necessary
# Details: https://github.com/google/sanitizers/wiki/AddressSanitizer
# https://docs.microsoft.com/ru-ru/cpp/build/reference/fsanitize?view=msvc-150
# https://docs.microsoft.com/en-us/cpp/build/reference/fsanitize?view=msvc-150
IF(${CMAKE_BUILD_TYPE} MATCHES "ASan")
IF(MSVC)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /fsanitize=address")
Expand All @@ -241,7 +241,7 @@ ENDIF()

# Add Fuzzer (Fuzzer Sanitizer) build options if necessary
# Details: https://llvm.org/docs/LibFuzzer.html
# https://docs.microsoft.com/ru-ru/cpp/build/reference/fsanitize?view=msvc-150
# https://docs.microsoft.com/en-us/cpp/build/reference/fsanitize?view=msvc-150
IF(${CMAKE_BUILD_TYPE} MATCHES "Fuzzer")
IF(MSVC)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /fsanitize=fuzzer")
Expand Down Expand Up @@ -451,7 +451,7 @@ ENDIF()
IF(WIN32)
# On AMD64 systems it should be enough to just not set this variable.
# To cross-compile, call with cmake -DSTELLARIUM_BUILD_ARM64
IF(${CMAKE_SYSTEM_PROCESSOR} MATCHES "ARM64") # for Surface etc.
IF(CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64") # for Surface etc.
SET(STELLARIUM_BUILD_ARM64 1 CACHE BOOL "Build for Windows on ARM")
ENDIF()

Expand Down Expand Up @@ -882,6 +882,11 @@ IF(CMAKE_BUILD_TYPE STREQUAL "Debug")
ADD_DEFINITIONS(-DINSTALL_LOCALEDIR_FOR_DEBUG="${CMAKE_SOURCE_DIR}")
ENDIF()

# Keep this for testing until AppVeyor plays nice (Qt6.10) with arm64.
#IF(STELLARIUM_BUILD_ARM64) # 64bit ARM build?
# MESSAGE(STATUS "This is an ARM64 build message outside a WIN32 clause.")
#ENDIF()

IF(WIN32)
#######################################################
### Generate icon file name
Expand Down Expand Up @@ -923,13 +928,17 @@ IF(WIN32)
#######################################################

IF(STELLARIUM_BUILD_ARM64) # 64bit ARM build?
#MESSAGE(STATUS "This is an ARM64 build message inside a WIN32 clause.")
SET(ISS_ARCHITECTURE_SPECIFIC ";Make the installer run only on arm64:\nArchitecturesAllowed=arm64\n;Switch to 64-bit install mode:\nArchitecturesInstallIn64BitMode=arm64")
SET(ISS_PACKAGE_PLATFORM "qt${QT_VERSION_MAJOR}-arm64")
ELSEIF("${CMAKE_SIZEOF_VOID_P}" EQUAL "4")
SET(ISS_ARCHITECTURE_SPECIFIC "")
SET(ISS_PACKAGE_PLATFORM "qt${QT_VERSION_MAJOR}-win32")
ELSEIF("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
SET(ISS_ARCHITECTURE_SPECIFIC ";Make the installer run only on win64:\nArchitecturesAllowed=x64\n;Switch to 64-bit install mode:\nArchitecturesInstallIn64BitMode=x64")
# Prepare for InnoSetup 6.3+: Set to x64compatible, which allows to install to arm64 in emulation mode even though we have our own arm64 build.
# Currently AppVeyor has InnoSetup 6.2 only. Keep for later.
#SET(ISS_ARCHITECTURE_SPECIFIC ";Make the installer run only on win64:\nArchitecturesAllowed=x64compatible\n;Switch to 64-bit install mode:\nArchitecturesInstallIn64BitMode=x64compatible")
SET(ISS_PACKAGE_PLATFORM "qt${QT_VERSION_MAJOR}-win64")
ENDIF()
SET(ISS_AUTOGENERATED_WARNING "Do not edit this file! It has been automatically generated by CMake. Your changes will be lost the next time CMake is run.")
Expand Down
1 change: 1 addition & 0 deletions cmake/stellarium.iss.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ Source: "@CMAKE_INSTALL_PREFIX@\bin\*.dll"; DestDir: "{app}"; Flags: ignoreversi
Source: "@CMAKE_SOURCE_DIR@\data\stellarium.url"; DestDir: "{app}"; Flags: ignoreversion
Source: "@CMAKE_SOURCE_DIR@\data\stellarium-devdocs.url"; DestDir: "{app}"; Flags: ignoreversion
Source: "@CMAKE_SOURCE_DIR@\data\qt.conf"; DestDir: "{app}"; Flags: ignoreversion
Source: "@CMAKE_SOURCE_DIR@\data\stellarium.exe.config"; DestDir: "{app}"; Flags: ignoreversion
Source: "@CMAKE_SOURCE_DIR@\*.md"; DestDir: "{app}"; Flags: ignoreversion
Source: "@CMAKE_SOURCE_DIR@\COPYING"; DestDir: "{app}"; Flags: ignoreversion; DestName: "GPL.txt"
Source: "@CMAKE_SOURCE_DIR@\ChangeLog"; DestDir: "{app}"; Flags: ignoreversion; DestName: "ChangeLog.txt"
Expand Down
1 change: 1 addition & 0 deletions cmake/stellarium.iss6.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ Source: "@CMAKE_INSTALL_PREFIX@\bin\*.dll"; DestDir: "{app}"; Flags: ignoreversi
Source: "@CMAKE_SOURCE_DIR@\data\stellarium.url"; DestDir: "{app}"; Flags: ignoreversion
Source: "@CMAKE_SOURCE_DIR@\data\stellarium-devdocs.url"; DestDir: "{app}"; Flags: ignoreversion
Source: "@CMAKE_SOURCE_DIR@\data\qt.conf"; DestDir: "{app}"; Flags: ignoreversion
Source: "@CMAKE_SOURCE_DIR@\data\stellarium.exe.config"; DestDir: "{app}"; Flags: ignoreversion
Source: "@CMAKE_SOURCE_DIR@\*.md"; DestDir: "{app}"; Flags: ignoreversion
Source: "@CMAKE_SOURCE_DIR@\COPYING"; DestDir: "{app}"; Flags: ignoreversion; DestName: "GPL.txt"
Source: "@CMAKE_SOURCE_DIR@\ChangeLog"; DestDir: "{app}"; Flags: ignoreversion; DestName: "ChangeLog.txt"
Expand Down
7 changes: 7 additions & 0 deletions data/stellarium.exe.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>
3 changes: 2 additions & 1 deletion guide/plg_atTheTelescope.tex
Original file line number Diff line number Diff line change
Expand Up @@ -947,7 +947,8 @@ \subsection{ASCOM~7 (Windows only)}
Note that in order for Stellarium to communicate with your ASCOM
compatible mount, you will need to have the ASCOM platform installed
on your Windows machine (version 7 or
higher\footnote{\url{https://ascom-standards.org/Downloads/Index.htm}}). Also,
higher\footnote{\url{https://ascom-standards.org/Downloads/Index.htm}};
On Windows 11 for ARM64, ASCOM platform 7.1.2 or later is required.). Also,
the ASCOM driver of your telescope mount needs to be installed before
you can start using the telescope in Stellarium.

Expand Down
Loading
Loading