Browse Source

Workaround for Coverity scan which failed to compile code with PCH.

Yao Wei Tjong 姚伟忠 10 years ago
parent
commit
9a198604a6
1 changed files with 9 additions and 3 deletions
  1. 9 3
      CMake/Modules/Urho3D-CMake-common.cmake

+ 9 - 3
CMake/Modules/Urho3D-CMake-common.cmake

@@ -664,14 +664,20 @@ macro (enable_pch HEADER_PATHNAME)
                     COMMENT "Precompiling header file '${HEADER_FILENAME}' for ${CONFIG} configuration")
             endforeach ()
             # Use the precompiled header file
-            if (NOT XCODE)
-                set (PCH_DIR ${CMAKE_CURRENT_BINARY_DIR}/)
+            if ($ENV{COVERITY_SCAN_BRANCH})
+                # Coverity scan does not support PCH so workaround by including the actual header file
+                set (ABS_PATH_PCH ${CMAKE_CURRENT_SOURCE_DIR}/${HEADER_PATHNAME})
+            else ()
+                if (NOT XCODE)
+                    set (PCH_DIR ${CMAKE_CURRENT_BINARY_DIR}/)
+                endif ()
+                set (ABS_PATH_PCH ${PCH_DIR}${HEADER_FILENAME})
             endif ()
             foreach (FILE ${SOURCE_FILES})
                 if (FILE MATCHES \\.cpp$)
                     get_property (NO_PCH SOURCE ${FILE} PROPERTY NO_PCH)
                     if (NOT NO_PCH)
-                        set_property (SOURCE ${FILE} APPEND_STRING PROPERTY COMPILE_FLAGS " -include ${PCH_DIR}${HEADER_FILENAME}")
+                        set_property (SOURCE ${FILE} APPEND_STRING PROPERTY COMPILE_FLAGS " -include ${ABS_PATH_PCH}")
                     endif ()
                 endif ()
             endforeach ()