cleanup
[platform/upstream/dldt.git] / inference-engine / cmake / dependencies.cmake
1 # Copyright (C) 2018-2019 Intel Corporation
2 # SPDX-License-Identifier: Apache-2.0
3 #
4
5 cmake_policy(SET CMP0054 NEW)
6
7 #we have number of dependencies stored on ftp
8 include(dependency_solver)
9
10 set_temp_directory(TEMP "${IE_MAIN_SOURCE_DIR}")
11 if (CMAKE_CROSSCOMPILING)
12     set(CMAKE_STAGING_PREFIX "${TEMP}")
13 endif()
14
15 include(ExternalProject)
16
17 include(linux_name)
18 if(COMMAND get_linux_name)
19     get_linux_name(LINUX_OS_NAME)
20 endif()
21
22 if (ENABLE_MYRIAD)
23     include(vpu_dependencies)
24 endif()
25
26 ## enable cblas_gemm from OpenBLAS package
27 if (GEMM STREQUAL "OPENBLAS")
28     if(NOT BLAS_LIBRARIES OR NOT BLAS_INCLUDE_DIRS)
29         find_package(BLAS REQUIRED)
30         if(BLAS_FOUND)
31             find_path(BLAS_INCLUDE_DIRS cblas.h)
32         else()
33             message(ERROR "OpenBLAS not found: install OpenBLAS or set -DBLAS_INCLUDE_DIRS=<path to dir with cblas.h> and -DBLAS_LIBRARIES=<path to libopenblas.so or openblas.lib>")
34         endif()
35     endif()
36     debug_message(STATUS "openblas=" ${BLAS_LIBRARIES})
37 endif ()
38
39 #MKL-ml package
40 if (GEMM STREQUAL "MKL")
41 if(NOT MKLROOT)
42         message(FATAL_ERROR "MKLROOT not found: install MKL and set -DMKLROOT=<path_to_MKL>")
43 endif()
44 set(MKL ${MKLROOT})
45 debug_message(STATUS "mkl_ml=" ${MKLROOT})
46 endif ()
47
48 ## Intel OMP package
49 if (THREADING STREQUAL "OMP")
50     if (WIN32)
51         RESOLVE_DEPENDENCY(OMP
52                 ARCHIVE_WIN "iomp.zip"
53                 TARGET_PATH "${TEMP}/omp"
54                 ENVIRONMENT "OMP"
55                 VERSION_REGEX ".*_([a-z]*_([a-z0-9]+\\.)*[0-9]+).*")
56     elseif(LINUX)
57         RESOLVE_DEPENDENCY(OMP
58                 ARCHIVE_LIN "iomp.tgz"
59                 TARGET_PATH "${TEMP}/omp"
60                 ENVIRONMENT "OMP"
61                 VERSION_REGEX ".*_([a-z]*_([a-z0-9]+\\.)*[0-9]+).*")
62     else(APPLE)
63         RESOLVE_DEPENDENCY(OMP
64                 ARCHIVE_MAC "iomp_20190130_mac.tgz"
65                 TARGET_PATH "${TEMP}/omp"
66                 ENVIRONMENT "OMP"
67                 VERSION_REGEX ".*_([a-z]*_([a-z0-9]+\\.)*[0-9]+).*")
68     endif()
69     log_rpath_from_dir(OMP "${OMP}/lib")
70     debug_message(STATUS "intel_omp=" ${OMP})
71 endif ()
72
73 ## TBB package
74 if (THREADING STREQUAL "TBB" OR THREADING STREQUAL "TBB_AUTO")
75     if (WIN32)
76         #TODO: add target_path to be platform specific as well, to avoid following if
77         RESOLVE_DEPENDENCY(TBB
78                 ARCHIVE_WIN "tbb2019_20181010_win.zip" #TODO: windows zip archive created incorrectly using old name for folder
79                 TARGET_PATH "${TEMP}/tbb"
80                 ENVIRONMENT "TBBROOT"
81                 VERSION_REGEX ".*_([a-z]*_([a-z0-9]+\\.)*[0-9]+).*")
82     elseif(LINUX)
83         RESOLVE_DEPENDENCY(TBB
84                 ARCHIVE_LIN "tbb2019_20181010_lin.tgz"
85                 TARGET_PATH "${TEMP}/tbb"
86                 ENVIRONMENT "TBBROOT")
87     else(APPLE)
88         RESOLVE_DEPENDENCY(TBB
89                 ARCHIVE_MAC "tbb2019_20190414_v1_mac.tgz"
90                 TARGET_PATH "${TEMP}/tbb"
91                 ENVIRONMENT "TBBROOT"
92                 VERSION_REGEX ".*_([a-z]*_([a-z0-9]+\\.)*[0-9]+).*")
93     endif()
94     log_rpath_from_dir(TBB "${TBB}/lib")
95     debug_message(STATUS "tbb=" ${TBB})
96 endif ()
97
98 if (ENABLE_OPENCV)
99     set(OPENCV_VERSION "4.1.2")
100     set(OPENCV_BUILD "624")
101     set(OPENCV_SUFFIX "")
102     if (WIN32)
103         RESOLVE_DEPENDENCY(OPENCV
104                 ARCHIVE_WIN "opencv_${OPENCV_VERSION}-${OPENCV_BUILD}.zip"
105                 TARGET_PATH "${TEMP}/opencv_${OPENCV_VERSION}"
106                 ENVIRONMENT "OpenCV_DIR"
107                 VERSION_REGEX ".*_([0-9]+.[0-9]+.[0-9]+).*")
108         log_rpath_from_dir(OPENCV "\\opencv_${OPENCV_VERSION}\\bin")
109     elseif(APPLE)
110         RESOLVE_DEPENDENCY(OPENCV
111                 ARCHIVE_MAC "opencv_${OPENCV_VERSION}-${OPENCV_BUILD}_osx.tar.xz"
112                 TARGET_PATH "${TEMP}/opencv_${OPENCV_VERSION}_osx"
113                 ENVIRONMENT "OpenCV_DIR"
114                 VERSION_REGEX ".*_([0-9]+.[0-9]+.[0-9]+).*")
115         log_rpath_from_dir(OPENCV "opencv_${OPENCV_VERSION}_osx/lib")
116     elseif(LINUX)
117         if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "armv7l")
118             set(OPENCV_SUFFIX "debian9arm")
119         elseif (${LINUX_OS_NAME} STREQUAL "Ubuntu 16.04")
120             set(OPENCV_SUFFIX "ubuntu16")
121         elseif (${LINUX_OS_NAME} STREQUAL "Ubuntu 18.04")
122             set(OPENCV_SUFFIX "ubuntu18")
123         elseif (${LINUX_OS_NAME} STREQUAL "CentOS 7")
124             set(OPENCV_SUFFIX "centos7")
125         endif()
126     endif()
127
128     if (OPENCV_SUFFIX)
129         RESOLVE_DEPENDENCY(OPENCV
130                 ARCHIVE_LIN "opencv_${OPENCV_VERSION}-${OPENCV_BUILD}_${OPENCV_SUFFIX}.tar.xz"
131                 TARGET_PATH "${TEMP}/opencv_${OPENCV_VERSION}_${OPENCV_SUFFIX}"
132                 ENVIRONMENT "OpenCV_DIR"
133                 VERSION_REGEX ".*_([0-9]+.[0-9]+.[0-9]+).*")
134         log_rpath_from_dir(OPENCV "opencv_${OPENCV_VERSION}_${OPENCV_SUFFIX}/lib")
135     endif()
136     debug_message(STATUS "opencv=" ${OPENCV})
137     # OpenCV_DIR should point to cmake folder within the specified OpenCV binary package.
138     # It's required to successsfully find OpenCV libs using find_package(OpenCV ...) command.
139     # So, the cached OpenCV_DIR variable should be update if custom value wasn't previously set here.
140     if (NOT DEFINED ENV{OpenCV_DIR})
141         set(OpenCV_DIR "${OPENCV}/cmake" CACHE PATH "Path to OpenCV in temp directory")
142     endif()
143 endif()
144
145 include(ie_parallel)
146
147 if (ENABLE_GNA)
148     if (GNA_LIBRARY_VERSION STREQUAL "GNA1")
149         RESOLVE_DEPENDENCY(GNA
150                 ARCHIVE_UNIFIED "gna_20181120.zip"
151                 TARGET_PATH "${TEMP}/gna")
152     elseif(GNA_LIBRARY_VERSION STREQUAL "GNA1_1401")
153         set(GNA_VERSION "01.00.00.1401")
154         RESOLVE_DEPENDENCY(GNA
155                 ARCHIVE_UNIFIED "GNA_${GNA_VERSION}.zip"
156                 TARGET_PATH "${TEMP}/gna_${GNA_VERSION}"
157                 VERSION_REGEX ".*_([0-9]+.[0-9]+.[0-9]+.[0-9]+).*")
158     endif()
159     debug_message(STATUS "gna=" ${GNA})
160 endif()
161
162 configure_file(
163         "${IE_MAIN_SOURCE_DIR}/cmake/share/InferenceEngineConfig.cmake.in"
164         "${CMAKE_BINARY_DIR}/share/InferenceEngineConfig.cmake"
165         @ONLY)
166
167 configure_file(
168         "${IE_MAIN_SOURCE_DIR}/cmake/share/InferenceEngineConfig-version.cmake.in"
169         "${CMAKE_BINARY_DIR}/share/InferenceEngineConfig-version.cmake"
170         COPYONLY)
171
172 configure_file(
173         "${IE_MAIN_SOURCE_DIR}/cmake/ie_parallel.cmake"
174         "${CMAKE_BINARY_DIR}/share/ie_parallel.cmake"
175         COPYONLY)