From 717b0f96b872a695fcdf360e4ebb289d43c2b918 Mon Sep 17 00:00:00 2001 From: Mikachu2333 Date: Tue, 14 Oct 2025 01:48:46 +0800 Subject: [PATCH] =?UTF-8?q?feat(build):=20=E5=A2=9E=E5=BC=BAWindows?= =?UTF-8?q?=E6=94=AF=E6=8C=81=EF=BC=8C=E5=8A=A8=E6=80=81=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E7=9B=AE=E6=A0=87=E6=9C=BA=E5=99=A8=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 01640a4..39f290a 100755 --- a/Makefile +++ b/Makefile @@ -64,8 +64,18 @@ endif #======== Compilation Config ========== CFLAGS += -Iinclude -Ilib -Isrc/framework -Isrc/res +Target-Is-Windows = 0 +Use-Windows-Resource = 0 + ifeq ($(On-Windows), 1) CLANG_FLAGS = -target x86_64-pc-windows-gnu + Target-Machine := $(shell $(CC) -dumpmachine 2>nul || echo unknown) + ifneq ($(findstring mingw,$(Target-Machine)),) + Target-Is-Windows = 1 + else ifneq ($(findstring windows,$(Target-Machine)),) + Target-Is-Windows = 1 + endif + Use-Windows-Resource := $(Target-Is-Windows) endif ifeq ($(CC), clang) @@ -150,7 +160,7 @@ build-in-debug-mode: build-in-release-mode: CFLAGS += $(CFLAGS_optimization) build-in-release-mode: @echo Starting: Build in RELEASE mode: \'$(CC)\' $(CFLAGS) -o $(ReleaseMode-Target-Name) -ifeq ($(On-Windows), 1) +ifeq ($(Use-Windows-Resource), 1) @if exist src\\res\\chsrc.res del src\\res\\chsrc.res @windres src\\res\\win_res.rc -O coff -o src\\res\\chsrc.res -Iinclude -Ilib -Isrc\\framework -Isrc\\res @$(CC) src\\chsrc-main.c src\\res\\chsrc.res $(CFLAGS) $(_C_Warning_Flags) -o $(ReleaseMode-Target-Name) @@ -163,7 +173,7 @@ endif # CI release mode 的配置在该文件上方 build-in-ci-release-mode: @echo Starting: Build in CI-RELEASE mode: \'$(CC)\' $(CFLAGS) -o $(CIReleaseMode-Target-Name) -ifeq ($(On-Windows), 1) +ifeq ($(Use-Windows-Resource), 1) @windres src\\res\\win_res.rc -O coff -o src\\res\\chsrc.res -Iinclude -Ilib -Isrc\\framework -Isrc\\res @$(CC) src\\chsrc-main.c src\\res\\chsrc.res $(CFLAGS) $(_C_Warning_Flags) -o $(CIReleaseMode-Target-Name) else