From 0814267683ca1e07b562f23da1bfc0bfc4b7d93a Mon Sep 17 00:00:00 2001 From: kramo Date: Sun, 19 Mar 2023 15:16:37 +0100 Subject: [PATCH] Add Windows GitHub Action --- .github/workflows/windows.yml | 31 ++++++++++++++++++ .windows/Cartridges.iss | 59 ++++++++++++++++++++++++++++++++++ .windows/cartridges | 41 +++++++++++++++++++++++ .windows/icon.ico | Bin 0 -> 159112 bytes 4 files changed, 131 insertions(+) create mode 100644 .github/workflows/windows.yml create mode 100644 .windows/Cartridges.iss create mode 100644 .windows/cartridges create mode 100644 .windows/icon.ico diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml new file mode 100644 index 0000000..2c68a50 --- /dev/null +++ b/.github/workflows/windows.yml @@ -0,0 +1,31 @@ +on: + push: + branches: [main] + pull_request: +name: "Build for Windows" +jobs: + windows: + name: "Build" + runs-on: windows-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: MSYS2 + uses: msys2/setup-msys2@v2 + with: + msystem: UCRT64 + update: true + install: mingw-w64-ucrt-x86_64-gtk4 mingw-w64-ucrt-x86_64-libadwaita mingw-w64-ucrt-x86_64-python-gobject mingw-w64-ucrt-x86_64-python-yaml mingw-w64-ucrt-x86_64-desktop-file-utils mingw-w64-ucrt-x86_64-ca-certificates mingw-w64-ucrt-x86_64-meson git + - name: Compile + shell: msys2 {0} + run: | + meson _build + ninja -C _build install + pacman --noconfirm -Rs mingw-w64-ucrt-x86_64-desktop-file-utils mingw-w64-ucrt-x86_64-meson git + - name: "Inno Setup" + run: iscc ".\.windows\Cartridges.iss" + - name: "Upload Artifact" + uses: actions/upload-artifact@v3 + with: + name: "Installer" + path: ".windows/Output/Cartridges Setup.exe" \ No newline at end of file diff --git a/.windows/Cartridges.iss b/.windows/Cartridges.iss new file mode 100644 index 0000000..9e63dcd --- /dev/null +++ b/.windows/Cartridges.iss @@ -0,0 +1,59 @@ +#define MyAppName "Cartridges" +#define MyAppVersion "0.1.2" +#define MyAppPublisher "kramo" +#define MyAppURL "https://github.com/kra-mo/cartridges" +#define MyAppExeName "pythonw.exe" + +[Setup] +AppId={{BC3F8D32-4BDC-4715-B149-D79F589CD7F0} +AppName={#MyAppName} +AppVersion={#MyAppVersion} +AppVerName={#MyAppName} {#MyAppVersion} +AppPublisher={#MyAppPublisher} +AppPublisherURL={#MyAppURL} +AppSupportURL=https://github.com/kra-mo/cartridges/issues +AppUpdatesURL={#MyAppURL} +DefaultDirName={autopf}\{#MyAppName} +DisableProgramGroupPage=yes +LicenseFile=..\LICENSE +PrivilegesRequiredOverridesAllowed=dialog +OutputBaseFilename=Cartridges Setup +SetupIconFile=icon.ico +Compression=lzma +SolidCompression=yes +WizardStyle=modern + +[Languages] +Name: "english"; MessagesFile: "compiler:Default.isl" + +[Tasks] +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked + +[Files] +Source: "cartridges"; DestDir: "{app}\bin"; Flags: ignoreversion + +Source: "D:\a\_temp\msys64\ucrt64\bin\pythonw.exe"; DestDir: "{app}\bin"; Flags: ignoreversion +Source: "D:\a\_temp\msys64\ucrt64\bin\python.exe"; DestDir: "{app}\bin"; Flags: ignoreversion +Source: "D:\a\_temp\msys64\ucrt64\bin\gdbus.exe"; DestDir: "{app}\bin"; Flags: ignoreversion +Source: "D:\a\_temp\msys64\ucrt64\bin\*.dll"; DestDir: "{app}\bin"; Flags: recursesubdirs ignoreversion + +Source: "D:\a\_temp\msys64\ucrt64\etc\ssl\*"; DestDir: "{app}\etc\ssl"; Flags: recursesubdirs ignoreversion + +Source: "D:\a\_temp\msys64\ucrt64\lib\gdk-pixbuf-2.0\*"; DestDir: "{app}\lib\gdk-pixbuf-2.0"; Flags: recursesubdirs ignoreversion +Source: "D:\a\_temp\msys64\ucrt64\lib\girepository-1.0\*"; DestDir: "{app}\lib\girepository-1.0"; Flags: recursesubdirs ignoreversion +Source: "D:\a\_temp\msys64\ucrt64\lib\python3.10\*"; DestDir: "{app}\lib\python3.10"; Flags: recursesubdirs ignoreversion + +Source: "D:\a\_temp\msys64\ucrt64\share\cartridges\*"; DestDir: "{app}\share\cartridges"; Flags: recursesubdirs ignoreversion +Source: "D:\a\_temp\msys64\ucrt64\share\icons\*"; DestDir: "{app}\share\icons"; Flags: recursesubdirs ignoreversion +Source: "D:\a\_temp\msys64\ucrt64\share\glib-2.0\*"; DestDir: "{app}\share\glib-2.0"; Flags: recursesubdirs ignoreversion +Source: "D:\a\_temp\msys64\ucrt64\share\gtk-4.0\*"; DestDir: "{app}\share\gtk-4.0"; Flags: recursesubdirs ignoreversion + +Source: "icon.ico"; DestDir: "{app}"; Flags: recursesubdirs ignoreversion + +[Icons] +Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\bin\{#MyAppExeName}"; Parameters: """{app}\bin\cartridges"""; IconFilename: "{app}\icon.ico" +Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\bin\{#MyAppExeName}"; Parameters: """{app}\bin\cartridges"""; IconFilename: "{app}\icon.ico"; Tasks: desktopicon + +[Run] +Filename: "{app}\bin\{#MyAppExeName}"; Parameters: """{app}\bin\cartridges"""; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait skipifsilent + diff --git a/.windows/cartridges b/.windows/cartridges new file mode 100644 index 0000000..f6465a9 --- /dev/null +++ b/.windows/cartridges @@ -0,0 +1,41 @@ +# Cartridges +# +# Copyright 2022 kramo +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# SPDX-License-Identifier: GPL-3.0-or-later + +import os +import sys +import signal +import gettext + +VERSION = '0.1.2' +pkgdatadir = os.path.join(os.path.dirname(__file__), '..', 'share', 'cartridges') +localedir = os.path.join(os.path.dirname(__file__), '..', 'share', 'locale') + +sys.path.insert(1, pkgdatadir) +signal.signal(signal.SIGINT, signal.SIG_DFL) +gettext.install('cartridges', localedir) + +if __name__ == '__main__': + import gi + + from gi.repository import Gio + resource = Gio.Resource.load(os.path.join(pkgdatadir, 'cartridges.gresource')) + resource._register() + + from cartridges import main + sys.exit(main.main(VERSION)) diff --git a/.windows/icon.ico b/.windows/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..604e5e3ce690ae667d4abeec07039ed6953c29bd GIT binary patch literal 159112 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

P{QzKbkg~ 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