2021-03-08 21:31:15 -06:00
|
|
|
# Copyright (C) 2018-2021 Intel Corporation
|
2020-02-11 13:48:49 -06:00
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
#
|
|
|
|
|
2021-06-24 05:14:04 -05:00
|
|
|
#
|
|
|
|
# Common cmake options
|
|
|
|
#
|
|
|
|
|
2021-12-23 02:49:25 -06:00
|
|
|
ie_dependent_option (ENABLE_INTEL_CPU "CPU plugin for inference engine" ON "X86_64" OFF)
|
2020-02-11 13:48:49 -06:00
|
|
|
|
2020-12-22 09:44:59 -06:00
|
|
|
ie_option (ENABLE_TESTS "unit, behavior and functional tests" OFF)
|
2020-04-13 13:17:23 -05:00
|
|
|
|
2021-06-09 10:52:44 -05:00
|
|
|
ie_option (ENABLE_STRICT_DEPENDENCIES "Skip configuring \"convinient\" dependencies for efficient parallel builds" ON)
|
2021-06-09 00:21:03 -05:00
|
|
|
|
2020-12-22 09:44:59 -06:00
|
|
|
ie_dependent_option (ENABLE_CLDNN "clDnn based plugin for inference engine" ON "X86_64;NOT APPLE;NOT MINGW;NOT WINDOWS_STORE;NOT WINDOWS_PHONE" OFF)
|
2021-11-30 08:26:09 -06:00
|
|
|
ie_dependent_option (ENABLE_INTEL_GPU "GPU plugin for inference engine on Intel GPU" ON "ENABLE_CLDNN" OFF)
|
2020-08-03 04:53:00 -05:00
|
|
|
|
2021-11-15 04:44:11 -06:00
|
|
|
if (NOT ENABLE_CLDNN OR ANDROID OR
|
|
|
|
(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0))
|
|
|
|
# oneDNN doesn't support old compilers and android builds for now, so we'll
|
|
|
|
# build GPU plugin without oneDNN
|
|
|
|
set(ENABLE_ONEDNN_FOR_GPU_DEFAULT OFF)
|
|
|
|
else()
|
|
|
|
set(ENABLE_ONEDNN_FOR_GPU_DEFAULT ON)
|
|
|
|
endif()
|
|
|
|
|
2021-11-16 16:22:04 -06:00
|
|
|
ie_dependent_option (ENABLE_ONEDNN_FOR_GPU "Enable oneDNN with GPU support" ON "ENABLE_ONEDNN_FOR_GPU_DEFAULT" OFF)
|
2021-11-15 04:44:11 -06:00
|
|
|
|
2020-10-14 05:08:06 -05:00
|
|
|
ie_option (ENABLE_PROFILING_ITT "Build with ITT tracing. Optionally configure pre-built ittnotify library though INTEL_VTUNE_DIR variable." OFF)
|
2020-09-23 03:15:02 -05:00
|
|
|
|
2021-04-28 23:33:21 -05:00
|
|
|
ie_option_enum(ENABLE_PROFILING_FILTER "Enable or disable ITT counter groups.\
|
|
|
|
Supported values:\
|
|
|
|
ALL - enable all ITT counters (default value)\
|
|
|
|
FIRST_INFERENCE - enable only first inference time counters" ALL
|
|
|
|
ALLOWED_VALUES ALL FIRST_INFERENCE)
|
|
|
|
|
|
|
|
ie_option (ENABLE_PROFILING_FIRST_INFERENCE "Build with ITT tracing of first inference time." ON)
|
|
|
|
|
2020-11-24 21:43:35 -06:00
|
|
|
ie_option_enum(SELECTIVE_BUILD "Enable OpenVINO conditional compilation or statistics collection. \
|
|
|
|
In case SELECTIVE_BUILD is enabled, the SELECTIVE_BUILD_STAT variable should contain the path to the collected InelSEAPI statistics. \
|
|
|
|
Usage: -DSELECTIVE_BUILD=ON -DSELECTIVE_BUILD_STAT=/path/*.csv" OFF
|
|
|
|
ALLOWED_VALUES ON OFF COLLECT)
|
2020-11-30 21:33:36 -06:00
|
|
|
|
2020-12-22 23:01:07 -06:00
|
|
|
ie_option(ENABLE_ERROR_HIGHLIGHT "Highlight errors and warnings during compile time" OFF)
|
|
|
|
|
2021-06-07 02:52:48 -05:00
|
|
|
# Try to find python3
|
|
|
|
find_package(PythonLibs 3 QUIET)
|
|
|
|
ie_dependent_option (ENABLE_PYTHON "enables ie python bridge build" OFF "PYTHONLIBS_FOUND" OFF)
|
2021-03-22 05:28:40 -05:00
|
|
|
|
2021-06-08 03:00:02 -05:00
|
|
|
find_package(PythonInterp 3 QUIET)
|
|
|
|
ie_dependent_option (ENABLE_DOCS "Build docs using Doxygen" OFF "PYTHONINTERP_FOUND" OFF)
|
|
|
|
|
2021-12-01 05:34:50 -06:00
|
|
|
# this option should not be a part of InferenceEngineDeveloperPackage
|
|
|
|
# since wheels can be built only together with main OV build
|
|
|
|
cmake_dependent_option (ENABLE_WHEEL "Build wheel packages for PyPi" OFF
|
|
|
|
"PYTHONINTERP_FOUND;CMAKE_SOURCE_DIR STREQUAL OpenVINO_SOURCE_DIR" OFF)
|
|
|
|
|
2021-03-22 05:28:40 -05:00
|
|
|
#
|
2021-06-24 05:14:04 -05:00
|
|
|
# Inference Engine specific options
|
2021-03-22 05:28:40 -05:00
|
|
|
#
|
2021-06-07 02:52:48 -05:00
|
|
|
|
2021-06-24 05:14:04 -05:00
|
|
|
# "MKL-DNN library based on OMP or TBB or Sequential implementation: TBB|OMP|SEQ"
|
|
|
|
if(X86 OR ARM OR (MSVC AND (ARM OR AARCH64)) )
|
|
|
|
set(THREADING_DEFAULT "SEQ")
|
|
|
|
else()
|
|
|
|
set(THREADING_DEFAULT "TBB")
|
|
|
|
endif()
|
|
|
|
set(THREADING "${THREADING_DEFAULT}" CACHE STRING "Threading")
|
|
|
|
set_property(CACHE THREADING PROPERTY STRINGS "TBB" "TBB_AUTO" "OMP" "SEQ")
|
|
|
|
list (APPEND IE_OPTIONS THREADING)
|
|
|
|
if (NOT THREADING STREQUAL "TBB" AND
|
|
|
|
NOT THREADING STREQUAL "TBB_AUTO" AND
|
|
|
|
NOT THREADING STREQUAL "OMP" AND
|
|
|
|
NOT THREADING STREQUAL "SEQ")
|
|
|
|
message(FATAL_ERROR "THREADING should be set to TBB, TBB_AUTO, OMP or SEQ. Default option is ${THREADING_DEFAULT}")
|
2021-03-22 05:28:40 -05:00
|
|
|
endif()
|
|
|
|
|
2021-11-16 16:22:04 -06:00
|
|
|
if((THREADING STREQUAL "TBB" OR THREADING STREQUAL "TBB_AUTO") AND
|
|
|
|
(BUILD_SHARED_LIBS OR (LINUX AND X86_64)))
|
|
|
|
set(ENABLE_TBBBIND_2_5_DEFAULT ON)
|
|
|
|
else()
|
|
|
|
set(ENABLE_TBBBIND_2_5_DEFAULT OFF)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
ie_dependent_option (ENABLE_TBBBIND_2_5 "Enable TBBBind_2_5 static usage in OpenVINO runtime" ON "ENABLE_TBBBIND_2_5_DEFAULT" OFF)
|
|
|
|
|
2021-12-06 04:00:35 -06:00
|
|
|
ie_dependent_option (ENABLE_INTEL_GNA "GNA support for inference engine" ON
|
|
|
|
"NOT APPLE;NOT ANDROID;X86_64;CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 5.4" OFF)
|
|
|
|
|
2021-10-28 03:33:56 -05:00
|
|
|
if(ENABLE_TESTS OR BUILD_SHARED_LIBS)
|
|
|
|
set(ENABLE_IR_V7_READER_DEFAULT ON)
|
|
|
|
else()
|
|
|
|
set(ENABLE_IR_V7_READER_DEFAULT OFF)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
ie_option (ENABLE_IR_V7_READER "Enables IR v7 reader" ${ENABLE_IR_V7_READER_DEFAULT})
|
|
|
|
|
2021-11-18 07:40:53 -06:00
|
|
|
ie_option (ENABLE_GAPI_PREPROCESSING "Enables G-API preprocessing" ON)
|
|
|
|
|
2021-12-05 20:58:05 -06:00
|
|
|
ie_option (ENABLE_MULTI "Enables MULTI Device Plugin" ON)
|
|
|
|
ie_option (ENABLE_AUTO "Enables AUTO Device Plugin" ON)
|
2021-10-28 03:33:56 -05:00
|
|
|
|
|
|
|
ie_option (ENABLE_HETERO "Enables Hetero Device Plugin" ON)
|
|
|
|
|
2021-11-10 09:25:51 -06:00
|
|
|
ie_option (ENABLE_TEMPLATE "Enable template plugin" ON)
|
|
|
|
|
2021-06-24 05:14:04 -05:00
|
|
|
ie_dependent_option (ENABLE_VPU "vpu targeted plugins for inference engine" ON "NOT WINDOWS_PHONE;NOT WINDOWS_STORE" OFF)
|
|
|
|
|
|
|
|
ie_dependent_option (ENABLE_MYRIAD "myriad targeted plugin for inference engine" ON "ENABLE_VPU" OFF)
|
|
|
|
|
|
|
|
ie_dependent_option (ENABLE_MYRIAD_NO_BOOT "myriad plugin will skip device boot" OFF "ENABLE_MYRIAD" OFF)
|
|
|
|
|
2021-11-18 07:40:53 -06:00
|
|
|
ie_dependent_option (ENABLE_GAPI_TESTS "tests for GAPI kernels" ON "ENABLE_GAPI_PREPROCESSING;ENABLE_TESTS" OFF)
|
2021-06-24 05:14:04 -05:00
|
|
|
|
|
|
|
ie_dependent_option (GAPI_TEST_PERF "if GAPI unit tests should examine performance" OFF "ENABLE_GAPI_TESTS" OFF)
|
|
|
|
|
|
|
|
ie_dependent_option (ENABLE_MYRIAD_MVNC_TESTS "functional and behavior tests for mvnc api" OFF "ENABLE_TESTS;ENABLE_MYRIAD" OFF)
|
|
|
|
|
|
|
|
ie_dependent_option (ENABLE_DATA "fetch models from testdata repo" ON "ENABLE_FUNCTIONAL_TESTS;NOT ANDROID" OFF)
|
|
|
|
|
|
|
|
ie_dependent_option (ENABLE_BEH_TESTS "tests oriented to check inference engine API corecteness" ON "ENABLE_TESTS" OFF)
|
|
|
|
|
|
|
|
ie_dependent_option (ENABLE_FUNCTIONAL_TESTS "functional tests" ON "ENABLE_TESTS" OFF)
|
|
|
|
|
|
|
|
ie_dependent_option (ENABLE_SAMPLES "console samples are part of inference engine package" ON "NOT MINGW" OFF)
|
|
|
|
|
|
|
|
ie_option (ENABLE_OPENCV "enables OpenCV" ON)
|
|
|
|
|
|
|
|
ie_option (ENABLE_V7_SERIALIZE "enables serialization to IR v7" OFF)
|
|
|
|
|
|
|
|
set(IE_EXTRA_MODULES "" CACHE STRING "Extra paths for extra modules to include into OpenVINO build")
|
|
|
|
|
|
|
|
ie_dependent_option(ENABLE_TBB_RELEASE_ONLY "Only Release TBB libraries are linked to the Inference Engine binaries" ON "THREADING MATCHES TBB;LINUX" OFF)
|
|
|
|
|
2021-11-10 09:25:51 -06:00
|
|
|
ie_dependent_option (ENABLE_SYSTEM_PUGIXML "use the system copy of pugixml" OFF "BUILD_SHARED_LIBS" OFF)
|
2021-06-24 05:14:04 -05:00
|
|
|
|
2021-07-22 05:29:09 -05:00
|
|
|
ie_option (ENABLE_DEBUG_CAPS "enable OpenVINO debug capabilities at runtime" OFF)
|
|
|
|
|
|
|
|
ie_dependent_option (ENABLE_GPU_DEBUG_CAPS "enable GPU debug capabilities at runtime" ON "ENABLE_DEBUG_CAPS" OFF)
|
|
|
|
|
|
|
|
ie_dependent_option (ENABLE_CPU_DEBUG_CAPS "enable CPU debug capabilities at runtime" ON "ENABLE_DEBUG_CAPS" OFF)
|
2021-06-24 05:14:04 -05:00
|
|
|
|
2021-07-16 10:55:05 -05:00
|
|
|
if(ANDROID OR WINDOWS_STORE OR (MSVC AND (ARM OR AARCH64)))
|
|
|
|
set(protoc_available OFF)
|
|
|
|
else()
|
|
|
|
set(protoc_available ON)
|
|
|
|
endif()
|
|
|
|
|
2021-12-07 23:17:31 -06:00
|
|
|
ie_dependent_option(ENABLE_OV_ONNX_FRONTEND "Enable ONNX FrontEnd" ON "protoc_available" OFF)
|
2021-12-22 02:20:54 -06:00
|
|
|
ie_dependent_option(ENABLE_OV_PADDLE_FRONTEND "Enable PaddlePaddle FrontEnd" ON "protoc_available" OFF)
|
2021-12-07 23:17:31 -06:00
|
|
|
ie_option(ENABLE_OV_IR_FRONTEND "Enable IR FrontEnd" ON)
|
|
|
|
ie_dependent_option(ENABLE_OV_TF_FRONTEND "Enable TensorFlow FrontEnd" ON "protoc_available" OFF)
|
|
|
|
ie_dependent_option(ENABLE_SYSTEM_PROTOBUF "Use system protobuf" OFF
|
2021-12-22 02:20:54 -06:00
|
|
|
"ENABLE_OV_ONNX_FRONTEND OR ENABLE_OV_PADDLE_FRONTEND OR ENABLE_OV_TF_FRONTEND;BUILD_SHARED_LIBS" OFF)
|
2021-12-07 23:17:31 -06:00
|
|
|
ie_dependent_option(ENABLE_OV_CORE_UNIT_TESTS "Enables OpenVINO core unit tests" ON "ENABLE_TESTS;NOT ANDROID" OFF)
|
|
|
|
ie_dependent_option(ENABLE_OV_CORE_BACKEND_UNIT_TESTS "Control the building of unit tests using backends" ON
|
|
|
|
"ENABLE_OV_CORE_UNIT_TESTS" OFF)
|
|
|
|
ie_option(ENABLE_OPENVINO_DEBUG "Enable output for OPENVINO_DEBUG statements" OFF)
|
2021-08-25 10:04:12 -05:00
|
|
|
ie_option(ENABLE_REQUIREMENTS_INSTALL "Dynamic dependencies install" ON)
|
2021-07-16 10:55:05 -05:00
|
|
|
|
2021-12-07 23:17:31 -06:00
|
|
|
if(NOT BUILD_SHARED_LIBS AND ENABLE_OV_TF_FRONTEND)
|
2021-11-28 12:36:24 -06:00
|
|
|
set(FORCE_FRONTENDS_USE_PROTOBUF ON)
|
|
|
|
else()
|
|
|
|
set(FORCE_FRONTENDS_USE_PROTOBUF OFF)
|
|
|
|
endif()
|
|
|
|
|
2021-07-16 10:55:05 -05:00
|
|
|
# WA for ngraph python build on Windows debug
|
2021-12-07 23:17:31 -06:00
|
|
|
list(REMOVE_ITEM IE_OPTIONS ENABLE_OV_CORE_UNIT_TESTS ENABLE_OV_CORE_BACKEND_UNIT_TESTS)
|
2021-07-16 10:55:05 -05:00
|
|
|
|
2020-12-22 09:44:59 -06:00
|
|
|
#
|
2021-06-24 05:14:04 -05:00
|
|
|
# Process featues
|
2020-12-22 09:44:59 -06:00
|
|
|
#
|
|
|
|
|
2021-12-07 23:17:31 -06:00
|
|
|
if(ENABLE_OPENVINO_DEBUG)
|
|
|
|
add_definitions(-DENABLE_OPENVINO_DEBUG)
|
2021-06-24 05:14:04 -05:00
|
|
|
endif()
|
|
|
|
|
|
|
|
if (ENABLE_PROFILING_RAW)
|
|
|
|
add_definitions(-DENABLE_PROFILING_RAW=1)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if (ENABLE_MYRIAD)
|
|
|
|
add_definitions(-DENABLE_MYRIAD=1)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if (ENABLE_MYRIAD_NO_BOOT AND ENABLE_MYRIAD )
|
|
|
|
add_definitions(-DENABLE_MYRIAD_NO_BOOT=1)
|
|
|
|
endif()
|
|
|
|
|
2021-11-30 08:26:09 -06:00
|
|
|
if (ENABLE_INTEL_GPU)
|
|
|
|
add_definitions(-DENABLE_INTEL_GPU=1)
|
2021-06-24 05:14:04 -05:00
|
|
|
endif()
|
|
|
|
|
2021-12-23 02:49:25 -06:00
|
|
|
if (ENABLE_INTEL_CPU)
|
|
|
|
add_definitions(-DENABLE_INTEL_CPU=1)
|
2021-06-24 05:14:04 -05:00
|
|
|
endif()
|
|
|
|
|
2021-12-06 04:00:35 -06:00
|
|
|
if (ENABLE_INTEL_GNA)
|
|
|
|
add_definitions(-DENABLE_INTEL_GNA)
|
2021-06-24 05:14:04 -05:00
|
|
|
endif()
|
|
|
|
|
2020-12-22 09:44:59 -06:00
|
|
|
print_enabled_features()
|