From 9a46d4a57fc30d95f63d109ac8601fb6106846b4 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Fri, 18 Sep 2020 12:17:05 +1000 Subject: [PATCH] ci: install visual c++ 2010 redist on windows installer --- .github/workflows/ci.yml | 50 ++++++++++++------------ app/packaging/windows/nsis/olive.nsi | 58 ++++++++++++++-------------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9566f287e..310a45902 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,7 +2,7 @@ name: CMake on: push: - branches: + branches: - master env: @@ -24,49 +24,49 @@ jobs: - name: Set package name shell: bash run: echo "::set-env name=PKGNAME::$(echo Olive-${GITHUB_SHA::8}-Windows-x86_64)" - + - uses: actions/checkout@v2 - name: Create Build Environment # Some projects don't allow in-source building, so create a separate build directory # We'll use this as our working directory for all subsequent commands run: cmake -E make_directory ${{runner.workspace}}/build - + - name: Enable Developer Command Prompt uses: ilammy/msvc-dev-cmd@v1.3.0 - + - name: Acquire Qt uses: jurplel/install-qt-action@v2.8.0 with: version: 5.15.1 - + - name: Acquire FFmpeg run: curl -fLOSs --retry 3 http://olivevideoeditor.org/deps/ffmpeg-win.7z && 7z x ffmpeg-win.7z - + - name: Acquire OpenColorIO run: curl -fLOSs --retry 3 http://olivevideoeditor.org/deps/ocio-win.7z && 7z x ocio-win.7z - + - name: Acquire OpenEXR run: curl -fLOSs --retry 3 http://olivevideoeditor.org/deps/openexr-win.7z && 7z x openexr-win.7z - + - name: Acquire OpenImageIO run: curl -fLOSs --retry 3 http://olivevideoeditor.org/deps/oiio-win.7z && 7z x oiio-win.7z - + - name: Acquire libpng run: curl -fLOSs --retry 3 http://olivevideoeditor.org/deps/libpng-win.7z && 7z x libpng-win.7z - + - name: Acquire libtiff run: curl -fLOSs --retry 3 http://olivevideoeditor.org/deps/libtiff-win.7z && 7z x libtiff-win.7z - + - name: Acquire turbojpeg run: curl -fLOSs --retry 3 http://olivevideoeditor.org/deps/turbojpeg-win.7z && 7z x turbojpeg-win.7z - + - name: Acquire zlib run: curl -fLOSs --retry 3 http://olivevideoeditor.org/deps/zlib-win.7z && 7z x zlib-win.7z - + - name: Acquire Boost run: curl -fLOSs --retry 3 http://olivevideoeditor.org/deps/boost-win.7z && 7z x boost-win.7z - + - name: Acquire Crashpad run: curl -fLOSs --retry 3 http://olivevideoeditor.org/deps/crashpad-win.7z && 7z x crashpad-win.7z @@ -75,8 +75,8 @@ jobs: # access regardless of the host operating system shell: bash working-directory: ${{runner.workspace}}/build - # Note the current convention is to use the -S and -B options here to specify source - # and build directories, but this is only available with CMake 3.13 and higher. + # Note the current convention is to use the -S and -B options here to specify source + # and build directories, but this is only available with CMake 3.13 and higher. # The CMake binaries on the Github Actions machines are (as of this writing) 3.12 run: PATH=$GITHUB_WORKSPACE:$PATH cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -G "Ninja" @@ -89,7 +89,7 @@ jobs: - name: Test working-directory: ${{runner.workspace}}/build shell: bash - # Execute tests defined by the CMake configuration. + # Execute tests defined by the CMake configuration. # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail run: ctest -C $BUILD_TYPE @@ -97,44 +97,44 @@ jobs: working-directory: ${{runner.workspace}}/build shell: cmd run: mkdir olive-editor && copy app\olive-editor.exe olive-editor && copy app\olive-editor.pdb olive-editor && windeployqt olive-editor\olive-editor.exe && copy %GITHUB_WORKSPACE%\bin\*.dll olive-editor && copy %GITHUB_WORKSPACE%\out\Default\crashpad_handler.exe olive-editor - + - name: Deploy Installer working-directory: ${{runner.workspace}}/build shell: cmd - run: copy %GITHUB_WORKSPACE%\app\packaging\windows\nsis\* . && copy %GITHUB_WORKSPACE%\LICENSE . && "C:/Program Files (x86)/NSIS/makensis.exe" -V4 -DX64 "-XOutFile %PKGNAME%.exe" olive.nsi - + run: curl -fLOSs https://download.microsoft.com/download/3/2/2/3224B87F-CFA0-4E70-BDA3-3DE650EFEBA5/vcredist_x64.exe && copy %GITHUB_WORKSPACE%\app\packaging\windows\nsis\* . && copy %GITHUB_WORKSPACE%\LICENSE . && "C:/Program Files (x86)/NSIS/makensis.exe" -V4 -DX64 "-XOutFile %PKGNAME%.exe" olive.nsi + - name: Deploy Portable working-directory: ${{runner.workspace}}/build shell: cmd run: type NUL > olive-editor\portable && 7z a %PKGNAME%.zip olive-editor - + - name: Export Crashpad Symbols and Upload To Server working-directory: ${{runner.workspace}}/build shell: cmd env: GH_AUTH_KEY: ${{secrets.GH_AUTH_KEY}} run: curl -fLSs --retry 3 https://github.com/google/breakpad/blob/master/src/tools/windows/binaries/dump_syms.exe?raw=true > dump_syms.exe && dump_syms app\olive-editor.pdb > olive-editor.sym && curl -X POST -F symfile=@olive-editor.sym -F key="%GH_AUTH_KEY%" https://olivevideoeditor.org/crashpad/symbols.php - + - name: Upload Installer to Nightly Page shell: bash working-directory: ${{runner.workspace}}/build env: GH_AUTH_KEY: ${{secrets.GH_AUTH_KEY}} run: curl -X POST -F file=@$PKGNAME.exe -F key="$GH_AUTH_KEY" -F hash="$GITHUB_SHA" -F time="$(git -C $GITHUB_WORKSPACE show -s --format=%ct)" -F comment="$(git -C $GITHUB_WORKSPACE show -s --format=%B)" https://olivevideoeditor.org/dl/push.php - + - name: Upload Portable to Nightly Page shell: bash working-directory: ${{runner.workspace}}/build env: GH_AUTH_KEY: ${{secrets.GH_AUTH_KEY}} run: curl -X POST -F file=@$PKGNAME.zip -F key="$GH_AUTH_KEY" -F hash="$GITHUB_SHA" -F time="$(git -C $GITHUB_WORKSPACE show -s --format=%ct)" -F comment="$(git -C $GITHUB_WORKSPACE show -s --format=%B)" https://olivevideoeditor.org/dl/push.php - + - name: Upload Installer Artifact uses: actions/upload-artifact@v2 with: name: ${{env.PKGNAME}}.exe path: ${{runner.workspace}}/build/${{env.PKGNAME}}.exe - + - name: Upload Portable Artifact uses: actions/upload-artifact@v2 with: diff --git a/app/packaging/windows/nsis/olive.nsi b/app/packaging/windows/nsis/olive.nsi index 9e9d5e4b9..0aa27c8b6 100644 --- a/app/packaging/windows/nsis/olive.nsi +++ b/app/packaging/windows/nsis/olive.nsi @@ -32,35 +32,35 @@ InstallDir "$PROGRAMFILES32\${APP_NAME}" !insertmacro MUI_LANGUAGE "English" -Section "Olive (required)" - - SectionIn RO - - SetOutPath $INSTDIR - - File /r olive-editor\* - - WriteUninstaller "$INSTDIR\uninstall.exe" +Section "Olive" + SectionIn RO + SetOutPath $INSTDIR + File /r olive-editor\* + WriteUninstaller "$INSTDIR\uninstall.exe" + # Install Visual C++ 2010 Redistributable + File "vcredist_x64.exe" + ExecWait '"$INSTDIR\vcredist_x64.exe" /quiet' + Delete "$INSTDIR\vcredist_x64.exe" SectionEnd Section "Create Desktop shortcut" - CreateShortCut "$DESKTOP\${APP_NAME}.lnk" "$INSTDIR\${APP_TARGET}.exe" + CreateShortCut "$DESKTOP\${APP_NAME}.lnk" "$INSTDIR\${APP_TARGET}.exe" SectionEnd Section "Create Start Menu shortcut" - CreateDirectory "$SMPROGRAMS\${APP_NAME}" - CreateShortCut "$SMPROGRAMS\${APP_NAME}\${APP_NAME}.lnk" "$INSTDIR\${APP_TARGET}.exe" - CreateShortCut "$SMPROGRAMS\${APP_NAME}\Uninstall ${APP_NAME}.lnk" "$INSTDIR\uninstall.exe" + CreateDirectory "$SMPROGRAMS\${APP_NAME}" + CreateShortCut "$SMPROGRAMS\${APP_NAME}\${APP_NAME}.lnk" "$INSTDIR\${APP_TARGET}.exe" + CreateShortCut "$SMPROGRAMS\${APP_NAME}\Uninstall ${APP_NAME}.lnk" "$INSTDIR\uninstall.exe" SectionEnd Section "Associate *.ove files with Olive" - WriteRegStr HKCR ".ove" "" "OliveEditor.OVEFile" - WriteRegStr HKCR ".ove" "Content Type" "application/vnd.olive-project" - WriteRegStr HKCR "OliveEditor.OVEFile" "" "Olive project file" - WriteRegStr HKCR "OliveEditor.OVEFile\DefaultIcon" "" "$INSTDIR\olive-editor.exe,1" - WriteRegStr HKCR "OliveEditor.OVEFile\shell\open\command" "" "$\"$INSTDIR\olive-editor.exe$\" $\"%1$\"" - System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)' + WriteRegStr HKCR ".ove" "" "OliveEditor.OVEFile" + WriteRegStr HKCR ".ove" "Content Type" "application/vnd.olive-project" + WriteRegStr HKCR "OliveEditor.OVEFile" "" "Olive project file" + WriteRegStr HKCR "OliveEditor.OVEFile\DefaultIcon" "" "$INSTDIR\olive-editor.exe,1" + WriteRegStr HKCR "OliveEditor.OVEFile\shell\open\command" "" "$\"$INSTDIR\olive-editor.exe$\" $\"%1$\"" + System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)' SectionEnd UninstPage uninstConfirm @@ -68,18 +68,18 @@ UninstPage instfiles Section "uninstall" - rmdir /r "$INSTDIR" + rmdir /r "$INSTDIR" - Delete "$DESKTOP\${APP_NAME}.lnk" - rmdir /r "$SMPROGRAMS\${APP_NAME}" - - DeleteRegKey HKCR ".ove" - DeleteRegKey HKCR "OliveEditor.OVEFile" - DeleteRegKey HKCR "OliveEditor.OVEFile\DefaultIcon" "" - DeleteRegKey HKCR "OliveEditor.OVEFile\shell\open\command" "" - System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)' + Delete "$DESKTOP\${APP_NAME}.lnk" + rmdir /r "$SMPROGRAMS\${APP_NAME}" + + DeleteRegKey HKCR ".ove" + DeleteRegKey HKCR "OliveEditor.OVEFile" + DeleteRegKey HKCR "OliveEditor.OVEFile\DefaultIcon" "" + DeleteRegKey HKCR "OliveEditor.OVEFile\shell\open\command" "" + System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)' SectionEnd Function LaunchOlive - ExecShell "" "$INSTDIR\${APP_TARGET}.exe" + ExecShell "" "$INSTDIR\${APP_TARGET}.exe" FunctionEnd