From 3650f5de98969f361db753633482cdc8bde693ea Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Thu, 20 Oct 2022 13:33:38 +0300 Subject: [PATCH] myx update --- cmake/myx/MyxCMakeConfigVersion.cmake | 2 +- cmake/myx/lib/AddInterfaceLibrary.cmake | 21 ++++++++++---------- cmake/myx/lib/Qt5TargetSetup.cmake | 6 +++++- cmake/myx/lib/generators/GitInfoHeader.cmake | 1 + cmake/myx/lib/uncrustify/Uncrustify.cmake | 2 +- cmake/myx_setup.cmake | 4 ++-- 6 files changed, 21 insertions(+), 15 deletions(-) diff --git a/cmake/myx/MyxCMakeConfigVersion.cmake b/cmake/myx/MyxCMakeConfigVersion.cmake index 06787d0..4d3862c 100644 --- a/cmake/myx/MyxCMakeConfigVersion.cmake +++ b/cmake/myx/MyxCMakeConfigVersion.cmake @@ -1,4 +1,4 @@ -set(MYX_CMAKE_PACKAGE_VERSION "2.0.31") +set(MYX_CMAKE_PACKAGE_VERSION "2.0.32") if(MYX_CMAKE_PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) set(PACKAGE_VERSION_COMPATIBLE FALSE) else() diff --git a/cmake/myx/lib/AddInterfaceLibrary.cmake b/cmake/myx/lib/AddInterfaceLibrary.cmake index cf8851e..da45c2e 100644 --- a/cmake/myx/lib/AddInterfaceLibrary.cmake +++ b/cmake/myx/lib/AddInterfaceLibrary.cmake @@ -50,8 +50,7 @@ function(myx_add_interface_library TARGET_NAME) # Вызов стандартной функции `add_library()` if(${CMAKE_VERSION} VERSION_LESS "3.19.0") add_library(${TARGET_NAME} INTERFACE) - # TODO - target_sources(${TARGET_NAME} INTERFACE ${ARG_HEADERS}) + target_sources(${TARGET_NAME} INTERFACE $) else() add_library(${TARGET_NAME} INTERFACE ${ARG_HEADERS}) endif() @@ -63,14 +62,16 @@ function(myx_add_interface_library TARGET_NAME) if(ARG_LINK_LIBRARIES) target_link_libraries(${TARGET_NAME} INTERFACE ${ARG_LINK_LIBRARIES}) - foreach(__lib ${ARG_LINK_LIBRARIES}) - if(TARGET ${__lib}) - install( - TARGETS ${__lib} - EXPORT ${TARGET_NAME}Targets - COMPONENT DEV) - endif() - endforeach() + if(${CMAKE_VERSION} VERSION_GREATER "3.15.0") + foreach(__lib ${ARG_LINK_LIBRARIES}) + if(TARGET ${__lib}) + install( + TARGETS ${__lib} + EXPORT ${TARGET_NAME}Targets + COMPONENT DEV) + endif() + endforeach() + endif() endif() # Библиотека, состоящая только из заголовочных файлов не требует сборки. diff --git a/cmake/myx/lib/Qt5TargetSetup.cmake b/cmake/myx/lib/Qt5TargetSetup.cmake index 2602c4d..efb3f36 100644 --- a/cmake/myx/lib/Qt5TargetSetup.cmake +++ b/cmake/myx/lib/Qt5TargetSetup.cmake @@ -87,7 +87,11 @@ function(myx_qt5_target_setup TARGET_NAME) target_sources(${TARGET_NAME} PRIVATE ${qrc_l10n}) endif() unset(tr) - target_sources(${TARGET_NAME} PRIVATE ${ARG_PUBLIC_MOC} ${ARG_PRIVATE_MOC} ${moc_cpp} ${ui_h} ${qrc_cpp}) + if(target_type STREQUAL "INTERFACE_LIBRARY") + target_sources(${TARGET_NAME} INTERFACE ${ARG_PUBLIC_MOC} ${ARG_PRIVATE_MOC} ${moc_cpp} ${ui_h} ${qrc_cpp}) + else() + target_sources(${TARGET_NAME} PRIVATE ${ARG_PUBLIC_MOC} ${ARG_PRIVATE_MOC} ${moc_cpp} ${ui_h} ${qrc_cpp}) + endif() # Установка публичных заголовочных файлов if(PROJECT_IS_TOP_LEVEL) diff --git a/cmake/myx/lib/generators/GitInfoHeader.cmake b/cmake/myx/lib/generators/GitInfoHeader.cmake index 5c4fa37..9fd35a3 100644 --- a/cmake/myx/lib/generators/GitInfoHeader.cmake +++ b/cmake/myx/lib/generators/GitInfoHeader.cmake @@ -52,4 +52,5 @@ function(myx_generate_git_info_header TARGET_NAME BASE_FILENAME) set_property(TARGET ${TARGET_NAME} APPEND PROPERTY PRIVATE_HEADER_FILES ${__filename}) target_sources(${TARGET_NAME} PRIVATE ${__filename}) + add_dependencies(${TARGET_NAME} ${TARGET_NAME}-git-info-header) endfunction() diff --git a/cmake/myx/lib/uncrustify/Uncrustify.cmake b/cmake/myx/lib/uncrustify/Uncrustify.cmake index 073ee21..6cbd896 100644 --- a/cmake/myx/lib/uncrustify/Uncrustify.cmake +++ b/cmake/myx/lib/uncrustify/Uncrustify.cmake @@ -47,7 +47,7 @@ function(myx_uncrustify TARGET_NAME) # Динамически сгенерированные файлы исключаются get_target_property(__target_type ${TARGET_NAME} TYPE) - if(${__target_type} STREQUAL "INTERFACE_LIBRARY") + if((${__target_type} STREQUAL "INTERFACE_LIBRARY") AND (${CMAKE_VERSION} VERSION_LESS "3.15.0")) get_target_property(__s1 ${TARGET_NAME} INTERFACE_SOURCES) if(__s1) list(APPEND __all_sources ${__s1}) diff --git a/cmake/myx_setup.cmake b/cmake/myx_setup.cmake index 0178b3c..8645d54 100644 --- a/cmake/myx_setup.cmake +++ b/cmake/myx_setup.cmake @@ -20,11 +20,11 @@ if(ENV{MYX_CMAKE_DIR}) set(MYX_CMAKE_DIR $ENV{MYX_CMAKE_DIR}) endif() if(MYX_CMAKE_DIR) - find_package(MyxCMake 2.0.31 REQUIRED CONFIG PATHS ${MYX_CMAKE_DIR} NO_DEFAULT_PATH) + find_package(MyxCMake 2.0.32 REQUIRED CONFIG PATHS ${MYX_CMAKE_DIR} NO_DEFAULT_PATH) myx_message_notice("=== MyxCMake directory: ${MyxCMake_CONFIG} ===") else() if(MYX_CMAKE_USE_SYSTEM) - find_package(MyxCMake 2.0.31 REQUIRED) + find_package(MyxCMake 2.0.32 REQUIRED) myx_message_notice("=== MyxCMake directory: ${MyxCMake_CONFIG} ===") else() include(${PROJECT_SOURCE_DIR}/cmake/myx/MyxCMakeConfig.cmake)