cmake: set CMAKE_AUTOUIC and CMAKE_AUTORCC to avoid CMP0071 warning

CMake 3.10 adds CMP0071 which results in warnings about applying AUTOMOC
and AUTOUIC on generated files. It somehow tries to do this for files
generated by QT5_ADD_RESOURCES and QT5_WRAP_UI.

As a workaround, just convert from the legacy macros to the new method.
Autogenerated ui_*.h and moc_*.h will now also be shown in the "External
Dependencies" tab in Visual Studio

Change-Id: I36df2212bbf0f938fcd4560000031b6137db93ca
Reviewed-on: https://code.wireshark.org/review/23917
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Roland Knall <rknall@gmail.com>
This commit is contained in:
Peter Wu 2017-10-14 23:40:30 +01:00 committed by Roland Knall
parent b85b946a94
commit dfa893b1cf
1 changed files with 27 additions and 11 deletions

View File

@ -556,14 +556,27 @@ include_directories(
SET(CMAKE_AUTOMOC TRUE)
if (QT_VERSION EQUAL 5)
QT5_ADD_TRANSLATION(WIRESHARK_QT_QM ${WIRESHARK_QT_TS})
QT5_ADD_RESOURCES(WIRESHARK_QT_QRC_SRC ${WIRESHARK_QT_QRC})
QT5_WRAP_UI(WIRESHARK_QT_UI_SRC ${WIRESHARK_QT_UI})
if(CMAKE_VERSION VERSION_LESS "3.0")
# AUTOUIC and AUTORCC are not supported in CMAKE 2.8.x
if (QT_VERSION EQUAL 5)
QT5_ADD_TRANSLATION(WIRESHARK_QT_QM ${WIRESHARK_QT_TS})
QT5_ADD_RESOURCES(WIRESHARK_QT_QRC_SRC ${WIRESHARK_QT_QRC})
QT5_WRAP_UI(WIRESHARK_QT_UI_SRC ${WIRESHARK_QT_UI})
else()
QT4_ADD_TRANSLATION(WIRESHARK_QT_QM ${WIRESHARK_QT_TS})
QT4_ADD_RESOURCES(WIRESHARK_QT_QRC_SRC ${WIRESHARK_QT_QRC})
QT4_WRAP_UI(WIRESHARK_QT_UI_SRC ${WIRESHARK_QT_UI})
endif()
else()
QT4_ADD_TRANSLATION(WIRESHARK_QT_QM ${WIRESHARK_QT_TS})
QT4_ADD_RESOURCES(WIRESHARK_QT_QRC_SRC ${WIRESHARK_QT_QRC})
QT4_WRAP_UI(WIRESHARK_QT_UI_SRC ${WIRESHARK_QT_UI})
SET(CMAKE_AUTOUIC TRUE)
SET(CMAKE_AUTORCC TRUE)
# Add .qrc files to library dependencies for AUTORCC.
set(WIRESHARK_QT_QRC_SRC ${WIRESHARK_QT_QRC})
if (QT_VERSION EQUAL 5)
QT5_ADD_TRANSLATION(WIRESHARK_QT_QM ${WIRESHARK_QT_TS})
else()
QT4_ADD_TRANSLATION(WIRESHARK_QT_QM ${WIRESHARK_QT_TS})
endif()
endif()
add_custom_target(
@ -586,10 +599,8 @@ register_tap_files(wireshark-tap-register.c
${WIRESHARK_QT_TAP_SRC}
)
source_group("ui\\moc Source Files" FILES ${WIRESHARK_QT_MOC_SRC})
source_group("ui\\Header" FILES ${WIRESHARK_QT_UI_SRC})
source_group("ui\\UIC Files" FILES ${WIRESHARK_QT_UI})
source_group("ui\\qrc" FILES ${WIRESHARK_QT_QRC_SRC} ${WIRESHARK_QT_QRC})
source_group("ui\\qrc" FILES ${WIRESHARK_QT_QRC})
source_group("ui\\Header" FILES ${WIRESHARK_QT_HEADERS})
source_group("ui\\Widget Header" FILES ${WIRESHARK_WIDGET_HEADERS})
source_group("ui\\Widget Source" FILES ${WIRESHARK_WIDGET_SRCS})
@ -612,7 +623,6 @@ add_library(qtui STATIC
${WIRESHARK_QT_TAP_SRC}
${WIRESHARK_QT_UI_SRC}
${WIRESHARK_QT_MOC_SRC}
${WIRESHARK_QT_QRC_SRC}
wireshark-tap-register.c
)
@ -621,6 +631,12 @@ set_target_properties(qtui PROPERTIES
LINK_FLAGS "${WS_LINK_FLAGS}"
FOLDER "UI"
)
if(NOT CMAKE_VERSION VERSION_LESS "3.0")
# Ensure .qm files are generated before autogenerating i18n.qrc
set_target_properties(qtui PROPERTIES
AUTOGEN_TARGET_DEPENDS "${WIRESHARK_QT_QM}"
)
endif()
#
# Editor modelines - http://www.wireshark.org/tools/modelines.html