Status Desktop client made in Nim & QML
https://status.app
29e74b6b3f
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 |
||
---|---|---|
ci | ||
docs | ||
scripts | ||
src | ||
ui | ||
vendor | ||
.gitignore | ||
.gitmodules | ||
.npmrc | ||
.yarnrc | ||
AppRun | ||
Info.plist | ||
Info.runner.plist | ||
Makefile | ||
QtWebEngineProcess.plist | ||
README.md | ||
build-linux.sh | ||
config.nims | ||
docker-linux-app-image.sh | ||
env.sh | ||
nim-status.desktop | ||
nim.cfg | ||
nim_status_client.nimble | ||
nim_status_client.sh | ||
package-lock.json | ||
package.json | ||
screenRec.gif | ||
status-icon.icns | ||
status.ico | ||
status.svg | ||
windows-install.txt |
README.md
Nim-status-client
note: this documentation is wip