@@ -145,30 +145,42 @@ if(TQ_BUILD_CUDA)
145145 message (STATUS "TurboQuant: CUDA backend enabled" )
146146endif ()
147147
148- # Vulkan backend (cross-platform GPU)
148+ # Vulkan backend (cross-platform GPU — AMD, NVIDIA, Intel )
149149if (TQ_BUILD_VULKAN)
150- find_package (Vulkan REQUIRED )
151- file (GLOB TQ_VULKAN_SOURCES src/backend/vulkan/*.c )
152- target_sources (turboquant PRIVATE ${TQ_VULKAN_SOURCES} )
153- target_sources (turboquant_shared PRIVATE ${TQ_VULKAN_SOURCES} )
154- target_link_libraries (turboquant PRIVATE Vulkan::Vulkan )
155- target_link_libraries (turboquant_shared PRIVATE Vulkan::Vulkan )
156- target_compile_definitions (turboquant PRIVATE TQ_BUILD_VULKAN=1 )
157- target_compile_definitions (turboquant_shared PRIVATE TQ_BUILD_VULKAN=1 )
158- message (STATUS "TurboQuant: Vulkan backend enabled" )
150+ find_package (Vulkan QUIET )
151+ if (Vulkan_FOUND)
152+ file (GLOB TQ_VULKAN_SOURCES src/backend/vulkan/*.c )
153+ target_sources (turboquant PRIVATE ${TQ_VULKAN_SOURCES} )
154+ target_sources (turboquant_shared PRIVATE ${TQ_VULKAN_SOURCES} )
155+ target_link_libraries (turboquant PRIVATE Vulkan::Vulkan )
156+ target_link_libraries (turboquant_shared PRIVATE Vulkan::Vulkan )
157+ target_compile_definitions (turboquant PRIVATE TQ_BUILD_VULKAN=1 )
158+ target_compile_definitions (turboquant_shared PRIVATE TQ_BUILD_VULKAN=1 )
159+ message (STATUS "TurboQuant: Vulkan backend enabled (${Vulkan_LIBRARY} )" )
160+ else ()
161+ message (WARNING "TurboQuant: TQ_BUILD_VULKAN=ON but Vulkan SDK not found. "
162+ "Install Vulkan SDK or set VULKAN_SDK environment variable. "
163+ "Building without Vulkan backend." )
164+ endif ()
159165endif ()
160166
161167# ROCm/HIP backend (AMD GPU)
162168if (TQ_BUILD_ROCM)
163- find_package (hip REQUIRED )
164- file (GLOB TQ_ROCM_SOURCES src/backend/rocm/*.cpp )
165- target_sources (turboquant PRIVATE ${TQ_ROCM_SOURCES} )
166- target_sources (turboquant_shared PRIVATE ${TQ_ROCM_SOURCES} )
167- target_link_libraries (turboquant PRIVATE hip::device )
168- target_link_libraries (turboquant_shared PRIVATE hip::device )
169- target_compile_definitions (turboquant PRIVATE TQ_BUILD_ROCM=1 )
170- target_compile_definitions (turboquant_shared PRIVATE TQ_BUILD_ROCM=1 )
171- message (STATUS "TurboQuant: ROCm/HIP backend enabled" )
169+ find_package (hip QUIET )
170+ if (hip_FOUND)
171+ file (GLOB TQ_ROCM_SOURCES src/backend/rocm/*.cpp )
172+ target_sources (turboquant PRIVATE ${TQ_ROCM_SOURCES} )
173+ target_sources (turboquant_shared PRIVATE ${TQ_ROCM_SOURCES} )
174+ target_link_libraries (turboquant PRIVATE hip::device )
175+ target_link_libraries (turboquant_shared PRIVATE hip::device )
176+ target_compile_definitions (turboquant PRIVATE TQ_BUILD_ROCM=1 )
177+ target_compile_definitions (turboquant_shared PRIVATE TQ_BUILD_ROCM=1 )
178+ message (STATUS "TurboQuant: ROCm/HIP backend enabled" )
179+ else ()
180+ message (WARNING "TurboQuant: TQ_BUILD_ROCM=ON but HIP SDK not found. "
181+ "Install ROCm or set HIP_PATH. "
182+ "Building without ROCm backend." )
183+ endif ()
172184endif ()
173185
174186# Compiler warnings
@@ -185,6 +197,7 @@ if(TQ_BUILD_TESTS)
185197 include (FetchContent )
186198 FetchContent_Declare (googletest
187199 URL https://github.com/google/googletest/archive/refs/tags/v1.14.0.tar.gz
200+ DOWNLOAD_EXTRACT_TIMESTAMP TRUE
188201 )
189202 set (gtest_force_shared_crt ON CACHE BOOL "" FORCE )
190203 FetchContent_MakeAvailable (googletest)
0 commit comments