From f1ae8f0353649696cd9ae43e4f89d4efe71116f0 Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Mon, 21 Jul 2025 09:16:14 +0800 Subject: [PATCH] [Chore] (MG_Test/Program/CMakeLists.txt): tests compile on windows --- MobileGL/MG_Test/Program/CMakeLists.txt | 42 +++++++++++++++++------ MobileGL/MG_Util/ShaderTranspiler/Types.h | 2 +- 2 files changed, 33 insertions(+), 11 deletions(-) diff --git a/MobileGL/MG_Test/Program/CMakeLists.txt b/MobileGL/MG_Test/Program/CMakeLists.txt index 41054824..093ba9c6 100644 --- a/MobileGL/MG_Test/Program/CMakeLists.txt +++ b/MobileGL/MG_Test/Program/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required(VERSION 3.24) +# Vulkan SDK's cmake config is fundamentally broken. Directly find libs instead if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set(glslang_DIR $ENV{VULKAN_SDK}/macOS/lib/cmake/glslang) set(SPIRV-Tools_DIR $ENV{VULKAN_SDK}/macOS/lib/cmake/SPIRV-Tools) @@ -11,16 +12,38 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set(spirv_cross_hlsl_DIR $ENV{VULKAN_SDK}/macOS/lib/cmake/spirv_cross_hlsl/cmake) set(spirv_cross_msl_DIR $ENV{VULKAN_SDK}/macOS/lib/cmake/spirv_cross_msl/cmake) set(spirv_cross_c_DIR $ENV{VULKAN_SDK}/macOS/lib/cmake/spirv_cross_c/cmake) + set(LINK_LIBRARIES glslang::glslang spirv-cross-c) +elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows") + find_package(Vulkan REQUIRED) + get_filename_component(VULKAN_LIB_DIR ${Vulkan_LIBRARY} PATH) + + set(LINK_LIBRARIES + ${VULKAN_LIB_DIR}/glslang.lib + ${VULKAN_LIB_DIR}/spirv-cross-c.lib + ${VULKAN_LIB_DIR}/GenericCodeGen.lib + ${VULKAN_LIB_DIR}/glslang-default-resource-limits.lib + ${VULKAN_LIB_DIR}/MachineIndependent.lib + ${VULKAN_LIB_DIR}/OSDependent.lib + ${VULKAN_LIB_DIR}/SPIRV-Tools-diff.lib + ${VULKAN_LIB_DIR}/SPIRV-Tools-link.lib + ${VULKAN_LIB_DIR}/SPIRV-Tools-lint.lib + ${VULKAN_LIB_DIR}/SPIRV-Tools-opt.lib + ${VULKAN_LIB_DIR}/SPIRV-Tools-reduce.lib + ${VULKAN_LIB_DIR}/SPIRV-Tools.lib + ${VULKAN_LIB_DIR}/SPIRV.lib + ${VULKAN_LIB_DIR}/SPVRemapper.lib) +else () + find_package(glslang CONFIG REQUIRED) + find_package(spirv_cross_core CONFIG REQUIRED) + find_package(spirv_cross_glsl CONFIG REQUIRED) + find_package(spirv_cross_hlsl CONFIG REQUIRED) + find_package(spirv_cross_msl CONFIG REQUIRED) + find_package(spirv_cross_cpp CONFIG REQUIRED) + find_package(spirv_cross_reflect CONFIG REQUIRED) + find_package(spirv_cross_c CONFIG REQUIRED) + set(LINK_LIBRARIES glslang::glslang spirv-cross-c) endif() -find_package(glslang CONFIG REQUIRED) -find_package(spirv_cross_core CONFIG REQUIRED) -find_package(spirv_cross_glsl CONFIG REQUIRED) -find_package(spirv_cross_hlsl CONFIG REQUIRED) -find_package(spirv_cross_msl CONFIG REQUIRED) -find_package(spirv_cross_cpp CONFIG REQUIRED) -find_package(spirv_cross_reflect CONFIG REQUIRED) -find_package(spirv_cross_c CONFIG REQUIRED) add_executable( ProgramTest @@ -41,8 +64,7 @@ target_include_directories(ProgramTest PRIVATE target_link_libraries( ProgramTest GTest::gtest_main - glslang::glslang - spirv-cross-c + ${LINK_LIBRARIES} ) include(GoogleTest) diff --git a/MobileGL/MG_Util/ShaderTranspiler/Types.h b/MobileGL/MG_Util/ShaderTranspiler/Types.h index cafe488d..272ebfd3 100644 --- a/MobileGL/MG_Util/ShaderTranspiler/Types.h +++ b/MobileGL/MG_Util/ShaderTranspiler/Types.h @@ -15,7 +15,7 @@ namespace MobileGL { template struct TUniform { - static_assert(false, "TUniform does not accept this enum"); + // static_assert(false, "TUniform does not accept this enum"); }; template <>