diff --git a/cmake/developer_package/api_validator/api_validator.cmake b/cmake/developer_package/api_validator/api_validator.cmake index 623a5dfcbedb94..08f91322a3476f 100644 --- a/cmake/developer_package/api_validator/api_validator.cmake +++ b/cmake/developer_package/api_validator/api_validator.cmake @@ -97,7 +97,7 @@ function(_ov_add_api_validator_post_build_step) message(FATAL_ERROR "Internal error: apiValidator is found (${ONECORE_API_VALIDATOR}), but UniversalDDIs.xml file has not been found for ${wdk_platform} platform") endif() - cmake_parse_arguments(API_VALIDATOR "" "TARGET" "" ${ARGN}) + cmake_parse_arguments(API_VALIDATOR "" "TARGET" "EXTRA" "" ${ARGN}) if(NOT API_VALIDATOR_TARGET) message(FATAL_ERROR "RunApiValidator requires TARGET to validate!") @@ -108,8 +108,12 @@ function(_ov_add_api_validator_post_build_step) endif() # collect targets - _ie_add_api_validator_post_build_step_recursive(TARGET ${API_VALIDATOR_TARGET}) + if (API_VALIDATOR_EXTRA) + foreach(target IN LISTS API_VALIDATOR_EXTRA) + _ie_add_api_validator_post_build_step_recursive(TARGET ${target}) + endforeach() + endif() # remove targets which were tested before foreach(item IN LISTS VALIDATED_TARGETS) @@ -121,7 +125,6 @@ function(_ov_add_api_validator_post_build_step) endif() # apply check - macro(api_validator_get_target_name) get_target_property(is_imported ${target} IMPORTED) get_target_property(orig_target ${target} ALIASED_TARGET) diff --git a/src/cmake/ie_parallel.cmake b/src/cmake/ie_parallel.cmake index 5e92e854640808..a2f15636d8a8eb 100644 --- a/src/cmake/ie_parallel.cmake +++ b/src/cmake/ie_parallel.cmake @@ -141,6 +141,23 @@ macro(ov_find_package_tbb) list(APPEND TBB_IMPORTED_TARGETS ${target}) endif() endforeach() + + if(WIN32 AND TARGET TBB::tbbbind_2_5) + # Add HWLOC::hwloc_2_5 target to check via Apivalidator + get_target_property(TBB_location TBB::tbb IMPORTED_LOCATION_RELEASE) + get_filename_component(TBB_dir "${TBB_location}" DIRECTORY) + set(hwloc_dll_name "${CMAKE_SHARED_LIBRARY_PREFIX}hwloc${CMAKE_SHARED_LIBRARY_SUFFIX}") + find_file(HWLOC_DLL NAMES ${hwloc_dll_name} PATHS "${TBB_dir}" DOC "Path to hwloc.dll") + + if(NOT HWLOC_DLL) + message(FATAL_ERROR "Failed to find ${hwloc_dll_name} in ${TBB_dir}") + endif() + + add_library(HWLOC::hwloc_2_5 SHARED IMPORTED) + set_property(TARGET HWLOC::hwloc_2_5 APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) + set_target_properties(HWLOC::hwloc_2_5 PROPERTIES + IMPORTED_LOCATION_RELEASE "${HWLOC_DLL}") + endif() endif() if(NOT TBB_FOUND) diff --git a/src/cmake/openvino.cmake b/src/cmake/openvino.cmake index 5f07f131a6686d..7870e2963e3c59 100644 --- a/src/cmake/openvino.cmake +++ b/src/cmake/openvino.cmake @@ -65,7 +65,7 @@ set_ie_threading_interface_for(${TARGET_NAME}) ie_mark_target_as_cc(${TARGET_NAME}) # must be called after all target_link_libraries -ie_add_api_validator_post_build_step(TARGET ${TARGET_NAME}) +ie_add_api_validator_post_build_step(TARGET ${TARGET_NAME} EXTRA ${TBB_IMPORTED_TARGETS}) # LTO set_target_properties(${TARGET_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELEASE ${ENABLE_LTO})