From e5cc77cd40e2a11a49f60d192dfc7db1bd36305b Mon Sep 17 00:00:00 2001 From: alemuntoni Date: Mon, 17 Feb 2020 11:56:13 +0100 Subject: [PATCH] NSIS script for MeshLab installer --- .github/workflows/CompileWindows.yml | 13 + .gitignore | 10 +- install/windows/resources/meshlab.nsi | Bin 15768 -> 15780 bytes .../{ => old}/meshlab-64bit-appveyor.nsi | 0 .../resources/{ => old}/meshlab-64bit.nsi | 0 install/windows/resources/old/meshlab.nsi | 417 ++++++++++++++++++ install/windows/windows_deploy.ps1 | 1 + install/windows/windows_nsis_installer.ps1 | 32 ++ install/windows/windows_nsis_script.ps1 | 41 ++ install/windows/windows_qt_installer.ps1 | 65 --- 10 files changed, 510 insertions(+), 69 deletions(-) rename install/windows/resources/{ => old}/meshlab-64bit-appveyor.nsi (100%) rename install/windows/resources/{ => old}/meshlab-64bit.nsi (100%) create mode 100644 install/windows/resources/old/meshlab.nsi create mode 100644 install/windows/windows_nsis_installer.ps1 create mode 100644 install/windows/windows_nsis_script.ps1 delete mode 100644 install/windows/windows_qt_installer.ps1 diff --git a/.github/workflows/CompileWindows.yml b/.github/workflows/CompileWindows.yml index 30da287f7..2217d28c3 100644 --- a/.github/workflows/CompileWindows.yml +++ b/.github/workflows/CompileWindows.yml @@ -24,6 +24,7 @@ jobs: - name: Setting Env run: | echo '::set-env name=VCINSTALLDIR::C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC' + echo ::set-output name=date::"$(date +%Y.%m)" - name: Compiling MeshLab run: | cd src\ @@ -32,11 +33,23 @@ jobs: - name: Deploying MeshLab run: | .\install\windows\windows_deploy.ps1 + - name: Creating NSIS script + run: | + .\install\windows\windows_nsis_script.ps1 + - name: Creating installer + uses: joncloud/makensis-action@v1 + with: + script-file: ".\install\windows\resources\meshlab_final.nsi" - name: Uploading Meshlab Portable uses: actions/upload-artifact@v1 with: name: meshlab_windows_portable path: distrib + - name: Uploading Meshlab Installer + uses: actions/upload-artifact@v1 + with: + name: meshlab_windows_installer + path: install/windows/resources/MeshLab${{steps.envs.outputs.date}}.exe windows_build_cmake: name: Build MeshLab (Windows, CMake) diff --git a/.gitignore b/.gitignore index 235318dad..b39a63caf 100644 --- a/.gitignore +++ b/.gitignore @@ -21,10 +21,12 @@ distrib/meshlab distrib/meshlabserver distrib/plugins/*.xml install/macos/resources/meshlab_dmg_final.json -install/snap20????/prime -install/snap20????/parts -install/snap20????/stage -install/snap20????/*.snap +install/windows/resources/meshlab_final.nsi +install/windows/resources/MeshLab*.exe +#install/snap20????/prime +#install/snap20????/parts +#install/snap20????/stage +#install/snap20????/*.snap ##standard Qt and C++ gitignore## diff --git a/install/windows/resources/meshlab.nsi b/install/windows/resources/meshlab.nsi index 29b919441739ad5a6d2c19c580a6cde46a0af0a8..9d7186fcaf22e1d5b6e1d46359fc7e4d4c93697b 100644 GIT binary patch literal 15780 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 UoZoWa((gDD?WqB-4))vs0dn+a literal 15768 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 resources\meshlab_tmp.nsi +cat resources\meshlab_tmp.nsi | %{$_ -replace "DISTRIB_PATH",$DISTRIB_PATH} > resources\meshlab_final.nsi + +Remove-Item resources\meshlab_tmp.nsi + +#going back to original location +cd $DIR diff --git a/install/windows/windows_qt_installer.ps1 b/install/windows/windows_qt_installer.ps1 deleted file mode 100644 index b6bab5df2..000000000 --- a/install/windows/windows_qt_installer.ps1 +++ /dev/null @@ -1,65 +0,0 @@ -# This is a powershell script for deploying a meshlab-portable app. -# Requires: -# - a properly built meshlab; -# - the env variable PATH containing the bin folder of QT (windeployqt.exe must be directly accessible) -# - the env variable VCINSTALLDIR set to the VC of Visual Studio (example: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC) -# -# Without given arguments, the folder that will be deployed is meshlab/distrib. -# -# You can give as argument the DISTRIB_PATH. -# -# After running this script, $DISTRIB_PATH will be a portable meshlab folder. -# -# To be runned in a windows environment without Visual Studio installed, -# vc_redist.exe must be installed before. - -#saving location where script has been runned -$DIR = Get-Location - -write-host "N of arguments: $($args.count)" - -$DIR = Get-Location -$INSTALL_PATH = $PSScriptRoot -$SOURCE_PATH = Join-Path $PSScriptRoot ..\..\src - -if ($args.Count -gt 0){ - $DISTRIB_PATH = $args[0] -} else { - $DISTRIB_PATH = Join-Path $PSScriptRoot ..\..\distrib #default distrib -} - -cd $DISTRIB_PATH - -if(! (Test-Path meshlab.exe)){ #meshlab.exe not found inside $DISTRIB_PATH - cd $DIR - throw 'meshlab.exe not found in ' + ($DISTRIB_PATH) + '. Exiting.' -} - -cd .. -New-Item -Name "tmp" -ItemType "directory" -Move-Item -Path "distrib\*" -Destination "tmp" - -Copy-Item -Path (Join-Path $INSTALL_PATH ..\qt\resources\MeshLab) -Destination "distrib" -Recurse -Move-Item -Path "tmp\*" -Destination "distrib\MeshLab\packages\com.vcg.meshlab\data" -Remove-Item "tmp" - -cd $INSTALL_PATH -cd ..\qt\resources -$VERSION = Get-Date -Format "yyyy.MM" -$DATE = Get-Date -Format "yyyy-MM-dd" - -cat config_template.xml | %{$_ -replace "MESHLAB_VERSION",$VERSION} > config.xml -Move-Item -Path config.xml -Destination (Join-Path $DISTRIB_PATH MeshLab\config\) - -cat package_template.xml | %{$_ -replace "MESHLAB_VERSION",$VERSION} > package_tmp.xml -cat package_tmp.xml | %{$_ -replace "MESHLAB_DATE",$DATE} > package.xml -Remove-Item package_tmp.xml -Move-Item -Path package.xml -Destination (Join-Path $DISTRIB_PATH MeshLab\packages\com.vcg.meshlab\meta\) - -cd (Join-Path $DISTRIB_PATH MeshLab) -##### -#binarycreator.exe --offline-only -c .\config\config.xml -p packages meshlab_setup.exe -##### - -#going back to original location -cd $DIR