From 2be199bad871a6d2a5aeaa26d31d47c6981c76ac Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Mon, 25 Aug 2025 13:46:00 +0800 Subject: [PATCH] [Refactor] (buildsystem): make MG_Benchmark also use FindXXX.cmake --- MobileGL/MG_Benchmark/Program/CMakeLists.txt | 65 ++++++-------------- MobileGL/MG_Test/CMakeLists.txt | 6 +- 2 files changed, 21 insertions(+), 50 deletions(-) diff --git a/MobileGL/MG_Benchmark/Program/CMakeLists.txt b/MobileGL/MG_Benchmark/Program/CMakeLists.txt index d73586f2..f2fc3012 100644 --- a/MobileGL/MG_Benchmark/Program/CMakeLists.txt +++ b/MobileGL/MG_Benchmark/Program/CMakeLists.txt @@ -1,54 +1,25 @@ cmake_minimum_required(VERSION 3.24) -# Vulkan SDK's cmake config is fundamentally broken. Directly find libs instead -if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - find_package(Vulkan REQUIRED) - get_filename_component(VULKAN_LIB_DIR ${Vulkan_LIBRARY} PATH) +# Add the directory containing our custom Find modules +list(APPEND CMAKE_MODULE_PATH "${MGL_ROOT}/buildsystem/cmake") - set(LINK_LIBRARIES - ${VULKAN_LIB_DIR}/libglslang.a - ${VULKAN_LIB_DIR}/libspirv-cross-c-shared.dylib - ${VULKAN_LIB_DIR}/libGenericCodeGen.a - ${VULKAN_LIB_DIR}/libglslang-default-resource-limits.a - ${VULKAN_LIB_DIR}/libMachineIndependent.a - ${VULKAN_LIB_DIR}/libOSDependent.a - ${VULKAN_LIB_DIR}/libSPIRV-Tools-diff.a - ${VULKAN_LIB_DIR}/libSPIRV-Tools-link.a - ${VULKAN_LIB_DIR}/libSPIRV-Tools-lint.a - ${VULKAN_LIB_DIR}/libSPIRV-Tools-opt.a - ${VULKAN_LIB_DIR}/libSPIRV-Tools-reduce.a - ${VULKAN_LIB_DIR}/libSPIRV-Tools.a - ${VULKAN_LIB_DIR}/libSPIRV.a - ${VULKAN_LIB_DIR}/libSPVRemapper.a) -elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows") - find_package(Vulkan REQUIRED) - get_filename_component(VULKAN_LIB_DIR ${Vulkan_LIBRARY} PATH) +# Find the required libraries using our custom Find modules +find_package(glslang REQUIRED) +find_package(SPIRVCross REQUIRED) +find_package(SPIRVTools) - set(LINK_LIBRARIES - ${VULKAN_LIB_DIR}/glslang$<$:d>.lib - ${VULKAN_LIB_DIR}/spirv-cross-c-shared$<$:d>.lib - ${VULKAN_LIB_DIR}/GenericCodeGen$<$:d>.lib - ${VULKAN_LIB_DIR}/glslang-default-resource-limits$<$:d>.lib - ${VULKAN_LIB_DIR}/MachineIndependent$<$:d>.lib - ${VULKAN_LIB_DIR}/OSDependent$<$:d>.lib - ${VULKAN_LIB_DIR}/SPIRV-Tools-diff$<$:d>.lib - ${VULKAN_LIB_DIR}/SPIRV-Tools-link$<$:d>.lib - ${VULKAN_LIB_DIR}/SPIRV-Tools-lint$<$:d>.lib - ${VULKAN_LIB_DIR}/SPIRV-Tools-opt$<$:d>.lib - ${VULKAN_LIB_DIR}/SPIRV-Tools-reduce$<$:d>.lib - ${VULKAN_LIB_DIR}/SPIRV-Tools$<$:d>.lib - ${VULKAN_LIB_DIR}/SPIRV$<$:d>.lib - ${VULKAN_LIB_DIR}/SPVRemapper$<$:d>.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) +message(STATUS "glslang_LIBRARIES: ${glslang_LIBRARIES}") +message(STATUS "SPIRVTools_LIBRARIES: ${SPIRVTools_LIBRARIES}") +message(STATUS "SPIRVCross_LIBRARIES: ${SPIRVCross_LIBRARIES}") + +# Set the libraries to link against +set(LINK_LIBRARIES + ${glslang_LIBRARIES} + ${SPIRVCross_LIBRARIES} +) + +if (SPIRVTools_FOUND) + list(APPEND LINK_LIBRARIES ${SPIRVTools_LIBRARIES}) endif() add_executable( diff --git a/MobileGL/MG_Test/CMakeLists.txt b/MobileGL/MG_Test/CMakeLists.txt index 427e0acc..ff8235ef 100644 --- a/MobileGL/MG_Test/CMakeLists.txt +++ b/MobileGL/MG_Test/CMakeLists.txt @@ -4,8 +4,10 @@ project(MobileGLTest) set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(MGL_ROOT ${CMAKE_CURRENT_LIST_DIR}/../..) + # Add the directory containing our custom Find modules -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/../../buildsystem/cmake") +list(APPEND CMAKE_MODULE_PATH "${MGL_ROOT}/buildsystem/cmake") include(FetchContent) FetchContent_Declare( @@ -19,8 +21,6 @@ FetchContent_MakeAvailable(googletest) enable_testing() -set(MGL_ROOT ${CMAKE_CURRENT_LIST_DIR}/../..) - # Find the required libraries using our custom Find modules find_package(glslang REQUIRED) find_package(SPIRVCross REQUIRED)