Loading cmake/FindSQLite3.cmake +16 −8 Original line number Diff line number Diff line # sqlite3-config.cmake # FindSQLite3.cmake # Unterstützt find_package(SQLite3) ohne REQUIRED-Flag. # Definiert das moderne Imported Target sqlite3::sqlite3. set(SQLITE3_FOUND FALSE) # -------------------------------------------------------------------------- # 1. Suche nach Header und Bibliothek # 1. Suche nach Header und Bibliothek (Robust über find_path/find_library) # -------------------------------------------------------------------------- # Suche nach dem Header (lib/sqlite3.h oder include/sqlite3.h) # Suche nach dem Header (sqlite3.h) find_path(SQLITE3_INCLUDE_DIRS NAMES sqlite3.h) # Suche nach der Bibliothek (libsqlite3.a/.so oder sqlite3.lib) Loading @@ -24,24 +25,31 @@ endif() # -------------------------------------------------------------------------- if (NOT TARGET sqlite3::sqlite3 AND SQLITE3_FOUND) # UNKNOWN erlaubt es, dass die Bibliothek statisch oder shared sein kann # 🌟 FIX: Deklariert als SHARED und GLOBAL. Auf Debian/Alpine ist es eine Shared Lib. add_library(sqlite3::sqlite3 SHARED IMPORTED GLOBAL) # Korrekte Übergabe der Header-Pfade über INTERFACE target_include_directories(sqlite3::sqlite3 INTERFACE ${SQLITE3_INCLUDE_DIRS}) set_target_properties(sqlite3::sqlite3 PROPERTIES IMPORTED_CONFIGURATIONS "Release;Debug" INTERFACE_INCLUDE_DIRECTORIES "${SQLITE3_INCLUDE_DIRS}" # SQLite3 benötigt oft keinen expliziten Bibliothekspfad, aber wir setzen den Pfad zur gefundenen Datei ) if (WIN32) # Windows (.lib) # --- Windows Implementierung (.lib) --- # SQLite3 ist unter Windows oft als statische oder Import-Bibliothek verfügbar. # Wir setzen den gefundenen Pfad als Import-Bibliothek. set_target_properties(sqlite3::sqlite3 PROPERTIES IMPORTED_IMPLIB_RELEASE "${SQLITE3_LIBRARIES}" # Wenn es eine DLL gibt, muss hier der Pfad geraten werden. # Da die Nutzung oft statisch erfolgt, lassen wir LOCATION offen oder setzen den LIB-Pfad. IMPORTED_LOCATION_RELEASE "${SQLITE3_LIBRARIES}" # Annahme für Debug-Namen: muss ggf. angepasst werden IMPORTED_LOCATION_DEBUG "${SQLITE3_LIBRARIES}d" ) else() # Linux/Unix (.a/.so) # --- Linux/Unix Implementierung (.so) --- # NUTZT den von find_library gefundenen ABSOLUTEN PFAD set_target_properties(sqlite3::sqlite3 PROPERTIES IMPORTED_LOCATION_RELEASE "${SQLITE3_LIBRARIES}" IMPORTED_LOCATION_DEBUG "${SQLITE3_LIBRARIES}" Loading Loading
cmake/FindSQLite3.cmake +16 −8 Original line number Diff line number Diff line # sqlite3-config.cmake # FindSQLite3.cmake # Unterstützt find_package(SQLite3) ohne REQUIRED-Flag. # Definiert das moderne Imported Target sqlite3::sqlite3. set(SQLITE3_FOUND FALSE) # -------------------------------------------------------------------------- # 1. Suche nach Header und Bibliothek # 1. Suche nach Header und Bibliothek (Robust über find_path/find_library) # -------------------------------------------------------------------------- # Suche nach dem Header (lib/sqlite3.h oder include/sqlite3.h) # Suche nach dem Header (sqlite3.h) find_path(SQLITE3_INCLUDE_DIRS NAMES sqlite3.h) # Suche nach der Bibliothek (libsqlite3.a/.so oder sqlite3.lib) Loading @@ -24,24 +25,31 @@ endif() # -------------------------------------------------------------------------- if (NOT TARGET sqlite3::sqlite3 AND SQLITE3_FOUND) # UNKNOWN erlaubt es, dass die Bibliothek statisch oder shared sein kann # 🌟 FIX: Deklariert als SHARED und GLOBAL. Auf Debian/Alpine ist es eine Shared Lib. add_library(sqlite3::sqlite3 SHARED IMPORTED GLOBAL) # Korrekte Übergabe der Header-Pfade über INTERFACE target_include_directories(sqlite3::sqlite3 INTERFACE ${SQLITE3_INCLUDE_DIRS}) set_target_properties(sqlite3::sqlite3 PROPERTIES IMPORTED_CONFIGURATIONS "Release;Debug" INTERFACE_INCLUDE_DIRECTORIES "${SQLITE3_INCLUDE_DIRS}" # SQLite3 benötigt oft keinen expliziten Bibliothekspfad, aber wir setzen den Pfad zur gefundenen Datei ) if (WIN32) # Windows (.lib) # --- Windows Implementierung (.lib) --- # SQLite3 ist unter Windows oft als statische oder Import-Bibliothek verfügbar. # Wir setzen den gefundenen Pfad als Import-Bibliothek. set_target_properties(sqlite3::sqlite3 PROPERTIES IMPORTED_IMPLIB_RELEASE "${SQLITE3_LIBRARIES}" # Wenn es eine DLL gibt, muss hier der Pfad geraten werden. # Da die Nutzung oft statisch erfolgt, lassen wir LOCATION offen oder setzen den LIB-Pfad. IMPORTED_LOCATION_RELEASE "${SQLITE3_LIBRARIES}" # Annahme für Debug-Namen: muss ggf. angepasst werden IMPORTED_LOCATION_DEBUG "${SQLITE3_LIBRARIES}d" ) else() # Linux/Unix (.a/.so) # --- Linux/Unix Implementierung (.so) --- # NUTZT den von find_library gefundenen ABSOLUTEN PFAD set_target_properties(sqlite3::sqlite3 PROPERTIES IMPORTED_LOCATION_RELEASE "${SQLITE3_LIBRARIES}" IMPORTED_LOCATION_DEBUG "${SQLITE3_LIBRARIES}" Loading