AutoCatGnome/CMakeLists.txt

100 lines
3.2 KiB
CMake

cmake_minimum_required(VERSION 3.0)
project(autocat_gnome)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(APPLE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fcoroutines-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)
set(FOLLY_DEP folly)
include(FetchContent)
FetchContent_Declare(
folly
GIT_REPOSITORY https://github.com/facebook/folly.git
GIT_TAG v2022.05.16.00
)
FetchContent_MakeAvailable(folly)
else()
find_package(folly REQUIRED)
set(FOLLY_DEP Folly::folly)
endif()
find_package(PkgConfig REQUIRED)
find_package(nlohmann_json 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)
target_link_libraries(autocat_gnome ${GTK_LIBRARIES}
${GLIB_LIBRARIES}
${LIBSOUP_LIBRARIES}
${LIBADWAITA_LIBRARIES}
${LIBSIGCPP_LIBRARIES}
nlohmann_json::nlohmann_json
${FOLLY_DEP})
set(XML gui/MainWindow.xml gui/AddNumberDialog.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})