65 lines
2.5 KiB
CMake
65 lines
2.5 KiB
CMake
include_guard(GLOBAL)
|
|
set(renderive_dependencies global::GTest global::blend2d global::taskflow global::mpmcqueue)
|
|
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 "Core 依赖未安装,请先构建 renderive_env 目标")
|
|
return()
|
|
else ()
|
|
set(Qt5_DIR "C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/lib/cmake/Qt5" CACHE PATH "Qt5 cmake config dir" FORCE)
|
|
find_package(Qt5 CONFIG 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(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)
|