Commit 984e95c9 authored by jan.koester's avatar jan.koester
Browse files

test

parent b7f63fb3
Loading
Loading
Loading
Loading
+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)
@@ -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}"