83 lines
2.6 KiB
CMake
83 lines
2.6 KiB
CMake
cmake_minimum_required(VERSION 3.0)
|
|
project(autocat_gnome)
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fcoroutines")
|
|
#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")
|
|
endif()
|
|
|
|
find_package(PkgConfig REQUIRED)
|
|
find_package(nlohmann_json REQUIRED)
|
|
find_package(folly 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)
|
|
|
|
target_link_libraries(autocat_gnome ${GTK_LIBRARIES}
|
|
${GLIB_LIBRARIES}
|
|
${LIBSOUP_LIBRARIES}
|
|
${LIBADWAITA_LIBRARIES}
|
|
${LIBSIGCPP_LIBRARIES}
|
|
nlohmann_json::nlohmann_json
|
|
Folly::folly)
|
|
|
|
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})
|