Skip to content

Commit 189581b

Browse files
unamedkrclaude
andcommitted
fix: CMake Vulkan/ROCm graceful fallback + GoogleTest timestamp warning
Fixes #2: "Manually-specified variables were not used by the project: TQ_BUILD_VULKAN" - Vulkan/ROCm: change find_package from REQUIRED to QUIET with graceful fallback — prints helpful warning instead of hard error when SDK is not installed - GoogleTest: add DOWNLOAD_EXTRACT_TIMESTAMP TRUE to suppress CMP0135 policy warning on newer CMake versions 32/32 tests pass. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent e3ae4b5 commit 189581b

1 file changed

Lines changed: 32 additions & 19 deletions

File tree

CMakeLists.txt

Lines changed: 32 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -145,30 +145,42 @@ if(TQ_BUILD_CUDA)
145145
message(STATUS "TurboQuant: CUDA backend enabled")
146146
endif()
147147

148-
# Vulkan backend (cross-platform GPU)
148+
# Vulkan backend (cross-platform GPU — AMD, NVIDIA, Intel)
149149
if(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()
159165
endif()
160166

161167
# ROCm/HIP backend (AMD GPU)
162168
if(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()
172184
endif()
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

Comments
 (0)