107 lines
3.7 KiB
CMake
107 lines
3.7 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
project(autocat_gnome)
|
|
include(ExternalProject)
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
#if(APPLE)
|
|
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-coroutines-ts")
|
|
#endif()
|
|
|
|
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined -g -Og")
|
|
|
|
if(APPLE)
|
|
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/local/opt/libsoup@2/lib/pkgconfig:/usr/local/opt/icu4c/lib/pkgconfig")
|
|
set(OPENSSL_ROOT_DIR /usr/local/opt/openssl)
|
|
set(OPENSSL_LIBRARIES /usr/local/opt/openssl/lib)
|
|
endif()
|
|
|
|
find_package(PkgConfig REQUIRED)
|
|
find_package(nlohmann_json REQUIRED)
|
|
find_package(concurrencpp REQUIRED)
|
|
find_package(Threads REQUIRED)
|
|
find_package(SQLite3 REQUIRED)
|
|
find_package(fmt REQUIRED)
|
|
|
|
pkg_check_modules(GTK REQUIRED gtk4)
|
|
pkg_check_modules(GLIB REQUIRED glib-2.0)
|
|
pkg_check_modules(LIBSOUP REQUIRED libsoup-2.4)
|
|
pkg_check_modules(LIBADWAITA REQUIRED libadwaita-1)
|
|
pkg_check_modules(LIBSIGCPP REQUIRED sigc++-3.0)
|
|
|
|
include_directories(${GTK_INCLUDE_DIRS}
|
|
${GLIB_INCLUDE_DIRS}
|
|
${LIBSOUP_INCLUDE_DIRS}
|
|
${LIBADWAITA_INCLUDE_DIRS}
|
|
${LIBSIGCPP_INCLUDE_DIRS})
|
|
|
|
link_directories(${GTK_LIBRARY_DIRS}
|
|
${GLIB_LIBRARY_DIRS}
|
|
${LIBSOUP_LIBRARY_DIRS}
|
|
${LIBADWAITA_LIBRARY_DIRS}
|
|
${LIBSIGCPP_LIBRARY_DIRS})
|
|
|
|
add_executable(autocat_gnome main.cpp
|
|
gui/MainWindow.cpp
|
|
gui/MainWindow.h
|
|
gui/LoginWindow.cpp
|
|
gui/LoginWindow.h
|
|
services/Api.cpp
|
|
services/Api.h
|
|
models/User.cpp
|
|
models/User.h
|
|
services/Settings.cpp
|
|
services/Settings.h
|
|
coro/Coro.h
|
|
coro/GLibMainContextExecutor.cpp
|
|
coro/GLibMainContextExecutor.h
|
|
gtkpp/Application.cpp
|
|
gtkpp/Application.h
|
|
gtkpp/Window.cpp
|
|
gtkpp/Window.h
|
|
gtkpp/Box.cpp
|
|
gtkpp/Box.h
|
|
gtkpp/Widget.cpp
|
|
gtkpp/Widget.h
|
|
gtkpp/Entry.cpp
|
|
gtkpp/Entry.h
|
|
gtkpp/Button.cpp
|
|
gtkpp/Button.h
|
|
gtkpp/Spinner.cpp
|
|
gtkpp/Spinner.h
|
|
gtkpp/HeaderBar.cpp
|
|
gtkpp/HeaderBar.h
|
|
gtkpp/MessageDialog.cpp
|
|
gtkpp/MessageDialog.h
|
|
gtkpp/Leaflet.cpp
|
|
gtkpp/Leaflet.h
|
|
gtkpp/Dialog.cpp
|
|
gtkpp/Dialog.h
|
|
gui/AddNumberDialog.cpp
|
|
gui/AddNumberDialog.h
|
|
gui/custom/PlateView.h
|
|
gui/custom/PlateView.c
|
|
App.cpp
|
|
App.h
|
|
models/Vehicle.cpp
|
|
models/Vehicle.h services/Storage.cpp services/Storage.h models/Engine.cpp models/Engine.h services/IDBEntity.h models/JsonOptional.h services/IDBEntity.cpp gtkpp/ScrolledWindow.cpp gtkpp/ScrolledWindow.h gtkpp/ListView.cpp gtkpp/ListView.h gtkpp/SelectionModel.cpp gtkpp/SelectionModel.h gtkpp/ListItemFactory.cpp gtkpp/ListItemFactory.h models/VehiclesListFactory.cpp models/VehiclesListFactory.h gtkpp/Separator.cpp gtkpp/Separator.h)
|
|
|
|
target_link_libraries(autocat_gnome ${GTK_LIBRARIES}
|
|
${GLIB_LIBRARIES}
|
|
${LIBSOUP_LIBRARIES}
|
|
${LIBADWAITA_LIBRARIES}
|
|
${LIBSIGCPP_LIBRARIES}
|
|
nlohmann_json::nlohmann_json
|
|
concurrencpp::concurrencpp
|
|
Threads::Threads
|
|
SQLite::SQLite3
|
|
fmt::fmt)
|
|
|
|
set(XML gui/MainWindow.xml)
|
|
|
|
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/Modules")
|
|
include(GlibCompileResourcesSupport)
|
|
compile_gresources(RESOURCE_FILE XML_OUT TYPE BUNDLE RESOURCES ${XML} COMPRESS_ALL)
|
|
add_custom_target(resource ALL DEPENDS ${RESOURCE_FILE})
|