2024-08-16 21:35:12 +02:00
|
|
|
cmake_minimum_required(VERSION 3.21)
|
|
|
|
project(mirai LANGUAGES CXX)
|
2024-04-10 16:53:18 +02:00
|
|
|
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
2024-04-13 11:47:52 +02:00
|
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
set(CMAKE_COMPILE_WARNING_AS_ERROR ON)
|
2024-08-16 21:35:12 +02:00
|
|
|
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
|
2024-05-23 16:50:37 +02:00
|
|
|
|
2024-04-19 13:52:17 +02:00
|
|
|
add_library(mirai-core
|
2024-08-16 21:35:12 +02:00
|
|
|
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
|
2024-04-19 13:52:17 +02:00
|
|
|
)
|
|
|
|
|
2024-08-16 21:35:12 +02:00
|
|
|
target_include_directories(mirai-core PRIVATE "lib")
|
2024-04-10 16:53:18 +02:00
|
|
|
|
2024-08-16 21:35:12 +02:00
|
|
|
add_executable(mirai
|
|
|
|
src/main.cpp
|
|
|
|
src/UiState.cpp
|
|
|
|
src/Utils.cpp
|
2024-05-23 16:50:37 +02:00
|
|
|
)
|
|
|
|
|
2024-08-16 21:35:12 +02:00
|
|
|
set_property(TARGET mirai PROPERTY SLINT_EMBED_RESOURCES embed-files)
|
2024-05-23 16:50:37 +02:00
|
|
|
|
2024-08-16 21:35:12 +02:00
|
|
|
target_link_libraries(mirai PRIVATE Slint::Slint)
|
2024-04-10 16:53:18 +02:00
|
|
|
|
2024-08-16 21:35:12 +02:00
|
|
|
target_include_directories(mirai PRIVATE "lib")
|
2024-04-19 13:52:17 +02:00
|
|
|
target_link_libraries(mirai PRIVATE mirai-core)
|
|
|
|
|
2024-08-16 21:35:12 +02:00
|
|
|
slint_target_sources(
|
|
|
|
mirai ui/appwindow.slint
|
|
|
|
LIBRARY_PATHS vynui=${CMAKE_CURRENT_SOURCE_DIR}/lib/slint-vynui/index.slint
|
2024-05-09 14:39:10 +02:00
|
|
|
)
|
2024-08-16 21:35:12 +02:00
|
|
|
|
|
|
|
# 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 $<TARGET_RUNTIME_DLLS:mirai> $<TARGET_FILE_DIR:mirai> COMMAND_EXPAND_LISTS)
|
|
|
|
endif()
|