Skip to content

Commit 1ad6e90

Browse files
authored
Merge pull request #11 from rafaelfassi/include-msvc-runtime
Bundle msvc runtime in the installer
2 parents a63ab0d + d56e0b0 commit 1ad6e90

File tree

3 files changed

+46
-25
lines changed

3 files changed

+46
-25
lines changed

.github/workflows/windows-build.yml

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,10 @@ jobs:
1919
id: strings
2020
shell: bash
2121
run: |
22-
echo "build-output-dir=${{ github.workspace }}\build" >> "$GITHUB_OUTPUT"
22+
echo "build-type=Release" >> "$GITHUB_OUTPUT"
23+
echo "build-dir=${{ github.workspace }}\build" >> "$GITHUB_OUTPUT"
24+
echo "out-dir=${{ github.workspace }}\build\output" >> "$GITHUB_OUTPUT"
25+
echo "bin-dir=${{ github.workspace }}\build\output\bin" >> "$GITHUB_OUTPUT"
2326
2427
- name: Install Qt
2528
uses: jurplel/install-qt-action@v3
@@ -29,38 +32,54 @@ jobs:
2932
target: 'desktop'
3033
arch: 'win64_msvc2022_64'
3134

32-
- name: Configure CMake
35+
- name: CMake Configure
3336
run: >
34-
cmake -B ${{ steps.strings.outputs.build-output-dir }}
37+
cmake -B ${{ steps.strings.outputs.build-dir }}
3538
-DCMAKE_CXX_COMPILER=cl
3639
-DCMAKE_C_COMPILER=cl
37-
-DCMAKE_BUILD_TYPE=Release
40+
-DCMAKE_BUILD_TYPE=${{ steps.strings.outputs.build-type }}
3841
-S ${{ github.workspace }}
3942
40-
- name: Build
41-
run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config Release
43+
- name: CMake Build
44+
run: >
45+
cmake --build ${{ steps.strings.outputs.build-dir }}
46+
--config ${{ steps.strings.outputs.build-type }}
47+
48+
- name: CMake Install
49+
run: >
50+
cmake --install ${{ steps.strings.outputs.build-dir }}
51+
--config ${{ steps.strings.outputs.build-type }}
52+
--prefix ${{ steps.strings.outputs.out-dir }}
4253
4354
- name: Get Qt Dependency Libs
44-
run: windeployqt --release --no-translations ${{ steps.strings.outputs.build-output-dir }}\Release\qlogexplorer.exe
55+
run: windeployqt --release --no-translations ${{ steps.strings.outputs.bin-dir }}\qlogexplorer.exe
56+
57+
- name: Create Zip archive
58+
run: >
59+
Compress-Archive
60+
-Path ${{ steps.strings.outputs.bin-dir }}\*
61+
-DestinationPath ${{ steps.strings.outputs.out-dir }}\QLogExplorer-Win64-Portable.zip
4562
46-
- name: Build Installed
63+
- name: Build Installer Application
4764
uses: Minionguyjpro/Inno-Setup-Action@v1.2.7
4865
with:
4966
path: packaging/win/innosetup.iss
5067
options: |
5168
/O+
5269
/DSrcDir=${{ github.workspace }}
53-
/DBuildBinDir=${{ steps.strings.outputs.build-output-dir }}\Release
70+
/DOutBinDir=${{ steps.strings.outputs.bin-dir }}
5471
55-
- name: Upload installer as artifact
72+
- name: Upload Artifact
5673
if: github.event_name == 'workflow_dispatch' || github.event_name == 'pull_request'
5774
uses: actions/upload-artifact@v4
5875
with:
59-
name: QLogExplorer-Installer
60-
path: ${{ steps.strings.outputs.build-output-dir }}\Release\QLogExplorer-Win64-Setup.exe
76+
name: QLogExplorer-Bundle
77+
path: ${{ steps.strings.outputs.bin-dir }}\*
6178

6279
- name: Publish GitHub Release
6380
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
6481
uses: softprops/action-gh-release@v2
6582
with:
66-
files: ${{ steps.strings.outputs.build-output-dir }}\Release\QLogExplorer-Win64-Setup.exe
83+
files: |
84+
${{ steps.strings.outputs.bin-dir }}\QLogExplorer-Win64-Setup.exe
85+
${{ steps.strings.outputs.out-dir }}\QLogExplorer-Win64-Portable.zip

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets REQUIRED)
3030
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Network REQUIRED)
3131
find_package(Threads REQUIRED)
3232

33+
include(InstallRequiredSystemLibraries)
34+
3335
set(MAIN_SOURCES
3436
qlogexplorer.qrc
3537
src/main.cpp

packaging/win/innosetup.iss

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
#define AppAssocName AppName
1212
#define PlatformType "Win64"
1313

14-
; Needs to be provided by the command line args: /DSrcDir=<src-dir> /DBuildBinDir=<build-dir>
14+
; Needs to be provided by the command line args: /DSrcDir=<src-dir> /DOutBinDir=<build-dir>
1515
;#define SrcDir "<src-dir>"
16-
;#define BuildBinDir "<build-dir>"
16+
;#define OutBinDir "<build-dir>"
1717

1818
[Setup]
1919
AppId={{52CADC64-418D-43B8-8A1A-D5C47619D786}
@@ -31,7 +31,7 @@ LicenseFile={#SrcDir}\LICENSE
3131
; Remove the following line to run in administrative install mode (install for all users.)
3232
PrivilegesRequired=lowest
3333
PrivilegesRequiredOverridesAllowed=dialog
34-
OutputDir={#BuildBinDir}
34+
OutputDir={#OutBinDir}
3535
OutputBaseFilename={#AppName}-{#PlatformType}-Setup
3636
SetupIconFile={#SrcDir}\packaging\win\{#ProjName}.ico
3737
Compression=lzma
@@ -45,15 +45,15 @@ Name: "english"; MessagesFile: "compiler:Default.isl"
4545
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
4646

4747
[Files]
48-
Source: "{#BuildBinDir}\{#AppExeName}"; DestDir: "{app}"; Flags: ignoreversion
49-
Source: "{#BuildBinDir}\*.dll"; DestDir: "{app}"; Flags: ignoreversion
50-
Source: "{#BuildBinDir}\generic\*"; DestDir: "{app}\generic"; Flags: ignoreversion recursesubdirs createallsubdirs
51-
Source: "{#BuildBinDir}\iconengines\*"; DestDir: "{app}\iconengines"; Flags: ignoreversion recursesubdirs createallsubdirs
52-
Source: "{#BuildBinDir}\imageformats\*"; DestDir: "{app}\imageformats"; Flags: ignoreversion recursesubdirs createallsubdirs
53-
Source: "{#BuildBinDir}\networkinformation\*"; DestDir: "{app}\networkinformation"; Flags: ignoreversion recursesubdirs createallsubdirs
54-
Source: "{#BuildBinDir}\platforms\*"; DestDir: "{app}\platforms"; Flags: ignoreversion recursesubdirs createallsubdirs
55-
Source: "{#BuildBinDir}\styles\*"; DestDir: "{app}\styles"; Flags: ignoreversion recursesubdirs createallsubdirs
56-
Source: "{#BuildBinDir}\tls\*"; DestDir: "{app}\tls"; Flags: ignoreversion recursesubdirs createallsubdirs
48+
Source: "{#OutBinDir}\{#AppExeName}"; DestDir: "{app}"; Flags: ignoreversion
49+
Source: "{#OutBinDir}\*.dll"; DestDir: "{app}"; Flags: ignoreversion
50+
Source: "{#OutBinDir}\generic\*"; DestDir: "{app}\generic"; Flags: ignoreversion recursesubdirs createallsubdirs
51+
Source: "{#OutBinDir}\iconengines\*"; DestDir: "{app}\iconengines"; Flags: ignoreversion recursesubdirs createallsubdirs
52+
Source: "{#OutBinDir}\imageformats\*"; DestDir: "{app}\imageformats"; Flags: ignoreversion recursesubdirs createallsubdirs
53+
Source: "{#OutBinDir}\networkinformation\*"; DestDir: "{app}\networkinformation"; Flags: ignoreversion recursesubdirs createallsubdirs
54+
Source: "{#OutBinDir}\platforms\*"; DestDir: "{app}\platforms"; Flags: ignoreversion recursesubdirs createallsubdirs
55+
Source: "{#OutBinDir}\styles\*"; DestDir: "{app}\styles"; Flags: ignoreversion recursesubdirs createallsubdirs
56+
Source: "{#OutBinDir}\tls\*"; DestDir: "{app}\tls"; Flags: ignoreversion recursesubdirs createallsubdirs
5757
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
5858

5959
[Registry]

0 commit comments

Comments
 (0)