feat(build): 增强Windows支持,动态检测目标机器类型

This commit is contained in:
Mikachu2333
2025-10-14 01:48:46 +08:00
parent 91692d6215
commit 717b0f96b8

View File

@@ -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