wangwenx190 / framelesshelper

Project moved to: https://github.com/stdware/qwindowkit Cross-platform window customization framework for Qt Widgets and Qt Quick. Supports Windows, Linux and macOS.
MIT License
846 stars 202 forks source link

把Q_OBJECT包裹在其它宏里面后,qmake编译失败 #328

Open czyt1988 opened 10 months ago

czyt1988 commented 10 months ago

我看最新版把Q_OBJECT宏放到了FRAMELESSHELPER_QT_CLASS这些里面,cmake加入了

function(setup_custom_moc_macros)
    cmake_parse_arguments(arg "" "" "TARGETS" ${ARGN})
    if(arg_UNPARSED_ARGUMENTS)
        message(AUTHOR_WARNING "setup_custom_moc_macros: Unrecognized arguments: ${arg_UNPARSED_ARGUMENTS}")
    endif()
    foreach(__target ${arg_TARGETS})
        if(NOT TARGET ${__target})
            message(AUTHOR_WARNING "${__target} is not a valid CMake target!")
            continue()
        endif()
        set_property(TARGET ${__target} APPEND PROPERTY AUTOMOC_MACRO_NAMES "FRAMELESSHELPER_QT_CLASS;FRAMELESSHELPER_PUBLIC_QT_CLASS;FRAMELESSHELPER_PRIVATE_QT_CLASS")
    endforeach()
endfunction()

但qmake好像没有做相应处理,我用qmake编译发现没有进行moc,报了很多连接错误,qmake编译要如何解决?

czyt1988 commented 10 months ago

moc-does-not-run-if-q_object-macro-defined-in-another-macro

moc can't find Q_OBJECT if it's wrapped in another macro

Including-Q_OBJECT-in-another-macro