Better dependencies management

This commit is contained in:
Vyn 2025-07-02 11:35:26 +02:00
parent 6fa94b279c
commit 4b2356facb
Signed by: vyn
GPG key ID: E1B2BE34E7A971E7
6 changed files with 46 additions and 43 deletions

View file

@ -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 $<TARGET_RUNTIME_DLLS:mirai> $<TARGET_FILE_DIR:mirai> COMMAND_EXPAND_LISTS)