From 79a17c3fb191dfa10a8822d61e907daef7630dcf Mon Sep 17 00:00:00 2001 From: Mentalflow <312902918@qq.com> Date: Tue, 2 Apr 2024 08:33:53 +0800 Subject: [PATCH] CMakeLists: Try to fix output problem. --- CMakeLists.txt | 9 ++++----- example/CMakeLists.txt | 25 ++++++++++++++++++++++--- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f13c8a0..97ac832 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,16 +10,15 @@ option(RIBBONUI_BUILD_EXAMPLES "Build RibbonUI APP." ON) option(RIBBONUI_BUILD_FRAMELESSHEPLER "Build FramelessHelper." ON) option(RIBBONUI_BUILD_STATIC_LIB "Build RibbonUI static library." OFF) -add_subdirectory(lib_source) +if(NOT RIBBONUI_QML_PLUGIN_DIRECTORY) + set(RIBBONUI_QML_PLUGIN_DIRECTORY ${QT_SDK_DIR}/qml/RibbonUI CACHE PATH "RibbonUI Plugin Path") +endif() if (RIBBONUI_BUILD_EXAMPLES) add_subdirectory(example) endif() -if(NOT RIBBONUI_QML_PLUGIN_DIRECTORY) - set(RIBBONUI_QML_PLUGIN_DIRECTORY ${QT_SDK_DIR}/qml/RibbonUI CACHE PATH "RibbonUI Plugin Path") -endif() - +add_subdirectory(lib_source) message("---------------------------- RibbonUI ----------------------------") message("Build RibbonUI APP: ${RIBBONUI_BUILD_EXAMPLES}") message("Build RibbonUI static library: ${RIBBONUI_BUILD_STATIC_LIB}") diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index 998eab1..204cf3e 100644 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -46,7 +46,7 @@ if (WIN32) ${app_icon_resource_windows} ) file(TO_CMAKE_PATH "/" PATH_SEPARATOR) - if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + if(MSVC) set(DLLPATH ${CMAKE_SOURCE_DIR}/3rdparty/msvc/*.dll) else() set(DLLPATH ${CMAKE_SOURCE_DIR}/3rdparty/mingw/*.dll) @@ -75,11 +75,11 @@ elseif(APPLE) ${sources_files} ${App_ICON} ) -else () +else() qt_add_executable(${PROJECT_NAME} ${sources_files} ) -endif () +endif() qt_add_qml_module(${PROJECT_NAME} URI ${PROJECT_NAME} @@ -103,6 +103,25 @@ if(RIBBONUI_BUILD_STATIC_LIB) target_compile_definitions(${PROJECT_NAME} PRIVATE RIBBONUI_BUILD_STATIC_LIB ) +else() + if(WIN32) + if (MINGW) + add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + "${RIBBONUI_QML_PLUGIN_DIRECTORY}/RibbonUI.dll" + ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) + else() + if (NOT RIBBONUI_BUILD_STATIC_LIB) + if (CMAKE_BUILD_TYPE MATCHES "Debug") + set(DEBUG_POSTFIX "d") + endif() + add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + "${RIBBONUI_QML_PLUGIN_DIRECTORY}/RibbonUI${DEBUG_POSTFIX}.dll" + ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) + endif() + endif() + endif() endif() target_link_libraries(${PROJECT_NAME} PRIVATE