From d8142eae56eaa81e32c4e57d2a7ffcb9cf3efe77 Mon Sep 17 00:00:00 2001 From: nanako <469449812@qq.com> Date: Wed, 13 Aug 2025 18:14:27 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E5=91=BD=E5=90=8D=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=A3=80=E6=B5=8B=E5=AE=8F=E5=89=8D=E7=BC=80?= =?UTF-8?q?=E4=B8=BA=20piko=EF=BC=8C=E6=9B=B4=E6=96=B0=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BB=A5=E6=94=AF=E6=8C=81=E6=96=B0=E7=9A=84?= =?UTF-8?q?=E5=91=BD=E5=90=8D=E7=BA=A6=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/cmake_script/detect_os.cmake | 98 ++++++++++++------------ 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/src/backend/cmake_script/detect_os.cmake b/src/backend/cmake_script/detect_os.cmake index 7ff84be..e7d9f90 100644 --- a/src/backend/cmake_script/detect_os.cmake +++ b/src/backend/cmake_script/detect_os.cmake @@ -10,62 +10,62 @@ function(add_os_definitions target) # --- 阶段 1: 确定宏的值 --- # 初始化所有平台、架构和特性宏的值为 0 - set(mirage_def_windows 0) - set(mirage_def_macos 0) - set(mirage_def_linux 0) - set(mirage_def_freebsd 0) - set(mirage_def_ios 0) - set(mirage_def_android 0) - set(mirage_def_cygwin 0) - set(mirage_def_unix 0) - set(mirage_def_posix 0) - set(mirage_def_mobile 0) - set(mirage_def_arch_64bit 0) - set(mirage_def_arch_32bit 0) + set(piko_def_windows 0) + set(piko_def_macos 0) + set(piko_def_linux 0) + set(piko_def_freebsd 0) + set(piko_def_ios 0) + set(piko_def_android 0) + set(piko_def_cygwin 0) + set(piko_def_unix 0) + set(piko_def_posix 0) + set(piko_def_mobile 0) + set(piko_def_arch_64bit 0) + set(piko_def_arch_32bit 0) # -- 操作系统检测与赋值 -- # 注意检测顺序:优先检测更具体的平台 if(CYGWIN) # Cygwin 环境比较特殊,它在 Windows 上模拟 Unix - set(mirage_def_windows 1) # 基础是 Windows - set(mirage_def_cygwin 1) # 明确是 Cygwin - set(mirage_def_unix 1) # 提供 Unix API - set(mirage_def_posix 1) # 提供 POSIX API + set(piko_def_windows 1) # 基础是 Windows + set(piko_def_cygwin 1) # 明确是 Cygwin + set(piko_def_unix 1) # 提供 Unix API + set(piko_def_posix 1) # 提供 POSIX API message(STATUS "检测到 **Cygwin** 环境 (运行于 Windows)") elseif(WIN32) # 非 Cygwin 的 Windows 环境 (MSVC, MinGW, etc.) - set(mirage_def_windows 1) + set(piko_def_windows 1) message(STATUS "检测到 **Windows** 操作系统 (非 Cygwin)") elseif(ANDROID) # Android 平台 (通常需要特定工具链设置 ANDROID 变量) - set(mirage_def_android 1) - set(mirage_def_unix 1) # Android NDK 基于 Unix - set(mirage_def_posix 1) # NDK 提供 POSIX API - set(mirage_def_mobile 1) # 移动平台 + set(piko_def_android 1) + set(piko_def_unix 1) # Android NDK 基于 Unix + set(piko_def_posix 1) # NDK 提供 POSIX API + set(piko_def_mobile 1) # 移动平台 message(STATUS "检测到 **Android** 操作系统") elseif(IOS) # iOS 平台 (通常需要特定工具链设置 IOS 变量) # 需要在 APPLE 之前判断,因为 iOS 下 APPLE 也为 TRUE - set(mirage_def_ios 1) - set(mirage_def_unix 1) # iOS (Darwin) 基于 Unix - set(mirage_def_posix 1) # 提供 POSIX API - set(mirage_def_mobile 1) # 移动平台 + set(piko_def_ios 1) + set(piko_def_unix 1) # iOS (Darwin) 基于 Unix + set(piko_def_posix 1) # 提供 POSIX API + set(piko_def_mobile 1) # 移动平台 message(STATUS "检测到 **iOS** 操作系统") elseif(APPLE) # 此时排除了 iOS,确定是 macOS - set(mirage_def_macos 1) - set(mirage_def_unix 1) # macOS (Darwin) 基于 Unix - set(mirage_def_posix 1) # 提供 POSIX API + set(piko_def_macos 1) + set(piko_def_unix 1) # macOS (Darwin) 基于 Unix + set(piko_def_posix 1) # 提供 POSIX API message(STATUS "检测到 **macOS** 操作系统") elseif(UNIX) # 此时排除了 Apple, Android, Cygwin 的其他 Unix-like 系统 - set(mirage_def_unix 1) - set(mirage_def_posix 1) + set(piko_def_unix 1) + set(piko_def_posix 1) if(CMAKE_SYSTEM_NAME MATCHES "Linux") - set(mirage_def_linux 1) + set(piko_def_linux 1) message(STATUS "检测到 **Linux** 操作系统") elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") - set(mirage_def_freebsd 1) + set(piko_def_freebsd 1) message(STATUS "检测到 **FreeBSD** 操作系统") else() message(WARNING "检测到未知的 类Unix 操作系统: ${CMAKE_SYSTEM_NAME}") @@ -76,12 +76,12 @@ function(add_os_definitions target) # -- 架构检测与赋值 -- if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(mirage_def_arch_64bit 1) - set(mirage_def_arch_32bit 0) # 明确设置为 0 + set(piko_def_arch_64bit 1) + set(piko_def_arch_32bit 0) # 明确设置为 0 message(STATUS "检测到 **64-bit** 架构") elseif(CMAKE_SIZEOF_VOID_P EQUAL 4) - set(mirage_def_arch_64bit 0) # 明确设置为 0 - set(mirage_def_arch_32bit 1) + set(piko_def_arch_64bit 0) # 明确设置为 0 + set(piko_def_arch_32bit 1) message(STATUS "检测到 **32-bit** 架构") else() # 对于未知或未定义的指针大小,两者都保持 0 @@ -92,22 +92,22 @@ function(add_os_definitions target) set(definitions_list "") # 初始化空列表 # 添加平台定义 - list(APPEND definitions_list "MIRAGE_PLATFORM_WINDOWS=${mirage_def_windows}") - list(APPEND definitions_list "MIRAGE_PLATFORM_MACOS=${mirage_def_macos}") - list(APPEND definitions_list "MIRAGE_PLATFORM_LINUX=${mirage_def_linux}") - list(APPEND definitions_list "MIRAGE_PLATFORM_FREEBSD=${mirage_def_freebsd}") - list(APPEND definitions_list "MIRAGE_PLATFORM_IOS=${mirage_def_ios}") - list(APPEND definitions_list "MIRAGE_PLATFORM_ANDROID=${mirage_def_android}") - list(APPEND definitions_list "MIRAGE_PLATFORM_CYGWIN=${mirage_def_cygwin}") + list(APPEND definitions_list "PIKO_PLATFORM_WINDOWS=${piko_def_windows}") + list(APPEND definitions_list "PIKO_PLATFORM_MACOS=${piko_def_macos}") + list(APPEND definitions_list "PIKO_PLATFORM_LINUX=${piko_def_linux}") + list(APPEND definitions_list "PIKO_PLATFORM_FREEBSD=${piko_def_freebsd}") + list(APPEND definitions_list "PIKO_PLATFORM_IOS=${piko_def_ios}") + list(APPEND definitions_list "PIKO_PLATFORM_ANDROID=${piko_def_android}") + list(APPEND definitions_list "PIKO_PLATFORM_CYGWIN=${piko_def_cygwin}") # 添加架构定义 - list(APPEND definitions_list "MIRAGE_PLATFORM_ARCH_64BIT=${mirage_def_arch_64bit}") - list(APPEND definitions_list "MIRAGE_PLATFORM_ARCH_32BIT=${mirage_def_arch_32bit}") + list(APPEND definitions_list "PIKO_PLATFORM_ARCH_64BIT=${piko_def_arch_64bit}") + list(APPEND definitions_list "PIKO_PLATFORM_ARCH_32BIT=${piko_def_arch_32bit}") # 添加特性定义 - list(APPEND definitions_list "MIRAGE_PLATFORM_UNIX=${mirage_def_unix}") - list(APPEND definitions_list "MIRAGE_PLATFORM_POSIX=${mirage_def_posix}") - list(APPEND definitions_list "MIRAGE_PLATFORM_IS_MOBILE=${mirage_def_mobile}") + list(APPEND definitions_list "PIKO_PLATFORM_UNIX=${piko_def_unix}") + list(APPEND definitions_list "PIKO_PLATFORM_POSIX=${piko_def_posix}") + list(APPEND definitions_list "PIKO_PLATFORM_IS_MOBILE=${piko_def_mobile}") # --- 阶段 3: 应用所有定义 --- # **关键:使用一次调用将所有定义添加到目标** @@ -115,7 +115,7 @@ function(add_os_definitions target) target_compile_definitions(${target} PUBLIC ${definitions_list}) endif() - # 函数作用域结束时,mirage_def_* 变量会自动销毁,无需显式 unset + # 函数作用域结束时,piko_def_* 变量会自动销毁,无需显式 unset endfunction()