0029542: Coding - CMake compiler warnings in Inspector
authornds <nds@opencascade.com>
Sun, 4 Mar 2018 07:33:10 +0000 (10:33 +0300)
committerbugmaster <bugmaster@opencascade.com>
Fri, 16 Mar 2018 11:56:12 +0000 (14:56 +0300)
Avoid using CMAKE_AUTOMOC, collect header files with Q_OBJECT iterating through a project files.

adm/cmake/occt_toolkit_tool.cmake
adm/cmake/qt_macro.cmake

index b62d805..3d297ee 100644 (file)
@@ -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
index 89e9bc5..5cdbe9c 100644 (file)
@@ -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()