diff options
-rw-r--r-- | Makefile | 24 | ||||
-rw-r--r-- | build.bat | 5 | ||||
-rw-r--r-- | go.mod | 1 | ||||
-rw-r--r-- | manifest.xml (renamed from ui/manifest.xml) | 14 | ||||
-rw-r--r-- | resources.rc | 39 | ||||
-rw-r--r-- | ui/ui.go | 2 | ||||
-rw-r--r-- | version.h | 1 |
7 files changed, 73 insertions, 13 deletions
@@ -1,19 +1,27 @@ -CFLAGS ?= -O3 -CFLAGS += -Wall -std=gnu11 +export CFLAGS := -O3 -Wall -std=gnu11 +export CC := x86_64-w64-mingw32-gcc +WINDRES := x86_64-w64-mingw32-windres +export CGO_ENABLED := 1 +export GOOS := windows +export GOARCH := amd64 + +DEPLOYMENT_HOST ?= winvm +DEPLOYMENT_PATH ?= Desktop all: wireguard.exe -resources.syso: ui/icon/icon.ico ui/manifest.xml go.mod - go run github.com/akavel/rsrc -manifest ui/manifest.xml -ico ui/icon/icon.ico -arch amd64 -o resources.syso +resources.syso: resources.rc manifest.xml ui/icon/icon.ico + $(WINDRES) -i $< -o $@ -O coff rwildcard=$(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d)) wireguard.exe: resources.syso $(call rwildcard,,*.go *.c *.h) - CC=x86_64-w64-mingw32-gcc CGO_ENABLED=1 GOOS=windows GOARCH=amd64 go build -ldflags="-H windowsgui" -o $@ + go build -ldflags="-H windowsgui -s -w" -v -o $@ -run: wireguard.exe - wine wireguard.exe +deploy: wireguard.exe + -ssh $(DEPLOYMENT_HOST) -- 'taskkill /im wireguard.exe /f' + scp wireguard.exe $(DEPLOYMENT_HOST):$(DEPLOYMENT_PATH) clean: rm -rf resources.syso wireguard.exe -.PHONY: run clean all +.PHONY: deploy clean all @@ -4,15 +4,16 @@ set OLDPATH=%PATH% if not exist deps\.prepared call :installdeps set PATH=%STARTDIR%\deps\x86_64-w64-mingw32-native\bin\;%STARTDIR%\deps\go\bin\;%PATH% set CC=x86_64-w64-mingw32-gcc.exe +set CFLAGS=-O3 -Wall -std=gnu11 set GOOS=windows set GOARCH=amd64 set GOPATH=%STARTDIR%\deps\gopath set GOROOT=%STARTDIR%\deps\go set CGO_ENABLED=1 echo Assembling resources -go run github.com/akavel/rsrc -manifest ui/manifest.xml -ico ui/icon/icon.ico -arch amd64 -o resources.syso || goto :error +windres.exe -i resources.rc -o resources.syso -O coff || goto :error echo Building program -go build -ldflags="-H windowsgui" -o wireguard.exe || goto :error +go build -ldflags="-H windowsgui -s -w" -v -o wireguard.exe || goto :error goto :out :installdeps @@ -10,7 +10,6 @@ require ( ) replace ( - github.com/akavel/rsrc => golang.zx2c4.com/wireguard/windows pkg/rsrc github.com/lxn/walk => golang.zx2c4.com/wireguard/windows pkg/walk github.com/lxn/win => golang.zx2c4.com/wireguard/windows pkg/walk-win ) diff --git a/ui/manifest.xml b/manifest.xml index a14c4be4..72e407d3 100644 --- a/ui/manifest.xml +++ b/manifest.xml @@ -1,6 +1,18 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"> - <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="wireguard-manager" type="win32"/> + <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="wireguard" type="win32"/> + <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> + <application> + <!-- Windows 10 --> + <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> + <!-- Windows 8.1 --> + <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> + <!-- Windows 8 --> + <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> + <!-- Windows 7 --> + <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> + </application> + </compatibility> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/> diff --git a/resources.rc b/resources.rc new file mode 100644 index 00000000..fd3a521d --- /dev/null +++ b/resources.rc @@ -0,0 +1,39 @@ +/* SPDX-License-Identifier: MIT + * + * Copyright (C) 2019 WireGuard LLC. All Rights Reserved. + */ + +#include <windows.h> +#include "version.h" + +CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST manifest.xml + +1 ICON ui/icon/icon.ico + +VS_VERSION_INFO VERSIONINFO +FILEVERSION 0,0,0,1 +PRODUCTVERSION 0,0,0,1 +FILEOS VOS_NT_WINDOWS32 +FILETYPE VFT_APP +FILESUBTYPE VFT2_UNKNOWN +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "CompanyName", "WireGuard LLC" + VALUE "FileDescription", "WireGuard: Fast, Modern, Secure VPN Tunnel" + VALUE "FileVersion", WIREGUARD_WINDOWS_VERSION + VALUE "InternalName", "wireguard" + VALUE "LegalCopyright", "Copyright \xa9 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved." + VALUE "OriginalFilename", "wireguard.exe" + VALUE "ProductName", "WireGuard" + VALUE "ProductVersion", WIREGUARD_WINDOWS_VERSION + VALUE "Comments", "https://www.wireguard.com/" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END @@ -28,7 +28,7 @@ AllowedIPs = 0.0.0.0/0 ` func RunUI() { - icon, _ := walk.NewIconFromResourceId(8) + icon, _ := walk.NewIconFromResourceId(1) mw, _ := walk.NewMainWindowWithName("WireGuard") tray, _ := walk.NewNotifyIcon(mw) diff --git a/version.h b/version.h new file mode 100644 index 00000000..8da652db --- /dev/null +++ b/version.h @@ -0,0 +1 @@ +#define WIREGUARD_WINDOWS_VERSION "0.0.20190307" |