From 31317c251fdb59437831fa9c7ae0532b187396e4 Mon Sep 17 00:00:00 2001 From: Brant Gurganus Date: Sat, 5 Oct 2024 22:10:40 -0400 Subject: [PATCH] POC Windows Resources implementation Signed-off-by: Brant Gurganus --- Dockerfile | 2 ++ cmd/omnictl/winres/icon.png | Bin 0 -> 9614 bytes cmd/omnictl/winres/icon16.png | Bin 0 -> 1115 bytes cmd/omnictl/winres/winres.json | 61 +++++++++++++++++++++++++++++++++ 4 files changed, 63 insertions(+) create mode 100644 cmd/omnictl/winres/icon.png create mode 100644 cmd/omnictl/winres/icon16.png create mode 100644 cmd/omnictl/winres/winres.json diff --git a/Dockerfile b/Dockerfile index 4dba82d61..4d074b3c5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -440,6 +440,8 @@ ARG GO_LDFLAGS ARG VERSION_PKG="internal/version" ARG SHA ARG TAG +RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg go install github.com/tc-hib/go-winres@latest +RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg go-winres make --product-version=${TAG} --file-version=${TAG} RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg GOARCH=amd64 GOOS=windows go build ${GO_BUILDFLAGS} -ldflags "${GO_LDFLAGS} -X ${VERSION_PKG}.Name=omnictl -X ${VERSION_PKG}.SHA=${SHA} -X ${VERSION_PKG}.Tag=${TAG}" -o /omnictl-windows-amd64.exe FROM scratch AS integration-test-linux-amd64 diff --git a/cmd/omnictl/winres/icon.png b/cmd/omnictl/winres/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..945b1cf154eb302d8eb81ddbabd1ea85fd0b8b0a GIT binary patch literal 9614 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 literal 0 HcmV?d00001 diff --git a/cmd/omnictl/winres/winres.json b/cmd/omnictl/winres/winres.json new file mode 100644 index 000000000..dae7d79fb --- /dev/null +++ b/cmd/omnictl/winres/winres.json @@ -0,0 +1,61 @@ +{ + "RT_GROUP_ICON": { + "APP": { + "0000": [ + "icon.png", + "icon16.png" + ] + } + }, + "RT_MANIFEST": { + "#1": { + "0409": { + "identity": { + "name": "", + "version": "" + }, + "description": "Omni Control Program", + "minimum-os": "win7", + "execution-level": "as invoker", + "ui-access": false, + "auto-elevate": false, + "dpi-awareness": "system", + "disable-theming": false, + "disable-window-filtering": false, + "high-resolution-scrolling-aware": false, + "ultra-high-resolution-scrolling-aware": false, + "long-path-aware": false, + "printer-driver-isolation": false, + "gdi-scaling": false, + "segment-heap": false, + "use-common-controls-v6": false + } + } + }, + "RT_VERSION": { + "#1": { + "0000": { + "fixed": { + "file_version": "0.0.0.0", + "product_version": "0.0.0.0" + }, + "info": { + "0409": { + "Comments": "", + "CompanyName": "", + "FileDescription": "Omni Control Program", + "FileVersion": "", + "InternalName": "", + "LegalCopyright": "", + "LegalTrademarks": "", + "OriginalFilename": "", + "PrivateBuild": "", + "ProductName": "Omni", + "ProductVersion": "", + "SpecialBuild": "" + } + } + } + } + } +} \ No newline at end of file