cmake_minimum_required(VERSION 3.16)
project(test_libs)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Force static linking
set(CMAKE_EXE_LINKER_FLAGS "-static -static-libgcc -static-libstdc++")
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")

# Find packages
find_package(PkgConfig REQUIRED)
find_package(fmt REQUIRED)
find_package(spdlog REQUIRED)
find_package(Threads REQUIRED)

# Find SQLite3 using pkg-config as fallback
pkg_check_modules(SQLite3 REQUIRED sqlite3)

# Add custom target to run cmake_prebuild.sh at the start of the build process
add_custom_target(run_prebuild_script ALL
    COMMAND ${CMAKE_COMMAND} -E echo "Running cmake_prebuild.sh..."
    COMMAND ${CMAKE_COMMAND} -E env bash ${CMAKE_CURRENT_SOURCE_DIR}/cmake_prebuild.sh
    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)


add_executable(test_libs test_libs.cpp)

target_link_libraries(test_libs 
    fmt::fmt
    spdlog::spdlog
    ${SQLite3_STATIC_LIBRARIES}
    Threads::Threads
    rt
)

target_include_directories(test_libs PRIVATE ${SQLite3_INCLUDE_DIRS})
target_compile_options(test_libs PRIVATE ${SQLite3_CFLAGS_OTHER})