cmake_minimum_required(VERSION 3.21) project(mirai LANGUAGES CXX) set(CMAKE_CXX_STANDARD 20) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_COMPILE_WARNING_AS_ERROR ON) set(CMAKE_BUILD_RPATH_USE_ORIGIN ON) # -- Slint setup find_package(Slint QUIET) if (NOT Slint_FOUND) message("Slint could not be located in the CMake module search path. Downloading it from Git and building it locally") include(FetchContent) FetchContent_Declare( Slint GIT_REPOSITORY https://github.com/slint-ui/slint.git # `release/1` will auto-upgrade to the latest Slint >= 1.0.0 and < 2.0.0 # `release/1.0` will auto-upgrade to the latest Slint >= 1.0.0 and < 1.1.0 GIT_TAG release/1 SOURCE_SUBDIR api/cpp ) FetchContent_MakeAvailable(Slint) endif (NOT Slint_FOUND) # -- End of Slint setup add_library(mirai-core lib/mirai-core/Mirai.h lib/mirai-core/Mirai.cpp lib/mirai-core/Config.h lib/mirai-core/Config.cpp lib/mirai-core/TaskItem.h lib/mirai-core/TaskItem.cpp lib/mirai-core/Day.h lib/mirai-core/Day.cpp lib/mirai-core/Event.h lib/mirai-core/Event.cpp lib/mirai-core/DateTime.h lib/mirai-core/DateTime.cpp lib/mirai-core/EventEmitter.h lib/mirai-core/EventEmitter.cpp lib/mirai-core/BaseResource.h lib/mirai-core/BaseResource.cpp lib/mirai-core/BaseFileResource.h lib/mirai-core/StdFileResource.h lib/mirai-core/TasksView.h lib/mirai-core/TasksView.cpp lib/mirai-core/TodoMd.h lib/mirai-core/TodoMd.cpp lib/mirai-core/utils.h lib/mirai-core/utils.cpp ) target_include_directories(mirai-core PRIVATE "lib") add_executable(mirai src/main.cpp src/UiState.cpp src/Utils.cpp ) set_property(TARGET mirai PROPERTY SLINT_EMBED_RESOURCES embed-files) target_link_libraries(mirai PRIVATE Slint::Slint) target_include_directories(mirai PRIVATE "lib") target_link_libraries(mirai PRIVATE mirai-core) slint_target_sources( mirai ui/appwindow.slint LIBRARY_PATHS vynui=${CMAKE_CURRENT_SOURCE_DIR}/lib/slint-vynui/index.slint ) # On Windows, copy the Slint DLL next to the application binary so that it's found. if (WIN32) add_custom_command(TARGET mirai POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $ $ COMMAND_EXPAND_LISTS) endif()