Loading cmake/findPostgreSQL.cmake +34 −74 Original line number Diff line number Diff line # postgresql-config.cmake # Unterstützt find_package(PostgreSQL) ohne REQUIRED-Flag. # -------------------------------------------------------------------------- # 1. Definieren der Pfadvariablen (Pfadsuche und Fallbacks) # -------------------------------------------------------------------------- set(POSTGRESQL_FOUND FALSE) # Standardmäßig nicht gefunden # Definiere den Header-Namen für die Suche set(_POSTGRESQL_HEADER_FILE "libpq-fe.h") # Definiere plattformspezifische Dateinamen (libpq ist oft shared) if (WIN32) set(_POSTGRESQL_LIB_NAME_SHARED "libpq.dll") set(_POSTGRESQL_IMPLIB_NAME "libpq.lib") else() # Auf Unix wird find_library verwendet, der Name ist nur für die Prefix-Prüfung set(_POSTGRESQL_LIB_NAME_SHARED "libpq.so") endif() if(DEFINED CMAKE_PREFIX_PATH) foreach(PREFIX_PATH ${CMAKE_PREFIX_PATH}) set(_POTENTIAL_INCLUDE_DIR "${PREFIX_PATH}/include") # Prüfe auf den Include-Pfad (der Header ist entscheidend) if (EXISTS "${_POTENTIAL_INCLUDE_DIR}/${_POSTGRESQL_HEADER_FILE}") set(POSTGRESQL_ROOT "${PREFIX_PATH}") message(STATUS "postgresql-config: Found POSTGRESQL_ROOT at ${POSTGRESQL_ROOT}") break() endif() endforeach() endif() if(NOT POSTGRESQL_ROOT) if(DEFINED CMAKE_INSTALL_PREFIX) set(POSTGRESQL_ROOT "${CMAKE_INSTALL_PREFIX}") # FIX: Füge den UNIX-Standardpfad-Fallback hinzu elseif(UNIX) set(POSTGRESQL_ROOT "/usr") else() get_filename_component(POSTGRESQL_ROOT "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE) endif() endif() # Setze den Include-Pfad (libpq Header sind direkt unter include/) set(POSTGRESQL_INCLUDE_DIR "${POSTGRESQL_ROOT}/include") set(POSTGRESQL_FOUND FALSE) # -------------------------------------------------------------------------- # 2. Bibliothek suchen und FOUND-Variable setzen (Multiarch- & Optional-Fix) # 1. Suche nach Header und Bibliothek # -------------------------------------------------------------------------- if (WIN32) set(POSTGRESQL_LIBRARY_DIR "${POSTGRESQL_ROOT}/lib") # Suche nach dem Haupt-Header find_path(POSTGRESQL_INCLUDE_DIRS NAMES libpq-fe.h) # Prüfe die Existenz der Import Library if (EXISTS "${POSTGRESQL_LIBRARY_DIR}/${_POSTGRESQL_IMPLIB_NAME}") set(POSTGRESQL_FOUND TRUE) endif() else() # Unix/Linux: find_library sucht nach libpq.so (Multiarch-kompatibel) # Verwende 'pq' als Namen, um die Suche zu vereinfachen find_library(POSTGRESQL_LIBRARY NAMES pq) # Suche nach der Bibliothek (PostgreSQL Client Library ist "pq") # CMake findet automatisch .so auf Unix oder .lib auf Windows find_library(POSTGRESQL_LIBRARIES NAMES pq) if (POSTGRESQL_LIBRARY) # WICHTIG: Setze FOUND nur, wenn beides gefunden wurde if (POSTGRESQL_INCLUDE_DIRS AND POSTGRESQL_LIBRARIES) set(POSTGRESQL_FOUND TRUE) endif() endif() # -------------------------------------------------------------------------- # 3. Erstellen des Namespaced IMPORTED Targets (Nur wenn gefunden) # 2. Erstellen des Namespaced IMPORTED Targets (Nur wenn gefunden) # -------------------------------------------------------------------------- if (NOT TARGET PostgreSQL::pq AND POSTGRESQL_FOUND) # UNKNOWN erlaubt SHARED/STATIC/etc., ist aber hier nicht streng notwendig # Wir nehmen SHARED an, da libpq fast immer shared ist. add_library(PostgreSQL::pq SHARED IMPORTED) set_target_properties(PostgreSQL::pq PROPERTIES IMPORTED_CONFIGURATIONS "Release;Debug" INTERFACE_INCLUDE_DIRECTORIES "${POSTGRESQL_INCLUDE_DIR}" INTERFACE_INCLUDE_DIRECTORIES "${POSTGRESQL_INCLUDE_DIRS}" ) # --- Windows Implementierung (.dll/.lib) --- if (WIN32) # Annahme: DLL und LIB liegen im selben Verzeichnis (Standard bei VCPKG/Installer) # Windows-Implementierung (Hier muss der Pfad oft manuell zwischen DLL und LIB unterschieden werden) # 1. Ermittle das Verzeichnis der gefundenen Import Library (.lib) get_filename_component(_POSTGRESQL_LIB_DIR "${POSTGRESQL_LIBRARIES}" DIRECTORY) # 2. Rate den Pfad zur DLL (typisch ist der gleiche Ordner) # Dies ist ein Ratversuch und kann fehlschlagen, wenn das Layout nicht Standard ist. set(_POSTGRESQL_DLL_PATH "${_POSTGRESQL_LIB_DIR}/libpq.dll") set_target_properties(PostgreSQL::pq PROPERTIES IMPORTED_IMPLIB_RELEASE "${POSTGRESQL_LIBRARY_DIR}/${_POSTGRESQL_IMPLIB_NAME}" IMPORTED_LOCATION_RELEASE "${POSTGRESQL_LIBRARY_DIR}/${_POSTGRESQL_LIB_NAME_SHARED}" # Implizite Annahme für Debug-Namen IMPORTED_IMPLIB_DEBUG "${POSTGRESQL_LIBRARY_DIR}/libpqd.lib" IMPORTED_LOCATION_DEBUG "${POSTGRESQL_LIBRARY_DIR}/libpqd.dll" IMPORTED_IMPLIB_RELEASE "${POSTGRESQL_LIBRARIES}" # Die gefundene .lib IMPORTED_LOCATION_RELEASE "${_POSTGRESQL_DLL_PATH}" # Die geratene .dll # Annahmen für Debug IMPORTED_IMPLIB_DEBUG "${_POSTGRESQL_LIB_DIR}/libpqd.lib" IMPORTED_LOCATION_DEBUG "${_POSTGRESQL_LIB_DIR}/libpqd.dll" ) # --- Linux/Unix Implementierung (.so) --- else() # NUTZT den von find_library gefundenen ABSOLUTEN PFAD # Linux/Unix Implementierung (.so oder .a) set_target_properties(PostgreSQL::pq PROPERTIES IMPORTED_LOCATION_RELEASE "${POSTGRESQL_LIBRARY}" IMPORTED_LOCATION_DEBUG "${POSTGRESQL_LIBRARY}" IMPORTED_LOCATION_RELEASE "${POSTGRESQL_LIBRARIES}" IMPORTED_LOCATION_DEBUG "${POSTGRESQL_LIBRARIES}" ) # libpq benötigt oft math (m) und zlib (z) set_property(TARGET PostgreSQL::pq APPEND PROPERTY INTERFACE_LINK_LIBRARIES "m;z") endif() endif() set(PostgreSQL_LIBRARIES "PostgreSQL::pq" CACHE STRING "The PostgreSQL client library target.") cmake/findSQLite3.cmake +20 −67 Original line number Diff line number Diff line # sqlite3-config.cmake # Unterstützt find_package(SQLite3) ohne REQUIRED-Flag. # -------------------------------------------------------------------------- # 1. Definieren der Pfadvariablen (Pfadsuche und Fallbacks) # -------------------------------------------------------------------------- set(SQLITE3_FOUND FALSE) # Standardmäßig nicht gefunden # Definiere den Header-Namen für die Suche set(_SQLITE3_HEADER_FILE "sqlite3.h") # Definiere plattformspezifische Dateinamen für STATIC Libs (für die Prefix-Prüfung) if (WIN32) set(_SQLITE3_LIB_NAME_STATIC "sqlite3.lib") else() set(_SQLITE3_LIB_NAME_STATIC "libsqlite3.a") endif() if(DEFINED CMAKE_PREFIX_PATH) foreach(PREFIX_PATH ${CMAKE_PREFIX_PATH}) set(_POTENTIAL_INCLUDE_DIR "${PREFIX_PATH}/include") set(_POTENTIAL_LIB_FILE "${PREFIX_PATH}/lib/${_SQLITE3_LIB_NAME_STATIC}") # Verwende AND, um sicherzustellen, dass sowohl Header als auch Bibliothek existieren if (EXISTS "${_POTENTIAL_INCLUDE_DIR}/${_SQLITE3_HEADER_FILE}" AND EXISTS "${_POTENTIAL_LIB_FILE}") set(SQLITE3_ROOT "${PREFIX_PATH}") message(STATUS "sqlite3-config: Found SQLITE3_ROOT at ${SQLITE3_ROOT}") break() endif() endforeach() endif() if(NOT SQLITE3_ROOT) if(DEFINED CMAKE_INSTALL_PREFIX) set(SQLITE3_ROOT "${CMAKE_INSTALL_PREFIX}") # FIX: Füge den UNIX-Standardpfad-Fallback hinzu, um /usr/local/lib Fehler zu verhindern elseif(UNIX) set(SQLITE3_ROOT "/usr") else() get_filename_component(SQLITE3_ROOT "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE) endif() endif() # Setze den Include-Pfad set(SQLITE3_INCLUDE_DIR "${SQLITE3_ROOT}/include") set(SQLITE3_FOUND FALSE) # -------------------------------------------------------------------------- # 2. Bibliothek suchen und FOUND-Variable setzen (Multiarch- & Optional-Fix) # 1. Suche nach Header und Bibliothek # -------------------------------------------------------------------------- if (WIN32) set(SQLITE3_LIBRARY_DIR "${SQLITE3_ROOT}/lib") # Suche nach dem Header (lib/sqlite3.h oder include/sqlite3.h) find_path(SQLITE3_INCLUDE_DIRS NAMES sqlite3.h) # Prüfe die Existenz der Release-Bibliothek if (EXISTS "${SQLITE3_LIBRARY_DIR}/${_SQLITE3_LIB_NAME_STATIC}") set(SQLITE3_FOUND TRUE) endif() else() # Unix/Linux: find_library sucht nach libsqlite3.a und libsqlite3.so in Multiarch-Pfaden find_library(SQLITE3_LIBRARY NAMES sqlite3) # Suche nach der Bibliothek (libsqlite3.a/.so oder sqlite3.lib) find_library(SQLITE3_LIBRARIES NAMES sqlite3) if (SQLITE3_LIBRARY) # WICHTIG: Setze FOUND nur, wenn beides gefunden wurde if (SQLITE3_INCLUDE_DIRS AND SQLITE3_LIBRARIES) set(SQLITE3_FOUND TRUE) endif() endif() # -------------------------------------------------------------------------- # 3. Erstellen des Namespaced IMPORTED Targets (Nur wenn gefunden) # 2. Erstellen des Namespaced IMPORTED Targets (Nur wenn gefunden) # -------------------------------------------------------------------------- if (NOT TARGET sqlite3::sqlite3 AND SQLITE3_FOUND) Loading @@ -77,24 +29,25 @@ if (NOT TARGET sqlite3::sqlite3 AND SQLITE3_FOUND) set_target_properties(sqlite3::sqlite3 PROPERTIES IMPORTED_CONFIGURATIONS "Release;Debug" INTERFACE_INCLUDE_DIRECTORIES "${SQLITE3_INCLUDE_DIR}" INTERFACE_INCLUDE_DIRECTORIES "${SQLITE3_INCLUDE_DIRS}" # SQLite3 benötigt oft keinen expliziten Bibliothekspfad, aber wir setzen den Pfad zur gefundenen Datei ) # --- Windows Implementierung (.lib) --- if (WIN32) # Annahme: Debug-Bibliothek heißt sqlite3d.lib # Windows (.lib) set_target_properties(sqlite3::sqlite3 PROPERTIES IMPORTED_LOCATION_RELEASE "${SQLITE3_LIBRARY_DIR}/${_SQLITE3_LIB_NAME_STATIC}" IMPORTED_LOCATION_DEBUG "${SQLITE3_LIBRARY_DIR}/sqlite3d.lib" IMPORTED_LOCATION_RELEASE "${SQLITE3_LIBRARIES}" # Annahme für Debug-Namen: muss ggf. angepasst werden IMPORTED_LOCATION_DEBUG "${SQLITE3_LIBRARIES}d" ) # --- Linux/Unix Implementierung (.a/.so) --- else() # NUTZT den von find_library gefundenen ABSOLUTEN PFAD # Linux/Unix (.a/.so) set_target_properties(sqlite3::sqlite3 PROPERTIES IMPORTED_LOCATION_RELEASE "${SQLITE3_LIBRARY}" IMPORTED_LOCATION_DEBUG "${SQLITE3_LIBRARY}" IMPORTED_LOCATION_RELEASE "${SQLITE3_LIBRARIES}" IMPORTED_LOCATION_DEBUG "${SQLITE3_LIBRARIES}" ) endif() endif() # Setze die CMAKE-Standardvariable für Legacy-Kompatibilität set(SQLITE3_LIBRARIES "sqlite3::sqlite3" CACHE STRING "The SQLITE3 library target.") Loading
cmake/findPostgreSQL.cmake +34 −74 Original line number Diff line number Diff line # postgresql-config.cmake # Unterstützt find_package(PostgreSQL) ohne REQUIRED-Flag. # -------------------------------------------------------------------------- # 1. Definieren der Pfadvariablen (Pfadsuche und Fallbacks) # -------------------------------------------------------------------------- set(POSTGRESQL_FOUND FALSE) # Standardmäßig nicht gefunden # Definiere den Header-Namen für die Suche set(_POSTGRESQL_HEADER_FILE "libpq-fe.h") # Definiere plattformspezifische Dateinamen (libpq ist oft shared) if (WIN32) set(_POSTGRESQL_LIB_NAME_SHARED "libpq.dll") set(_POSTGRESQL_IMPLIB_NAME "libpq.lib") else() # Auf Unix wird find_library verwendet, der Name ist nur für die Prefix-Prüfung set(_POSTGRESQL_LIB_NAME_SHARED "libpq.so") endif() if(DEFINED CMAKE_PREFIX_PATH) foreach(PREFIX_PATH ${CMAKE_PREFIX_PATH}) set(_POTENTIAL_INCLUDE_DIR "${PREFIX_PATH}/include") # Prüfe auf den Include-Pfad (der Header ist entscheidend) if (EXISTS "${_POTENTIAL_INCLUDE_DIR}/${_POSTGRESQL_HEADER_FILE}") set(POSTGRESQL_ROOT "${PREFIX_PATH}") message(STATUS "postgresql-config: Found POSTGRESQL_ROOT at ${POSTGRESQL_ROOT}") break() endif() endforeach() endif() if(NOT POSTGRESQL_ROOT) if(DEFINED CMAKE_INSTALL_PREFIX) set(POSTGRESQL_ROOT "${CMAKE_INSTALL_PREFIX}") # FIX: Füge den UNIX-Standardpfad-Fallback hinzu elseif(UNIX) set(POSTGRESQL_ROOT "/usr") else() get_filename_component(POSTGRESQL_ROOT "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE) endif() endif() # Setze den Include-Pfad (libpq Header sind direkt unter include/) set(POSTGRESQL_INCLUDE_DIR "${POSTGRESQL_ROOT}/include") set(POSTGRESQL_FOUND FALSE) # -------------------------------------------------------------------------- # 2. Bibliothek suchen und FOUND-Variable setzen (Multiarch- & Optional-Fix) # 1. Suche nach Header und Bibliothek # -------------------------------------------------------------------------- if (WIN32) set(POSTGRESQL_LIBRARY_DIR "${POSTGRESQL_ROOT}/lib") # Suche nach dem Haupt-Header find_path(POSTGRESQL_INCLUDE_DIRS NAMES libpq-fe.h) # Prüfe die Existenz der Import Library if (EXISTS "${POSTGRESQL_LIBRARY_DIR}/${_POSTGRESQL_IMPLIB_NAME}") set(POSTGRESQL_FOUND TRUE) endif() else() # Unix/Linux: find_library sucht nach libpq.so (Multiarch-kompatibel) # Verwende 'pq' als Namen, um die Suche zu vereinfachen find_library(POSTGRESQL_LIBRARY NAMES pq) # Suche nach der Bibliothek (PostgreSQL Client Library ist "pq") # CMake findet automatisch .so auf Unix oder .lib auf Windows find_library(POSTGRESQL_LIBRARIES NAMES pq) if (POSTGRESQL_LIBRARY) # WICHTIG: Setze FOUND nur, wenn beides gefunden wurde if (POSTGRESQL_INCLUDE_DIRS AND POSTGRESQL_LIBRARIES) set(POSTGRESQL_FOUND TRUE) endif() endif() # -------------------------------------------------------------------------- # 3. Erstellen des Namespaced IMPORTED Targets (Nur wenn gefunden) # 2. Erstellen des Namespaced IMPORTED Targets (Nur wenn gefunden) # -------------------------------------------------------------------------- if (NOT TARGET PostgreSQL::pq AND POSTGRESQL_FOUND) # UNKNOWN erlaubt SHARED/STATIC/etc., ist aber hier nicht streng notwendig # Wir nehmen SHARED an, da libpq fast immer shared ist. add_library(PostgreSQL::pq SHARED IMPORTED) set_target_properties(PostgreSQL::pq PROPERTIES IMPORTED_CONFIGURATIONS "Release;Debug" INTERFACE_INCLUDE_DIRECTORIES "${POSTGRESQL_INCLUDE_DIR}" INTERFACE_INCLUDE_DIRECTORIES "${POSTGRESQL_INCLUDE_DIRS}" ) # --- Windows Implementierung (.dll/.lib) --- if (WIN32) # Annahme: DLL und LIB liegen im selben Verzeichnis (Standard bei VCPKG/Installer) # Windows-Implementierung (Hier muss der Pfad oft manuell zwischen DLL und LIB unterschieden werden) # 1. Ermittle das Verzeichnis der gefundenen Import Library (.lib) get_filename_component(_POSTGRESQL_LIB_DIR "${POSTGRESQL_LIBRARIES}" DIRECTORY) # 2. Rate den Pfad zur DLL (typisch ist der gleiche Ordner) # Dies ist ein Ratversuch und kann fehlschlagen, wenn das Layout nicht Standard ist. set(_POSTGRESQL_DLL_PATH "${_POSTGRESQL_LIB_DIR}/libpq.dll") set_target_properties(PostgreSQL::pq PROPERTIES IMPORTED_IMPLIB_RELEASE "${POSTGRESQL_LIBRARY_DIR}/${_POSTGRESQL_IMPLIB_NAME}" IMPORTED_LOCATION_RELEASE "${POSTGRESQL_LIBRARY_DIR}/${_POSTGRESQL_LIB_NAME_SHARED}" # Implizite Annahme für Debug-Namen IMPORTED_IMPLIB_DEBUG "${POSTGRESQL_LIBRARY_DIR}/libpqd.lib" IMPORTED_LOCATION_DEBUG "${POSTGRESQL_LIBRARY_DIR}/libpqd.dll" IMPORTED_IMPLIB_RELEASE "${POSTGRESQL_LIBRARIES}" # Die gefundene .lib IMPORTED_LOCATION_RELEASE "${_POSTGRESQL_DLL_PATH}" # Die geratene .dll # Annahmen für Debug IMPORTED_IMPLIB_DEBUG "${_POSTGRESQL_LIB_DIR}/libpqd.lib" IMPORTED_LOCATION_DEBUG "${_POSTGRESQL_LIB_DIR}/libpqd.dll" ) # --- Linux/Unix Implementierung (.so) --- else() # NUTZT den von find_library gefundenen ABSOLUTEN PFAD # Linux/Unix Implementierung (.so oder .a) set_target_properties(PostgreSQL::pq PROPERTIES IMPORTED_LOCATION_RELEASE "${POSTGRESQL_LIBRARY}" IMPORTED_LOCATION_DEBUG "${POSTGRESQL_LIBRARY}" IMPORTED_LOCATION_RELEASE "${POSTGRESQL_LIBRARIES}" IMPORTED_LOCATION_DEBUG "${POSTGRESQL_LIBRARIES}" ) # libpq benötigt oft math (m) und zlib (z) set_property(TARGET PostgreSQL::pq APPEND PROPERTY INTERFACE_LINK_LIBRARIES "m;z") endif() endif() set(PostgreSQL_LIBRARIES "PostgreSQL::pq" CACHE STRING "The PostgreSQL client library target.")
cmake/findSQLite3.cmake +20 −67 Original line number Diff line number Diff line # sqlite3-config.cmake # Unterstützt find_package(SQLite3) ohne REQUIRED-Flag. # -------------------------------------------------------------------------- # 1. Definieren der Pfadvariablen (Pfadsuche und Fallbacks) # -------------------------------------------------------------------------- set(SQLITE3_FOUND FALSE) # Standardmäßig nicht gefunden # Definiere den Header-Namen für die Suche set(_SQLITE3_HEADER_FILE "sqlite3.h") # Definiere plattformspezifische Dateinamen für STATIC Libs (für die Prefix-Prüfung) if (WIN32) set(_SQLITE3_LIB_NAME_STATIC "sqlite3.lib") else() set(_SQLITE3_LIB_NAME_STATIC "libsqlite3.a") endif() if(DEFINED CMAKE_PREFIX_PATH) foreach(PREFIX_PATH ${CMAKE_PREFIX_PATH}) set(_POTENTIAL_INCLUDE_DIR "${PREFIX_PATH}/include") set(_POTENTIAL_LIB_FILE "${PREFIX_PATH}/lib/${_SQLITE3_LIB_NAME_STATIC}") # Verwende AND, um sicherzustellen, dass sowohl Header als auch Bibliothek existieren if (EXISTS "${_POTENTIAL_INCLUDE_DIR}/${_SQLITE3_HEADER_FILE}" AND EXISTS "${_POTENTIAL_LIB_FILE}") set(SQLITE3_ROOT "${PREFIX_PATH}") message(STATUS "sqlite3-config: Found SQLITE3_ROOT at ${SQLITE3_ROOT}") break() endif() endforeach() endif() if(NOT SQLITE3_ROOT) if(DEFINED CMAKE_INSTALL_PREFIX) set(SQLITE3_ROOT "${CMAKE_INSTALL_PREFIX}") # FIX: Füge den UNIX-Standardpfad-Fallback hinzu, um /usr/local/lib Fehler zu verhindern elseif(UNIX) set(SQLITE3_ROOT "/usr") else() get_filename_component(SQLITE3_ROOT "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE) endif() endif() # Setze den Include-Pfad set(SQLITE3_INCLUDE_DIR "${SQLITE3_ROOT}/include") set(SQLITE3_FOUND FALSE) # -------------------------------------------------------------------------- # 2. Bibliothek suchen und FOUND-Variable setzen (Multiarch- & Optional-Fix) # 1. Suche nach Header und Bibliothek # -------------------------------------------------------------------------- if (WIN32) set(SQLITE3_LIBRARY_DIR "${SQLITE3_ROOT}/lib") # Suche nach dem Header (lib/sqlite3.h oder include/sqlite3.h) find_path(SQLITE3_INCLUDE_DIRS NAMES sqlite3.h) # Prüfe die Existenz der Release-Bibliothek if (EXISTS "${SQLITE3_LIBRARY_DIR}/${_SQLITE3_LIB_NAME_STATIC}") set(SQLITE3_FOUND TRUE) endif() else() # Unix/Linux: find_library sucht nach libsqlite3.a und libsqlite3.so in Multiarch-Pfaden find_library(SQLITE3_LIBRARY NAMES sqlite3) # Suche nach der Bibliothek (libsqlite3.a/.so oder sqlite3.lib) find_library(SQLITE3_LIBRARIES NAMES sqlite3) if (SQLITE3_LIBRARY) # WICHTIG: Setze FOUND nur, wenn beides gefunden wurde if (SQLITE3_INCLUDE_DIRS AND SQLITE3_LIBRARIES) set(SQLITE3_FOUND TRUE) endif() endif() # -------------------------------------------------------------------------- # 3. Erstellen des Namespaced IMPORTED Targets (Nur wenn gefunden) # 2. Erstellen des Namespaced IMPORTED Targets (Nur wenn gefunden) # -------------------------------------------------------------------------- if (NOT TARGET sqlite3::sqlite3 AND SQLITE3_FOUND) Loading @@ -77,24 +29,25 @@ if (NOT TARGET sqlite3::sqlite3 AND SQLITE3_FOUND) set_target_properties(sqlite3::sqlite3 PROPERTIES IMPORTED_CONFIGURATIONS "Release;Debug" INTERFACE_INCLUDE_DIRECTORIES "${SQLITE3_INCLUDE_DIR}" INTERFACE_INCLUDE_DIRECTORIES "${SQLITE3_INCLUDE_DIRS}" # SQLite3 benötigt oft keinen expliziten Bibliothekspfad, aber wir setzen den Pfad zur gefundenen Datei ) # --- Windows Implementierung (.lib) --- if (WIN32) # Annahme: Debug-Bibliothek heißt sqlite3d.lib # Windows (.lib) set_target_properties(sqlite3::sqlite3 PROPERTIES IMPORTED_LOCATION_RELEASE "${SQLITE3_LIBRARY_DIR}/${_SQLITE3_LIB_NAME_STATIC}" IMPORTED_LOCATION_DEBUG "${SQLITE3_LIBRARY_DIR}/sqlite3d.lib" IMPORTED_LOCATION_RELEASE "${SQLITE3_LIBRARIES}" # Annahme für Debug-Namen: muss ggf. angepasst werden IMPORTED_LOCATION_DEBUG "${SQLITE3_LIBRARIES}d" ) # --- Linux/Unix Implementierung (.a/.so) --- else() # NUTZT den von find_library gefundenen ABSOLUTEN PFAD # Linux/Unix (.a/.so) set_target_properties(sqlite3::sqlite3 PROPERTIES IMPORTED_LOCATION_RELEASE "${SQLITE3_LIBRARY}" IMPORTED_LOCATION_DEBUG "${SQLITE3_LIBRARY}" IMPORTED_LOCATION_RELEASE "${SQLITE3_LIBRARIES}" IMPORTED_LOCATION_DEBUG "${SQLITE3_LIBRARIES}" ) endif() endif() # Setze die CMAKE-Standardvariable für Legacy-Kompatibilität set(SQLITE3_LIBRARIES "sqlite3::sqlite3" CACHE STRING "The SQLITE3 library target.")