# SQLite3: use system library on Linux, vendored amalgamation on Windows cross-compile find_package(SQLite3 QUIET) if(NOT SQLite3_FOUND) # Build from amalgamation set(SQLITE3_AMALG_DIR ${CMAKE_SOURCE_DIR}/vendor/sqlite3) add_library(sqlite3_vendored STATIC ${SQLITE3_AMALG_DIR}/sqlite3.c) target_include_directories(sqlite3_vendored PUBLIC ${SQLITE3_AMALG_DIR}) target_compile_definitions(sqlite3_vendored PRIVATE SQLITE_THREADSAFE=1 SQLITE_ENABLE_FTS5 SQLITE_ENABLE_JSON1 ) # Alias so we can use the same target name add_library(SQLite::SQLite3 ALIAS sqlite3_vendored) endif() add_imgui_app(registry_dashboard main.cpp data.cpp data_http.cpp views.cpp ${CMAKE_SOURCE_DIR}/functions/viz/kpi_card.cpp ${CMAKE_SOURCE_DIR}/functions/viz/bar_chart.cpp ${CMAKE_SOURCE_DIR}/functions/viz/pie_chart.cpp ${CMAKE_SOURCE_DIR}/functions/viz/table_view.cpp ${CMAKE_SOURCE_DIR}/functions/viz/sparkline.cpp ${CMAKE_SOURCE_DIR}/functions/core/dashboard_panel.cpp ${CMAKE_SOURCE_DIR}/functions/core/dashboard_grid.cpp ${CMAKE_SOURCE_DIR}/functions/core/fps_overlay.cpp ${CMAKE_SOURCE_DIR}/functions/core/fullscreen_window.cpp ) target_include_directories(registry_dashboard PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/vendor ) target_link_libraries(registry_dashboard PRIVATE SQLite::SQLite3) # cpp-httplib needs threads on Linux if(UNIX) find_package(Threads REQUIRED) target_link_libraries(registry_dashboard PRIVATE Threads::Threads) endif() # On Windows cross-compile, link ws2_32 for sockets if(WIN32) target_link_libraries(registry_dashboard PRIVATE ws2_32) endif()