include_guard(GLOBAL) set(renderive_dependencies global::GTest global::blend2d global::taskflow global::mpmcqueue ${Psc_Core_dependencies}) rcl_add_dependency_action_targets(renderive_env ${renderive_dependencies}) library_is_installed_with_rely(renderive_dependencies_installed ${renderive_dependencies}) if (NOT renderive_dependencies_installed) message(STATUS "renderive_Core 依赖未安装,请先构建 renderive_env 目标") return() else () find_package(Qt5 MODULE REQUIRED COMPONENTS Core Gui Widgets Svg Xml PrintSupport QuickWidgets Multimedia ) find_package(blend2d REQUIRED) find_package(GTest REQUIRED) find_package(Taskflow CONFIG REQUIRED) find_package(MPMCQueue CONFIG REQUIRED) set(renderive_private_libraries blend2d::blend2d GTest::GTest Taskflow::Taskflow MPMCQueue::MPMCQueue Psc_Core_Static ) set(qt_libraries Qt5::Widgets Qt5::Core Qt5::Svg Qt5::Xml Qt5::PrintSupport Qt5::Multimedia Qt5::QuickWidgets ) endif () set(root_dir ${CMAKE_CURRENT_LIST_DIR}) append_glob_source(kernel_srcs ${root_dir}/Kernel/src ${root_dir}/Kernel/tests) add_executable(Renderive_Kernel ${kernel_srcs} ) target_include_directories(Renderive_Kernel PUBLIC ${root_dir}/Kernel/src ) target_compile_definitions(Renderive_Kernel PUBLIC RENDERIVE_WITH_GTEST) target_link_libraries(Renderive_Kernel PUBLIC ${renderive_private_libraries}) append_glob_source(srcs ${root_dir}/Core) add_library(Renderive_Core STATIC ${srcs}) target_include_directories(Renderive_Core PUBLIC ${root_dir}) target_link_libraries(Renderive_Core PUBLIC ${renderive_private_libraries}) enable_testing() add_executable(Renderive_Core_Tests ${root_dir}/test/Renderive_Core_Tests.cpp ) target_link_libraries(Renderive_Core_Tests PRIVATE Renderive_Core GTest::GTest) add_test(NAME Renderive_Core_Tests COMMAND Renderive_Core_Tests) append_glob_source(src2 ${root_dir}/Qt) add_library(Renderive_Qt STATIC ${src2}) set_property(TARGET Renderive_Qt PROPERTY AUTOMOC ON) target_link_libraries(Renderive_Qt PUBLIC Renderive_Core) target_link_libraries(Renderive_Qt PUBLIC ${qt_libraries}) # 纯粹的Qt组件库 append_glob_source(Psc_Widget_src ${root_dir}/Widget) add_library(Psc_Widget STATIC ${Psc_Widget_src}) set_property(TARGET Psc_Widget PROPERTY AUTOMOC ON) set_property(TARGET Psc_Widget PROPERTY AUTORCC ON) target_link_libraries(Psc_Widget PUBLIC ${qt_libraries}) target_link_libraries(Psc_Widget PUBLIC Psc_Core_Static) # Demo 画廊 #append_glob_source(Demo_Gallery_src ${root_dir}/Demo_Gallery) #add_executable(Demo_Gallery ${Demo_Gallery_src}) #target_link_libraries(Demo_Gallery PUBLIC Renderive_Qt Psc_Widget)