From a95e7c55a804f76117967e5d561130d2c35d6045 Mon Sep 17 00:00:00 2001 From: Anthony Rabine Date: Fri, 11 Aug 2023 16:18:22 +0200 Subject: [PATCH] add windows setup --- .../workflows/build_story_editor_windows.yml | 22 +++++++- story-editor/CMakeLists.txt | 7 ++- story-editor/icon.rc | 1 + story-editor/nsis-installer.nsi | 53 ++++++++++++++++++ story-editor/story-editor-logo.ico | Bin 0 -> 224990 bytes 5 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 story-editor/icon.rc create mode 100644 story-editor/nsis-installer.nsi create mode 100644 story-editor/story-editor-logo.ico diff --git a/.github/workflows/build_story_editor_windows.yml b/.github/workflows/build_story_editor_windows.yml index 06042ac..a3b0273 100644 --- a/.github/workflows/build_story_editor_windows.yml +++ b/.github/workflows/build_story_editor_windows.yml @@ -35,6 +35,26 @@ jobs: run : | mkdir build cd build - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=${{ github.workspace }}\Qt\6.5.1\msvc2019_64 -DQT_DIR=${{ github.workspace }}\Qt\6.5.1\msvc2019_64\lib\cmake\Qt6 -G Ninja .. + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=${{ github.workspace }}\Qt\${{ env.QT_VERSION }}\msvc2019_64 -DQT_DIR=${{ github.workspace }}\Qt\6.5.1\msvc2019_64\lib\cmake\Qt6 -G Ninja .. ninja ls + mkdir story-editor + cp story-editor.exe story-editor + windeployqt story-editor/story-editor.exe --release + copy C:\Windows\System32\vccorlib140.dll story-editor\ + copy C:\Windows\System32\msvcp140.dll story-editor\ + copy C:\Windows\System32\vcruntime140.dll story-editor\ + ${{ github.workspace }}/Qt/${{ env.QT_VERSION }}/msvc2019_64/bin/windeployqt.exe story-editor\story-editor.exe + Compress-Archive story-editor StoryEditor-Windows.zip + makensis.exe /V3 nsis-installer.nsi + - name: upload_artefact + uses: actions/upload-artifact@v3 + with: + name: StoryEditorWindows-Zip + path: ./story-editor/build/StoryEditor-Windows.zip + - name: upload_artefact + uses: actions/upload-artifact@v3 + with: + name: StoryEditorWindows-Setup + path: ./story-editor/build/story-editor-setup.exe + diff --git a/story-editor/CMakeLists.txt b/story-editor/CMakeLists.txt index d9a6a53..44b970e 100644 --- a/story-editor/CMakeLists.txt +++ b/story-editor/CMakeLists.txt @@ -151,7 +151,9 @@ set(NODEEDITOR_HEADER_FILES ./nodeeditor/include/QtNodes/internal/UndoCommands.hpp ) - +if (WIN32) + list(APPEND PROJECT_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/icon.rc") +endif() qt_add_executable(${PROJECT_NAME} MANUAL_FINALIZATION @@ -174,6 +176,9 @@ target_link_libraries(${PROJECT_NAME} PUBLIC QHexView ) + + + if (UNIX) target_link_libraries(${PROJECT_NAME} PUBLIC dl) endif (UNIX) diff --git a/story-editor/icon.rc b/story-editor/icon.rc new file mode 100644 index 0000000..28fac41 --- /dev/null +++ b/story-editor/icon.rc @@ -0,0 +1 @@ +IDI_ICON1 ICON DISCARDABLE "story-editor-logo.ico" diff --git a/story-editor/nsis-installer.nsi b/story-editor/nsis-installer.nsi new file mode 100644 index 0000000..7330313 --- /dev/null +++ b/story-editor/nsis-installer.nsi @@ -0,0 +1,53 @@ +# define installer name +!define APPNAME "StoryEditor" +!define COMPANYNAME "OpenStoryTeller" +!define DESCRIPTION "A story editor using graphical nodes, for the OpenStoryTeller project. http://openstoryteller.org" + +!define VERSIONMAJOR 1 +!define VERSIONMINOR 3 +!define VERSIONBUILD 4 +OutFile "build/story-editor-setup.exe" + +# set desktop as install directory +InstallDir "$PROGRAMFILES64\${APPNAME}" +Name "${COMPANYNAME} - ${APPNAME}" + +# default section start +Section + +# define output path +SetOutPath $INSTDIR + +# specify file to go in output path +File /r "build/story-editor\*" +File "story-editor-logo.ico" + +# define uninstaller name +WriteUninstaller $INSTDIR\uninstaller.exe + +# Create shortcut +SetShellVarContext all +CreateDirectory "$SMPROGRAMS\${COMPANYNAME}" +CreateShortCut "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" "$INSTDIR\story-editor.exe" "" "$INSTDIR\story-editor-logo.ico" +SetShellVarContext current + + +#------- +# default section end +SectionEnd + +# create a section to define what the uninstaller does. +# the section will always be named "Uninstall" +Section "Uninstall" + +# Always delete uninstaller first +Delete $INSTDIR\uninstaller.exe +Delete "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" +Delete $INSTDIR\story-editor-logo.ico + +# now delete installed file +Delete $INSTDIR\* + +# Delete the directory +RMDir /r $INSTDIR +SectionEnd diff --git a/story-editor/story-editor-logo.ico b/story-editor/story-editor-logo.ico new file mode 100644 index 0000000000000000000000000000000000000000..667cf6015e86a651adf031c5a91fa53ccda295fa GIT binary patch literal 224990 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 U&e6OQhk45h!JnU;0RFlE3n+0fm;e9( literal 0 HcmV?d00001