diff --git a/native/cocos/renderer/gfx-base/SPIRVUtils.cpp b/native/cocos/renderer/gfx-base/SPIRVUtils.cpp index f47730a28fb..fbb32eda5b1 100644 --- a/native/cocos/renderer/gfx-base/SPIRVUtils.cpp +++ b/native/cocos/renderer/gfx-base/SPIRVUtils.cpp @@ -31,6 +31,11 @@ #include "glslang/StandAlone/ResourceLimits.h" #include "spirv/spirv.h" +#define CC_GLSLANG_VERSION_GREATOR_OR_EQUAL_TO(major, minor, patch) \ + (((major) < GLSLANG_VERSION_MAJOR) || ((major) == GLSLANG_VERSION_MAJOR && \ + (((minor) < GLSLANG_VERSION_MINOR) || ((minor) == GLSLANG_VERSION_MINOR && \ + ((patch) <= GLSLANG_VERSION_PATCH))))) + namespace cc { namespace gfx { @@ -57,10 +62,7 @@ glslang::EShTargetClientVersion getClientVersion(int vulkanMinorVersion) { case 0: return glslang::EShTargetVulkan_1_0; case 1: return glslang::EShTargetVulkan_1_1; case 2: return glslang::EShTargetVulkan_1_2; -#if GLSLANG_VERSION_LESS_OR_EQUAL_TO(11, 10, 0) - // This macro is defined in glslang/build_info.h. This expression means that the - // lib version is greater than or equal to 11.10.0 (not less than or equal to), - // which is very counterintuitive. But it's the only way to do it. +#if CC_GLSLANG_VERSION_GREATOR_OR_EQUAL_TO(11, 10, 0) case 3: return glslang::EShTargetVulkan_1_3; #else case 3: return glslang::EShTargetVulkan_1_2; @@ -77,10 +79,7 @@ glslang::EShTargetLanguageVersion getTargetVersion(int vulkanMinorVersion) { case 0: return glslang::EShTargetSpv_1_0; case 1: return glslang::EShTargetSpv_1_3; case 2: return glslang::EShTargetSpv_1_5; -#if GLSLANG_VERSION_LESS_OR_EQUAL_TO(11, 10, 0) - // This macro is defined in glslang/build_info.h. This expression means that the - // lib version is greater than or equal to 11.10.0 (not less than or equal to), - // which is very counterintuitive. But it's the only way to do it. +#if CC_GLSLANG_VERSION_GREATOR_OR_EQUAL_TO(11, 10, 0) case 3: return glslang::EShTargetSpv_1_6; #else case 3: return glslang::EShTargetSpv_1_5;