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) 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})