[IE][VPU]: Fix behavior tests for MXpcie (#1879)
[platform/upstream/dldt.git] / inference-engine / thirdparty / CMakeLists.txt
index 8277d6c..9eba9a8 100644 (file)
@@ -1,34 +1,78 @@
-# Copyright (C) 2018 Intel Corporation
+# Copyright (C) 2018-2020 Intel Corporation
 # SPDX-License-Identifier: Apache-2.0
 #
 
 if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-warning-option -Wno-inconsistent-missing-override -Wno-pass-failed")
-  set(CMAKE_CC_FLAGS "${CMAKE_CC_FLAGS} -Wno-unknown-warning-option -Wno-inconsistent-missing-override -Wno-pass-failed")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=unknown-warning-option -Wno-error=inconsistent-missing-override -Wno-error=pass-failed")
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=unknown-warning-option -Wno-error=inconsistent-missing-override -Wno-error=pass-failed")
+elseif(CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 9.1)
+    # On g++ 9.3.0 (Ubuntu 20.04) the ADE library raises "redundant-move" warnings
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=redundant-move")
+    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=redundant-move")
+elseif(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") AND ("${MSVC_VERSION}" VERSION_GREATER_EQUAL "1920"))
+    # 1920 version of MSVC 2019
+    # This flagis needed for enabling SIMD vectorization with command '#pragma omp simd'.
+    # Compilation with '/openmp:experimental' key allow us to enable vectorizatikon capability in MSVC.
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /openmp:experimental")
 endif()
 
-add_subdirectory(pugixml)
-add_subdirectory(stb_lib)
-add_subdirectory(ade)
-
-if (ENABLE_CLDNN)
-    set(CLDNN__OUTPUT_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
-    set(CLDNN__INCLUDE_TESTS OFF CACHE BOOL "" FORCE)
-    set(CLDNN__INCLUDE_EXAMPLES OFF CACHE BOOL "" FORCE)
-    set(CLDNN__INCLUDE_TUTORIAL OFF CACHE BOOL "" FORCE)
-    if (WIN32)
-        set(CLDNN__ARCHITECTURE_TARGET "Windows64" CACHE STRING "" FORCE)
-    else()
-        set(CLDNN__ARCHITECTURE_TARGET "Linux64" CACHE STRING "" FORCE)
+function(build_with_lto)
+    if(ENABLE_LTO)
+        ie_enable_lto()
     endif()
 
-    remove_definitions(-fvisibility=default)
-    add_subdirectory(clDNN)
-    add_definitions(-fvisibility=default)
-endif()
+    if (ENABLE_CLDNN)
+        set(CLDNN__OUTPUT_BIN_DIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
+        set(CLDNN__OUTPUT_LIB_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+        if (ENABLE_TESTS AND ENABLE_CLDNN_TESTS)
+            set(CLDNN__INCLUDE_TESTS ON CACHE BOOL "" FORCE)
+            set(CLDNN__INCLUDE_CORE_INTERNAL_TESTS ON CACHE BOOL "" FORCE)
+        else()
+            set(CLDNN__INCLUDE_TESTS OFF CACHE BOOL "" FORCE)
+            set(CLDNN__INCLUDE_CORE_INTERNAL_TESTS OFF CACHE BOOL "" FORCE)
+        endif()
+        set(CLDNN__INCLUDE_EXAMPLES OFF CACHE BOOL "" FORCE)
+        set(CLDNN__INCLUDE_TUTORIAL OFF CACHE BOOL "" FORCE)
+        if (WIN32)
+            set(CLDNN__ARCHITECTURE_TARGET "Windows64" CACHE STRING "" FORCE)
+        elseif (ANDROID)
+            set(CLDNN__ARCHITECTURE_TARGET "Android64" CACHE STRING "" FORCE)
+        else()
+            set(CLDNN__ARCHITECTURE_TARGET "Linux64" CACHE STRING "" FORCE)
+        endif()
 
-if(ENABLE_MKL_DNN)
-    include(mkldnn.cmake)
-endif()
+        add_subdirectory(clDNN)
+    endif()
+
+    function(ie_build_pugixml)
+        set(BUILD_TESTS_current ${BUILD_TESTS})
+        set(BUILD_TESTS OFF CACHE BOOL "Build tests" FORCE)
+        add_subdirectory(pugixml)
+        set(BUILD_TESTS ${BUILD_TESTS_current} CACHE BOOL "Build tests" FORCE)
+    endfunction()
+
+    ie_build_pugixml()
+    add_subdirectory(stb_lib)
+    add_subdirectory(ade)
+    add_subdirectory(fluid/modules/gapi)
+
+    target_include_directories(pugixml INTERFACE "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/pugixml/src>")
+
+    set_target_properties(pugixml ade fluid stb_image
+                          PROPERTIES FOLDER thirdparty)
+
+    # developer package
+
+    ie_developer_export_targets(ade fluid pugixml)
+    if(TARGET pugixml_mt)
+        ie_developer_export_targets(pugixml_mt)
+        set_target_properties(pugixml_mt PROPERTIES FOLDER thirdparty)
+    endif()
+
+    if(ENABLE_MKL_DNN)
+        set(SDL_cmake_included ON)
+        include(mkldnn.cmake)
+    endif()
+endfunction()
 
-add_subdirectory("${IE_MAIN_SOURCE_DIR}/thirdparty/fluid/modules/gapi")
+build_with_lto()