Apply Apivalidator to extra TBB libs (#15938)

This commit is contained in:
Vitaliy Urusovskij
2023-02-28 15:34:14 +04:00
committed by GitHub
parent f7ccfd9b6e
commit 5e48941f53
3 changed files with 24 additions and 4 deletions

View File

@@ -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)

View File

@@ -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)

View File

@@ -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})