2022-01-19 01:07:49 +03:00
|
|
|
# Copyright (C) 2018-2022 Intel Corporation
|
2021-02-04 11:08:30 +03:00
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Flags for 3rd party projects
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
set(use_static_runtime ON)
|
|
|
|
|
|
2021-11-24 15:04:38 +03:00
|
|
|
if(use_static_runtime)
|
|
|
|
|
set(use_dynamic_runtime OFF)
|
|
|
|
|
else()
|
|
|
|
|
set(use_dynamic_runtime ON)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
# CMAKE_MSVC_RUNTIME_LIBRARY is available since cmake 3.15
|
|
|
|
|
if(use_static_runtime AND CMAKE_MSVC_RUNTIME_LIBRARY MATCHES "^MultiThreaded.*DLL$")
|
|
|
|
|
message(FATAL_ERROR "Misleading configuration, CMAKE_MSVC_RUNTIME_LIBRARY is ${CMAKE_MSVC_RUNTIME_LIBRARY}")
|
|
|
|
|
else()
|
|
|
|
|
set(CMAKE_MSVC_RUNTIME_LIBRARY
|
|
|
|
|
MultiThreaded$<$<CONFIG:Debug>:Debug>$<$<BOOL:${use_dynamic_runtime}>:DLL>)
|
|
|
|
|
endif()
|
|
|
|
|
|
2021-02-04 11:08:30 +03:00
|
|
|
if(use_static_runtime)
|
|
|
|
|
foreach(lang C CXX)
|
|
|
|
|
foreach(build_type "" "_DEBUG" "_MINSIZEREL" "_RELEASE" "_RELWITHDEBINFO")
|
2022-03-01 11:12:12 +03:00
|
|
|
set(flag_var "CMAKE_${lang}_FLAGS${build_type}_INIT")
|
2021-02-04 11:08:30 +03:00
|
|
|
string(REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
|
|
|
|
|
endforeach()
|
|
|
|
|
endforeach()
|
|
|
|
|
endif()
|
|
|
|
|
|
2021-11-24 15:04:38 +03:00
|
|
|
macro(ov_set_msvc_runtime var value)
|
|
|
|
|
if(NOT DEFINED ${var})
|
|
|
|
|
set(${var} ${value} CACHE BOOL "" FORCE)
|
|
|
|
|
endif()
|
|
|
|
|
endmacro()
|
2021-02-04 11:08:30 +03:00
|
|
|
|
2021-11-24 15:04:38 +03:00
|
|
|
# static TBBBind_2_5 is built with dynamic CRT runtime
|
|
|
|
|
ov_set_msvc_runtime(ENABLE_TBBBIND_2_5 ${use_dynamic_runtime})
|
2021-02-04 11:08:30 +03:00
|
|
|
# ONNX
|
2021-11-24 15:04:38 +03:00
|
|
|
ov_set_msvc_runtime(ONNX_USE_MSVC_STATIC_RUNTIME ${use_static_runtime})
|
|
|
|
|
ov_set_msvc_runtime(ONNX_USE_MSVC_SHARED_RUNTIME ${use_dynamic_runtime})
|
2021-02-04 11:08:30 +03:00
|
|
|
# pugixml
|
2021-11-24 15:04:38 +03:00
|
|
|
ov_set_msvc_runtime(STATIC_CRT ${use_static_runtime})
|
2021-02-04 11:08:30 +03:00
|
|
|
# protobuf
|
2021-11-24 15:04:38 +03:00
|
|
|
ov_set_msvc_runtime(protobuf_MSVC_STATIC_RUNTIME ${use_static_runtime})
|
2021-02-04 11:08:30 +03:00
|
|
|
# clDNN
|
2021-11-24 15:04:38 +03:00
|
|
|
ov_set_msvc_runtime(CLDNN__COMPILE_LINK_USE_STATIC_RUNTIME ${use_static_runtime})
|
2021-11-17 01:22:04 +03:00
|
|
|
# OpenCL
|
2021-11-24 15:04:38 +03:00
|
|
|
ov_set_msvc_runtime(USE_DYNAMIC_VCXX_RUNTIME ${use_dynamic_runtime})
|
2021-02-04 11:08:30 +03:00
|
|
|
# google-test
|
2021-11-24 15:04:38 +03:00
|
|
|
ov_set_msvc_runtime(gtest_force_shared_crt ${use_dynamic_runtime})
|
2021-02-04 11:08:30 +03:00
|
|
|
|
|
|
|
|
unset(use_static_runtime)
|
2021-11-24 15:04:38 +03:00
|
|
|
unset(use_dynamic_runtime)
|