-
Notifications
You must be signed in to change notification settings - Fork 0
CMAKE_FIND_PACKAGE_SOLUTIONS
GitHub Actions edited this page Jan 2, 2026
·
1 revision
ThemisDB v1.3.5 | Datum: 26.12.2025
CMake Error at CMakeLists.txt:504:
Could NOT find faiss (missing: faiss_DIR)
-
vcpkg Installation: ✅ faiss v1.8.0 in
C:\VCC\themis\vcpkg_installed\x64-windows\ -
Config-Datei existiert: ✅
vcpkg_installed/x64-windows/share/faiss/faiss-config.cmake - CMake findet sie nicht: ❌ faiss_DIR wird nicht automatisch propagiert
CMake Error at plugins/rpc/grpc/CMakeLists.txt:9:
gRPCConfig.cmake missing despite vcpkg installation
-
vcpkg Installation: ✅ grpc v1.71.0 (statisch) in
C:\VCC\themis\vcpkg_installed\x64-windows\ -
Config-Datei existiert: ✅
vcpkg_installed/x64-windows/share/grpc/gRPCConfig.cmake - CMake findet sie nicht: ❌ gRPC_DIR wird nicht automatisch propagiert
- Beim CMake Configure sind CMAKE_PREFIX_PATH und CMAKE_FIND_PACKAGE_PREFER_CONFIG richtig gesetzt
-
vcpkg.cmake Toolchain wird korrekt geladen (
-DCMAKE_TOOLCHAIN_FILE=...) -
ABER: Die Pfade zu
faiss_DIRundgRPC_DIRwerden nicht vom Toolchain übertragen
-
vcpkg.cmake setzt
CMAKE_PREFIX_PATHauf VCPKG_INSTALLED_DIR - ABER: Dieses wird bei jedem CMake-Reset überschrieben
-
Bei CMakeLists.txt Lines 43-45:
CMAKE_FIND_PACKAGE_PREFER_CONFIG ONist korrekt -
ABER:
CMAKE_PREFIX_PATHmuss bei JEDEM cmake-Schritt gesetzt sein
Garantierte Lösung: Pfade direkt in CMakeLists.txt setzen.
CMakeLists.txt - Nach Zeile 39 ergänzen:
# Set CMAKE_PREFIX_PATH for vcpkg packages (v1.3.5 hotfix)
if(DEFINED ENV{VCPKG_ROOT})
list(APPEND CMAKE_PREFIX_PATH "$ENV{VCPKG_ROOT}/installed/x64-windows")
endif()
# Fallback: Lokaler Installed-Pfad
if(EXISTS "${CMAKE_SOURCE_DIR}/vcpkg_installed/x64-windows")
list(APPEND CMAKE_PREFIX_PATH "${CMAKE_SOURCE_DIR}/vcpkg_installed/x64-windows")
endif()Oder kompakt (Best Practice für Windows):
# Ensure vcpkg packages are discoverable (v1.3.5)
if(DEFINED ENV{VCPKG_ROOT})
list(PREPEND CMAKE_PREFIX_PATH
"$ENV{VCPKG_ROOT}/installed/x64-windows"
"$ENV{VCPKG_ROOT}/installed/x64-windows/share")
endif()Am einfachsten für SOFORT-FIX (PowerShell):
# FAISS + gRPC Problem sofort beheben
$VCPKG_INSTALLED = "C:\VCC\themis\vcpkg_installed\x64-windows"
cmake -S . -B build-msvc `
-G "Visual Studio 17 2022" -A x64 `
-DCMAKE_TOOLCHAIN_FILE="C:\VCC\themis\vcpkg\scripts\buildsystems\vcpkg.cmake" `
-DVCPKG_TARGET_TRIPLET=x64-windows `
-DCMAKE_PREFIX_PATH="$VCPKG_INSTALLED;$VCPKG_INSTALLED\share" `
-Dfaiss_DIR="$VCPKG_INSTALLED\share\faiss" `
-DgRPC_DIR="$VCPKG_INSTALLED\share\grpc" `
-DTHEMIS_ENABLE_GPU=ONIn CMakeLists.txt (Lines 40-45 ersetzen):
# vcpkg integration with proper PREFIX_PATH propagation
if(DEFINED ENV{VCPKG_ROOT})
set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" CACHE STRING "")
# CRITICAL: Set PREFIX_PATH after toolchain to ensure config packages are found
list(APPEND CMAKE_PREFIX_PATH
"$ENV{VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}"
"$ENV{VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/share")
endif()
# Prefer CONFIG packages (vcpkg) - MUSS nach PREFIX_PATH kommen!
set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON)
set(CMAKE_FIND_PACKAGE_CONFIG_DIR
"${CMAKE_BINARY_DIR}/vcpkg_installed/x64-windows/share"
CACHE PATH "vcpkg cmake configs")Betroffene Dateien:
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -42,9 +42,20 @@ set(CMAKE_CXX_EXTENSIONS OFF)
endif()
# Export compile commands for IDE support
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
+# ============================================================================
+# v1.3.5: Fix CMAKE_PREFIX_PATH for vcpkg packages (faiss, gRPC, etc)
+# Explanation: vcpkg.cmake sets PREFIX_PATH but it may be cleared by IDE builds
+# SOLUTION: Explicitly prepend vcpkg installed directory to PREFIX_PATH
+# ============================================================================
+if(DEFINED ENV{VCPKG_ROOT})
+ list(PREPEND CMAKE_PREFIX_PATH
+ "$ENV{VCPKG_ROOT}/installed/x64-windows/share"
+ "$ENV{VCPKG_ROOT}/installed/x64-windows")
+endif()
+
# vcpkg integration
if(DEFINED ENV{VCPKG_ROOT})
set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
CACHE STRING "Vcpkg toolchain file")
endif()
# Prefer CONFIG packages (vcpkg) over FindXXX modules
set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON)--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -503,7 +503,15 @@ find_package(hnswlib CONFIG)
# Optional: Faiss for GPU support (graceful degradation if not found)
if(THEMIS_ENABLE_GPU)
- find_package(faiss CONFIG)
+ find_package(faiss CONFIG QUIET)
if(NOT faiss_FOUND)
+ # Fallback: Try to find via direct DIR hint
+ if(NOT DEFINED faiss_DIR AND EXISTS "${CMAKE_PREFIX_PATH}")
+ find_package(faiss CONFIG
+ HINTS "${CMAKE_PREFIX_PATH}"
+ QUIET)
+ endif()
+ endif()
+ if(NOT faiss_FOUND)
message(WARNING "Faiss nicht gefunden – GPU-Unterstützung wird automatisch deaktiviert.")
set(THEMIS_ENABLE_GPU OFF CACHE BOOL "Enable GPU acceleration for vector search" FORCE)--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -927,7 +927,15 @@ endif()
find_package(gRPC CONFIG QUIET)
if(gRPC_FOUND)
message(STATUS "gRPC found - enabling LLM gRPC service")
list(APPEND THEMIS_CORE_SOURCES
src/server/llm_grpc_service.cpp
proto/llm_service.proto
)
else()
- message(STATUS "gRPC not found - disabling LLM gRPC service and proto generation")
+ # Fallback: Try gRPC with HINTS
+ find_package(gRPC CONFIG
+ HINTS "${CMAKE_PREFIX_PATH}"
+ QUIET)
+ endif()
+ if(NOT gRPC_FOUND)
+ message(WARNING "gRPC not found - LLM gRPC service disabled")--- a/plugins/rpc/grpc/CMakeLists.txt
+++ b/plugins/rpc/grpc/CMakeLists.txt
@@ -7,9 +7,21 @@ message(STATUS "Configuring gRPC Plugin")
# Find gRPC package
-find_package(gRPC CONFIG)
+# v1.3.5 Hotfix: Ensure gRPC_DIR is set
+if(NOT DEFINED gRPC_DIR AND DEFINED ENV{VCPKG_ROOT})
+ set(gRPC_DIR "$ENV{VCPKG_ROOT}/installed/x64-windows/share/grpc" CACHE PATH "gRPC directory")
+endif()
+
+find_package(gRPC CONFIG QUIET)
if(NOT gRPC_FOUND)
- find_package(gRPC)
+ # Fallback with hints
+ find_package(gRPC CONFIG
+ HINTS "$ENV{VCPKG_ROOT}/installed/x64-windows/share/grpc"
+ QUIET)
endif()
+
if(NOT gRPC_FOUND)
- message(WARNING "gRPC not found - skipping gRPC plugin build")
+ message(WARNING "gRPC not found - skipping gRPC plugin build. "
+ "Set gRPC_DIR to <vcpkg>/installed/x64-windows/share/grpc")
message(WARNING "Install with: apt install libgrpc++-dev or brew install grpc or vcpkg install grpc")cmake -S . -B build-msvc `
-G "Visual Studio 17 2022" -A x64 `
-DCMAKE_TOOLCHAIN_FILE="C:\VCC\themis\vcpkg\scripts\buildsystems\vcpkg.cmake"
# → Fehler: faiss_DIR nicht gefunden, gRPC_DIR nicht gefundencmake -S . -B build-msvc `
-G "Visual Studio 17 2022" -A x64 `
-DCMAKE_TOOLCHAIN_FILE="C:\VCC\themis\vcpkg\scripts\buildsystems\vcpkg.cmake" `
-DCMAKE_PREFIX_PATH="C:\VCC\themis\vcpkg_installed\x64-windows;C:\VCC\themis\vcpkg_installed\x64-windows\share" `
-DTHEMIS_ENABLE_GPU=ON
# → ✅ FAISS gefundencmake -S . -B build-msvc `
-G "Visual Studio 17 2022" -A x64 `
-DCMAKE_TOOLCHAIN_FILE="C:\VCC\themis\vcpkg\scripts\buildsystems\vcpkg.cmake" `
-Dfaiss_DIR="C:\VCC\themis\vcpkg_installed\x64-windows\share\faiss" `
-DgRPC_DIR="C:\VCC\themis\vcpkg_installed\x64-windows\share\grpc" `
-DTHEMIS_ENABLE_GPU=ON
# → ✅ FAISS + gRPC gefunden# 1. FAISS Config
$VCPKG = "C:\VCC\themis\vcpkg_installed\x64-windows"
Test-Path "$VCPKG\share\faiss\faiss-config.cmake" # Muss TRUE sein
Test-Path "$VCPKG\lib\faiss.lib" # Muss TRUE sein
# 2. gRPC Config
Test-Path "$VCPKG\share\grpc\gRPCConfig.cmake" # Muss TRUE sein
Test-Path "$VCPKG\lib\grpc.lib" # Muss TRUE sein
# 3. CMake-Cache überprüfen
Get-Content "build-msvc\CMakeCache.txt" | Select-String "faiss|gRPC" | Select-Object -First 10# Vor dem Build sollte folgendes stehen:
-- Found faiss: <path>/share/faiss/faiss-config.cmake (found version "1.8.0")
-- Found gRPC: <path>/share/grpc/gRPCConfig.cmake (found version "1.71.0")- FAISS Official CMake: https://github.com/facebookresearch/faiss/blob/main/cmake/faiss-config.cmake.in
- FAISS CMakeLists: https://github.com/facebookresearch/faiss/blob/main/CMakeLists.txt
- vcpkg FAISS Port: https://github.com/microsoft/vcpkg/blob/master/ports/faiss/portfile.cmake
- Known Windows Issues: https://github.com/facebookresearch/faiss/issues?q=cmake+windows
- gRPC Official CMake: https://github.com/grpc/grpc/blob/master/cmake/gRPCConfig.cmake.in
- gRPC CMakeLists: https://github.com/grpc/grpc/blob/master/CMakeLists.txt#L200-L250
- vcpkg gRPC Port: https://github.com/microsoft/vcpkg/blob/master/ports/grpc/portfile.cmake
- vcpkg CMake Wrapper Fix: https://github.com/microsoft/vcpkg/blob/master/ports/grpc/vcpkg-cmake-wrapper.cmake
- MSVC Static Build Fix: https://github.com/grpc/grpc/pull/38623
- FAISS Windows Build Issue #2909: Shared libs problem on Windows
- gRPC MSVC Static Runtime #38623: CMake >= 3.15 fix für MSVC
-
vcpkg CONFIG Mode: Ensure
CMAKE_FIND_PACKAGE_PREFER_CONFIG=ON
Falls die vcpkg Installation beschädigt ist:
# 1. Faiss neu bauen (mit GPU optional)
cd C:\VCC\themis
.\vcpkg\vcpkg install faiss:x64-windows
# 2. gRPC neu bauen (statisch erforderlich auf Windows)
.\vcpkg\vcpkg install grpc:x64-windows
# 3. Protobuf (abhängig von gRPC, wird automatisch gezogen)
.\vcpkg\vcpkg install protobuf:x64-windows
# 4. Alle abhängigen Pakete überprüfen
.\vcpkg\vcpkg list | Select-String "faiss|grpc|protobuf"
# 5. Ganze vcpkg_installed löschen und neubuild (NUCLEAR)
Remove-Item -Recurse -Force "vcpkg_installed"
.\vcpkg\vcpkg install- Step 1: CMakeLists.txt mit CMAKE_PREFIX_PATH Patch patchen (Zeile 40-50)
- Step 2: gRPC Plugin CMakeLists.txt mit gRPC_DIR Fallback patchen
- Step 3: CMake Configure mit
-DCMAKE_PREFIX_PATHdurchführen - Step 4: Überprüfen dass
faiss_DIRundgRPC_DIRin CMakeCache.txt gesetzt sind - Step 5:
cmake --build . --target themis_servertesten - Step 6: Test durchführen mit
-DTHEMIS_ENABLE_GPU=ONfür FAISS-Integration - Step 7: Test durchführen mit LLM-Feature für gRPC-Integration
| Package | Konfiguration | Installed Path |
|---|---|---|
| FAISS | faiss-config.cmake | vcpkg_installed\x64-windows\share\faiss\ |
| FAISS | Library | vcpkg_installed\x64-windows\lib\faiss.lib |
| gRPC | gRPCConfig.cmake | vcpkg_installed\x64-windows\share\grpc\ |
| gRPC | Library | vcpkg_installed\x64-windows\lib\grpc*.lib |
| Protobuf | protobufConfig.cmake | vcpkg_installed\x64-windows\share\protobuf\ |
| OpenMP | (MSVC builtin) | Via /openmp compiler flag |
| BLAS/LAPACK | FAISS dependency | vcpkg-abhängig (Intel MKL oder openblas) |
- ThemisDB: v1.3.5+
- FAISS: v1.8.0 (vcpkg)
- gRPC: v1.71.0 (vcpkg)
- CMake: ≥3.20
- MSVC: Visual Studio 17 2022
- vcpkg: Latest stable
ThemisDB v1.3.4 | GitHub | Documentation | Discussions | License
Last synced: January 02, 2026 | Commit: 6add659
Version: 1.3.0 | Stand: Dezember 2025
- Übersicht
- Home
- Dokumentations-Index
- Quick Reference
- Sachstandsbericht 2025
- Features
- Roadmap
- Ecosystem Overview
- Strategische Übersicht
- Geo/Relational Storage
- RocksDB Storage
- MVCC Design
- Transaktionen
- Time-Series
- Memory Tuning
- Chain of Thought Storage
- Query Engine & AQL
- AQL Syntax
- Explain & Profile
- Rekursive Pfadabfragen
- Temporale Graphen
- Zeitbereichs-Abfragen
- Semantischer Cache
- Hybrid Queries (Phase 1.5)
- AQL Hybrid Queries
- Hybrid Queries README
- Hybrid Query Benchmarks
- Subquery Quick Reference
- Subquery Implementation
- Content Pipeline
- Architektur-Details
- Ingestion
- JSON Ingestion Spec
- Enterprise Ingestion Interface
- Geo-Processor Design
- Image-Processor Design
- Hybrid Search Design
- Fulltext API
- Hybrid Fusion API
- Stemming
- Performance Tuning
- Migration Guide
- Future Work
- Pagination Benchmarks
- Enterprise README
- Scalability Features
- HTTP Client Pool
- Build Guide
- Implementation Status
- Final Report
- Integration Analysis
- Enterprise Strategy
- Verschlüsselungsstrategie
- Verschlüsselungsdeployment
- Spaltenverschlüsselung
- Encryption Next Steps
- Multi-Party Encryption
- Key Rotation Strategy
- Security Encryption Gap Analysis
- Audit Logging
- Audit & Retention
- Compliance Audit
- Compliance
- Extended Compliance Features
- Governance-Strategie
- Compliance-Integration
- Governance Usage
- Security/Compliance Review
- Threat Model
- Security Hardening Guide
- Security Audit Checklist
- Security Audit Report
- Security Implementation
- Development README
- Code Quality Pipeline
- Developers Guide
- Cost Models
- Todo Liste
- Tool Todo
- Core Feature Todo
- Priorities
- Implementation Status
- Roadmap
- Future Work
- Next Steps Analysis
- AQL LET Implementation
- Development Audit
- Sprint Summary (2025-11-17)
- WAL Archiving
- Search Gap Analysis
- Source Documentation Plan
- Changefeed README
- Changefeed CMake Patch
- Changefeed OpenAPI
- Changefeed OpenAPI Auth
- Changefeed SSE Examples
- Changefeed Test Harness
- Changefeed Tests
- Dokumentations-Inventar
- Documentation Summary
- Documentation TODO
- Documentation Gap Analysis
- Documentation Consolidation
- Documentation Final Status
- Documentation Phase 3
- Documentation Cleanup Validation
- API
- Authentication
- Cache
- CDC
- Content
- Geo
- Governance
- Index
- LLM
- Query
- Security
- Server
- Storage
- Time Series
- Transaction
- Utils
Vollständige Dokumentation: https://makr-code.github.io/ThemisDB/