diff --git a/.gitmodules b/.gitmodules index f26c2ff..15be7e6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -13,6 +13,3 @@ [submodule "external/rei-json"] path = external/rei-json url = https://codeberg.org/vyn/rei-json.git -[submodule "external/mirai-core/external/rei-json"] - path = external/mirai-core/external/rei-json - url = https://codeberg.org/vyn/rei-json.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 4792b18..b8f9f38 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,44 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON) #set(CMAKE_COMPILE_WARNING_AS_ERROR ON) set(CMAKE_BUILD_RPATH_USE_ORIGIN ON) +add_executable(mirai + src/main.cpp + src/windows/AppWindow/AppWindow.cpp + src/SeleniteSetup.cpp + src/shared/Utils.cpp +) + +# configure dependency: evalyte-cpp-common +add_subdirectory(external/evalyte-cpp-common) +target_include_directories(mirai PRIVATE "external/evalyte-cpp-common/include") +target_link_libraries(mirai PRIVATE evalyte-cpp-common) + +# configure dependency: rei-json +# required by mirai-core, selenite +add_subdirectory(external/rei-json) +target_include_directories(mirai PRIVATE "external/rei-json/include") +target_link_libraries(mirai PRIVATE rei-json) + +# configure dependency: selenite +add_subdirectory(external/selenite/cpp) +target_include_directories(mirai PRIVATE "external/selenite/cpp/include") +target_link_libraries(mirai PRIVATE selenite) + +# configure dependency: mirai-core +add_subdirectory(external/mirai-core) +target_include_directories(mirai PRIVATE "external/mirai-core/include") +target_link_libraries(mirai PRIVATE mirai-core) + +# configure dependency: slint +add_subdirectory(external/slint) +set_property(TARGET mirai PROPERTY SLINT_EMBED_RESOURCES embed-files) +target_link_libraries(mirai PRIVATE Slint::Slint) +slint_target_sources( + mirai src/ui.slint + NAMESPACE ui + LIBRARY_PATHS selenite=${CMAKE_CURRENT_SOURCE_DIR}/external/selenite/components/index.slint +) + # -- Slint setup #find_package(Slint QUIET) #if (NOT Slint_FOUND) @@ -23,41 +61,6 @@ set(CMAKE_BUILD_RPATH_USE_ORIGIN ON) #endif (NOT Slint_FOUND) # -- End of Slint setup -add_subdirectory(external/slint) -add_subdirectory(external/selenite/cpp) -add_subdirectory(external/mirai-core) -add_subdirectory(external/evalyte-cpp-common) - -add_executable(mirai - src/main.cpp - src/windows/AppWindow/AppWindow.cpp - src/SeleniteSetup.cpp - src/shared/Utils.cpp -) - -target_include_directories(mirai PRIVATE "external/mirai-core/include") -target_include_directories(mirai PRIVATE "external/selenite/cpp/include") -target_include_directories(mirai PRIVATE "external/evalyte-cpp-common/include") - -set_property(TARGET mirai PROPERTY SLINT_EMBED_RESOURCES embed-files) - -target_link_libraries(mirai PRIVATE Slint::Slint) -target_link_libraries(mirai PRIVATE selenite) -target_link_libraries(mirai PRIVATE evalyte-cpp-common) - -target_include_directories(mirai PRIVATE "external") -target_link_libraries(mirai PRIVATE mirai-core) - -add_subdirectory(external/rei-json) -target_include_directories(mirai PRIVATE "external/rei-json/include") -target_link_libraries(mirai PRIVATE rei-json) - -slint_target_sources( - mirai src/ui.slint - NAMESPACE ui - LIBRARY_PATHS selenite=${CMAKE_CURRENT_SOURCE_DIR}/external/selenite/components/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) diff --git a/external/mirai-core/CMakeLists.txt b/external/mirai-core/CMakeLists.txt index 4143eb7..7c46053 100644 --- a/external/mirai-core/CMakeLists.txt +++ b/external/mirai-core/CMakeLists.txt @@ -20,6 +20,10 @@ add_library(mirai-core target_include_directories(mirai-core PRIVATE "external") target_include_directories(mirai-core PRIVATE "include/mirai-core") -add_subdirectory(external/rei-json) -target_include_directories(mirai-core PRIVATE "external/rei-json/include") +# rei-json +if (NOT TARGET rei-json) + message(FATAL_ERROR "rei-json lib is required") +endif() +get_target_property(rei-json-includes rei-json INTERFACE_INCLUDE_DIRECTORIES) +target_include_directories(mirai-core PRIVATE ${rei-json-includes}) target_link_libraries(mirai-core PRIVATE rei-json) diff --git a/external/mirai-core/external/rei-json b/external/mirai-core/external/rei-json deleted file mode 160000 index 63e7986..0000000 --- a/external/mirai-core/external/rei-json +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 63e7986b0901449657c3874ed7b19618315e9f01 diff --git a/external/rei-json b/external/rei-json index 63e7986..4fec38a 160000 --- a/external/rei-json +++ b/external/rei-json @@ -1 +1 @@ -Subproject commit 63e7986b0901449657c3874ed7b19618315e9f01 +Subproject commit 4fec38aa0e151efbdf3eb5d96a0e34cc9aec4fb2 diff --git a/external/selenite b/external/selenite index 0fa6be0..ee66122 160000 --- a/external/selenite +++ b/external/selenite @@ -1 +1 @@ -Subproject commit 0fa6be0b1abe9534a8a1252496b7c97219c1559e +Subproject commit ee661221544c754f96c586db9b4b45ae777ec4bc