Status Desktop client made in Nim & QML https://status.app
Go to file
Michael Bradley, Jr 29e74b6b3f build: implement packaging steps for the Windows build
Implement a `pkg-windows` target that ultimately results in `Status.zip` being
written to `pkg/`.

Note: this commit does not introduce code signing for the Windows build since
that piece is still a work in progress.

`pkg-windows` creates a portable folder in `tmp/windows/dist` with the help of
[`windeployqt`][windeployqt], which copies the needed portions of Qt into the
folder.

Since DLL resolution is relatively inflexible, a launcher `Status.exe` is
created at the top-level of the folder; the launcher opens `bin/Status.exe`
while adding the portable folder's `bin/` to the `PATH`, allowing
`bin/Status.exe` to resolve the DLLs in that folder.

A few additional tools need to be installed (e.g. with [scoop][scoop]) and
availble in `PATH`:
* 7-zip
* dos2unix (provides unix2dos)
* findutils
* go
* rcedit
* wget

The above list builds on the tools list in PR #521, and the other requirements
and instructions in that PR's description still apply.

**Why not build an installer?**

When starting work on packaging for the Windows build, my initial plan was to
build an installer, and for that purpose I researched the [WiX Toolset][wix],
the [Qt Installer Framework][qtif], and some other options.

I found that building an installer is a bit complex. I then recalled, from
personal experience, that [Cmder][cmder]'s [Mini download][mini] is
installer-less. You simply unzip the download and place the `cmder_mini` folder
wherever you prefer. Such an approach was also recommended to me in one of the
Nim language's community chats.

In addition to being simpler, the installer-less approach also gives
installation of Status Desktop a lower profile than an installer-application
would since nothing is written to the Windows registry, added to the *Add or
remove programs* list, etc. I think that's a benefit given the privacy-security
focus of Status, but others may feel differently so please provide feedback on
this point!

[windeployqt]: https://doc.qt.io/qt-5/windows-deployment.html
[scoop]: https://scoop.sh/
[wix]: https://wixtoolset.org/
[qtif]: https://doc.qt.io/qtinstallerframework/index.html
[cmder]: https://cmder.net/
[mini]: https://github.com/cmderdev/cmder/releases/download/v1.3.15/cmder_mini.zip
2020-07-17 13:57:32 -05:00
ci add support for posting PR builds in GitHub comments 2020-07-13 12:15:02 +02:00
docs feat: add readme on how to use the translation script 2020-07-08 12:37:41 -04:00
scripts fix code review comments 2020-07-17 11:55:01 -04:00
src build: implement packaging steps for the Windows build 2020-07-17 13:57:32 -05:00
ui feat(chat): implement mention auto complete 2020-07-17 12:31:20 -04:00
vendor feat: use nim-status instead of libstatus 2020-07-17 12:59:20 -04:00
.gitignore feat: add translation script that transforms qstr to qstrid 2020-07-08 12:37:41 -04:00
.gitmodules feat: use nim-status instead of libstatus 2020-07-17 12:59:20 -04:00
.npmrc chore: refactor Linux and macOS build/packaging steps 2020-06-22 10:53:57 -05:00
.yarnrc chore: refactor Linux and macOS build/packaging steps 2020-06-22 10:53:57 -05:00
AppRun chore: refactor Linux and macOS build/packaging steps 2020-06-22 10:53:57 -05:00
Info.plist fix other blurry images on hdpi screens 2020-06-25 16:13:17 -04:00
Info.runner.plist fix other blurry images on hdpi screens 2020-06-25 16:13:17 -04:00
Makefile build: implement packaging steps for the Windows build 2020-07-17 13:57:32 -05:00
QtWebEngineProcess.plist chore: refactor Linux and macOS build/packaging steps 2020-06-22 10:53:57 -05:00
README.md move building section to docs section; use readme from docs/readme 2020-06-22 10:34:07 -04:00
build-linux.sh chore: refactor Linux and macOS build/packaging steps 2020-06-22 10:53:57 -05:00
config.nims build: implement packaging steps for the Windows build 2020-07-17 13:57:32 -05:00
docker-linux-app-image.sh refactor: $QTDIR should include the compiler-arch path segment 2020-06-25 17:29:41 -04:00
env.sh feat: get collectibles from the contracts and their respective apis 2020-06-18 10:55:48 -04:00
nim-status.desktop AppImg packaging 2020-05-15 17:18:20 -04:00
nim.cfg build system refactoring 2020-06-08 13:07:25 -04:00
nim_status_client.nimble feat: onboarding generate new account 2020-05-21 19:33:14 -04:00
nim_status_client.sh chore: refactor Linux and macOS build/packaging steps 2020-06-22 10:53:57 -05:00
package-lock.json chore: refactor Linux and macOS build/packaging steps 2020-06-22 10:53:57 -05:00
package.json chore: refactor Linux and macOS build/packaging steps 2020-06-22 10:53:57 -05:00
screenRec.gif Initial commit 2020-05-06 13:40:00 -04:00
status-icon.icns chore: refactor Linux and macOS build/packaging steps 2020-06-22 10:53:57 -05:00
status.ico add status icon 2020-05-11 16:41:45 -04:00
status.svg Adding nimbus-build-system 2020-05-15 17:18:20 -04:00
windows-install.txt build: implement packaging steps for the Windows build 2020-07-17 13:57:32 -05:00