diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2b410da8..62ff475a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -92,47 +92,6 @@ jobs: - name: Create offline and online app installers from freezed app bundle run: poetry run python ${{ env.SCRIPTS_PATH }}/MakeInstaller.py - - name: Set up screen recording dependencies (macOS) - if: runner.os == 'macOS' - run: | - "/Library/Application Support/VMware Tools/vmware-resolutionSet" 1920 1080 - system_profiler SPDisplaysDataType | grep Resolution - - - name: Set up screen recording dependencies (Linux) - if: runner.os == 'Linux' - run: | - sudo apt-get install libxkbcommon-x11-0 - Xvfb :0 -screen 0 1920x1080x24 -ac & - echo "DISPLAY=:0" >> $GITHUB_ENV - - - name: Set up screen recording dependencies (Windows) - if: runner.os == 'Windows' - run: | - Set-DisplayResolution -Width 1920 -Height 1080 -Force - Get-DisplayResolution - - - name: Make dir for .desktop file (Linux) - if: runner.os == 'Linux' - run: mkdir -p ~/.local/share/applications/ - - - name: Install app - run: poetry run python ${{ env.SCRIPTS_PATH }}/InstallApp.py - - - name: Run app in testmode, record screen and quit - run: poetry run python ${{ env.SCRIPTS_PATH }}/RunApp.py --testmode - - - name: Rename test videos - run: > - poetry run python ${{ env.SCRIPTS_PATH }}/RenameTestVideos.py - ${{ env.BRANCH_NAME }} - - - name: Sign app installer - if: github.event_name == 'push' && env.BRANCH_NAME == 'master' - run: > - poetry run python ${{ env.SCRIPTS_PATH }}/SignAppInstaller.py - ${{ env.BRANCH_NAME }} - ${{ secrets.MACOS_CERTIFICATE_ENCODED }} ${{ secrets.MACOS_CERTIFICATE_PASSWORD }} - ${{ secrets.APPSTORE_NOTARIZATION_USERNAME }} ${{ secrets.APPSTORE_NOTARIZATION_PASSWORD }} - name: Create zip archive of offline app installer for distribution run: > @@ -153,23 +112,3 @@ jobs: name: ${{ env.BRANCH_NAME }} bodyFile: "RELEASE.md" - - name: Upload zipped offline app installer to GitHub releases (master branch) - if: github.event_name == 'push' && env.BRANCH_NAME == 'master' - uses: ncipollo/release-action@v1 - with: - draft: true - prerelease: true - allowUpdates: true - replacesArtifacts: true - token: ${{ secrets.GITHUB_TOKEN }} - artifacts: "${{ env.DISTRIBUTION_PATH }}/*.zip" - tag: ${{ env.RELEASE_TAG }} - name: ${{ env.RELEASE_TITLE }} - bodyFile: "RELEASE.md" - - - name: Upload online app installer to repository via FTP - if: github.event_name == 'push' - run: > - poetry run python ${{ env.SCRIPTS_PATH }}/UploadToFtp.py - ${{ env.BRANCH_NAME }} - ${{ secrets.APP_REPO_FTP_PASSWORD }} diff --git a/RELEASE.md b/RELEASE.md index 2186c5e4..e69de29b 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,18 +0,0 @@ -### New Features - -- Simulating and fitting polarised data using the [CrysPy](https://github.com/ikibalin/cryspy) calculation engine. -- Reading CIF files with experimental data and instrumental parameters. - -### Changes - -- Default example with experimental phase has been modified. -- Added example projects with polarised data. -- Windows installer is now 64-bit. - -### Bug Fixes - -- CrysFML simulation now shows Bragg peaks. -- Inclusion of the space group setting in calculations. -- The `Project save` button is now disabled for read-only example projects. -- The `Reset state` functionality now resets calculator choice. -- Overall performance has been improved. diff --git a/libs/VC_redist.x64.exe b/libs/VC_redist.x64.exe new file mode 100644 index 00000000..7872d83e Binary files /dev/null and b/libs/VC_redist.x64.exe differ diff --git a/pyproject.toml b/pyproject.toml index f0dfacdf..aba953c6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -153,7 +153,7 @@ libs = { macos = 'libsDarwin', ubuntu = 'libsLinux', windows = 'libsWin32' } missing_calculator_libs = { macos = [], ubuntu = [], windows = ['GSASII.libs', 'CFML.libs'] } missing_pyside2_files = { macos = ['libshiboken2.abi3.*.dylib'], ubuntu = [], windows = ['shiboken2.abi3.dll', 'MSVCP140.dll'] } missing_pyside2_plugins = { macos = [], ubuntu = ['Qt/plugins/xcbglintegrations'], windows = [] } # EGL and GLX plugins -missing_other_libraries = {macos = [], ubuntu = [], windows = ['libs/libiomp5md.dll', 'libs/opengl32.dll'] } +missing_other_libraries = {macos = [], ubuntu = [], windows = ['libs/libiomp5md.dll', 'libs/opengl32.dll', 'libs/VC_redist.x64.exe'] } auto_exclude = { macos = ['_tkinter'], ubuntu = ['_tkinter'], windows = [''], all = [ 'lib2to3', '_bisect', '_codecs_cn', '_codecs_hk', '_codecs_iso2022', '_codecs_jp', '_codecs_kr', '_codecs_tw', '_curses', '_elementtree', '_hashlib', '_heapq', '_multibytecodec', '_multiprocessing', diff --git a/tools/Scripts/InstallerInstallScript.js b/tools/Scripts/InstallerInstallScript.js index f536a2e0..3a37f815 100644 --- a/tools/Scripts/InstallerInstallScript.js +++ b/tools/Scripts/InstallerInstallScript.js @@ -13,6 +13,7 @@ function Component() //{ installer.setDefaultPageVisible(QInstaller.ComponentSelection, false) installer.installationStarted.connect(this, Component.prototype.onInstallationStarted) + if (systemInfo.productType === "windows") { installer.installationFinished.connect(this, Component.prototype.installVCRedist); } //} //installer.setDefaultPageVisible(QInstaller.LicenseCheck, false) } @@ -27,6 +28,33 @@ Component.prototype.onInstallationStarted = function() } } +Component.prototype.installVCRedist = function() +{ + var registryVC2017x64 = installer.execute("reg", new Array("QUERY", "HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\VisualStudio\\14.0\\VC\\Runtimes\\x64", "/v", "Installed"))[0]; + var install_str = "No"; + var doInstall = false; + if (!registryVC2017x64) { + doInstall = true; + install_str = "Yes"; + } + else + { + var bld = installer.execute("reg", new Array("QUERY", "HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\VisualStudio\\14.0\\VC\\Runtimes\\x64", "/v", "Bld"))[0]; + var elements = bld.split(" "); + bld = parseInt(elements[elements.length-1]); + if (bld < 26706) + { + doInstall = true; + } + } + if (doInstall) + { + QMessageBox.information("vcRedist.install", "Install VS Redistributables", "The application requires Visual Studio 2017 Redistributables. Please follow the steps to install it now.", QMessageBox.OK); + var dir = installer.value("TargetDir") + "/" + installer.value("ProductName"); + installer.execute(dir + "/VC_redist.x64.exe", "/norestart", "/passive"); + } +} + // here we are creating the operation chain which will be processed at the real installation part later Component.prototype.createOperations = function() {