From 410dd2c903c776feeeb7ffa80b66b5c7aa63d275 Mon Sep 17 00:00:00 2001 From: nds Date: Sun, 4 Mar 2018 10:33:10 +0300 Subject: [PATCH] 0029542: Coding - CMake compiler warnings in Inspector Avoid using CMAKE_AUTOMOC, collect header files with Q_OBJECT iterating through a project files. --- adm/cmake/occt_toolkit_tool.cmake | 12 +++++------- adm/cmake/qt_macro.cmake | 29 +++++++++++++++-------------- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/adm/cmake/occt_toolkit_tool.cmake b/adm/cmake/occt_toolkit_tool.cmake index b62d8052c5..3d297ee0a2 100644 --- a/adm/cmake/occt_toolkit_tool.cmake +++ b/adm/cmake/occt_toolkit_tool.cmake @@ -23,11 +23,6 @@ endif() SET (RCC_FILES) foreach (OCCT_PACKAGE ${USED_PACKAGES}) - file (STRINGS "${CMAKE_SOURCE_DIR}/${PACKAGE_PREFIX_DIR}/${OCCT_PACKAGE}/FILES" SOURCE_FILES_C REGEX ".+[.]c") - - #message("Sources are ${SOURCE_FILES_C}") - FIND_AND_WRAP_MOC_FILES("${SOURCE_FILES_C}") - #message("Dir is ${CMAKE_SOURCE_DIR}/${PACKAGE_PREFIX_DIR}/${OCCT_PACKAGE}/${OCCT_PACKAGE}.qrc") FIND_AND_WRAP_RESOURCE_FILE("${CMAKE_SOURCE_DIR}/${PACKAGE_PREFIX_DIR}/${OCCT_PACKAGE}/${OCCT_PACKAGE}.qrc" RCC_FILES) endforeach() @@ -177,13 +172,16 @@ if (NOT SINGLE_GENERATOR) OCCT_INSERT_CODE_FOR_TARGET () endif() +FIND_AND_WRAP_MOC_FILES("${USED_INCFILES}" "${PROJECT_NAME}_MOC_FILES") +#message("MOC files: ${${PROJECT_NAME}_MOC_FILES}") + if ("${PROJECT_NAME}" STREQUAL TInspectorEXE) - add_executable (${PROJECT_NAME} ${USED_SRCFILES} ${USED_INCFILES} ${USED_RCFILE} ${RCC_FILES}) + add_executable (${PROJECT_NAME} ${USED_SRCFILES} ${USED_INCFILES} ${USED_RCFILE} ${RCC_FILES} ${${PROJECT_NAME}_MOC_FILES}) install (TARGETS ${PROJECT_NAME} DESTINATION "${INSTALL_DIR_BIN}\${OCCT_INSTALL_BIN_LETTER}") else() - add_library (${PROJECT_NAME} ${USED_SRCFILES} ${USED_INCFILES} ${USED_RCFILE} ${RCC_FILES}) + add_library (${PROJECT_NAME} ${USED_SRCFILES} ${USED_INCFILES} ${USED_RCFILE} ${RCC_FILES} ${${PROJECT_NAME}_MOC_FILES}) if (MSVC) install (FILES ${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin\${OCCT_INSTALL_BIN_LETTER}/${PROJECT_NAME}.pdb diff --git a/adm/cmake/qt_macro.cmake b/adm/cmake/qt_macro.cmake index 89e9bc518b..5cdbe9cf26 100644 --- a/adm/cmake/qt_macro.cmake +++ b/adm/cmake/qt_macro.cmake @@ -37,20 +37,21 @@ macro (FIND_QT_PACKAGE PROJECT_LIBRARIES_DEBUG PROJECT_LIBRARIES_RELEASE PROJECT endmacro() -macro (FIND_AND_WRAP_MOC_FILES SOURCE_FILES) - - SET(CMAKE_AUTOMOC ON) - - foreach (FILE ${SOURCE_FILES}) - set (src_files ${src_files} ${FILE}) - unset (MOC_FILE) - if (${Qt5_FOUND}) - qt5_wrap_cpp(MOC_FILE ${FILE}) - else() - qt4_wrap_cpp(MOC_FILE ${FILE}) - endif() - #message (STATUS "... Info: next MOC file ${MOC_FILE}") - +macro (FIND_AND_WRAP_MOC_FILES HEADER_FILES GENERATED_MOC_FILES) + set (GENERATED_MOC_FILES "") + foreach (FILE ${HEADER_FILES}) + # processing only files where Q_OBJECT exists + file(STRINGS "${FILE}" LINES REGEX "Q_OBJECT") + if(LINES) + unset (MOC_FILE) + if (${Qt5_FOUND}) + qt5_wrap_cpp(MOC_FILE ${FILE}) + else() + qt4_wrap_cpp(MOC_FILE ${FILE}) + endif() + #message (STATUS "... Info: next MOC file ${MOC_FILE}") + list(APPEND ${GENERATED_MOC_FILES} ${MOC_FILE}) + endif(LINES) endforeach (FILE) endmacro()