Skip to content

Commit

Permalink
Apply Apivalidator to extra TBB libs (#15938)
Browse files Browse the repository at this point in the history
  • Loading branch information
vurusovs authored Feb 28, 2023
1 parent f7ccfd9 commit 5e48941
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 4 deletions.
9 changes: 6 additions & 3 deletions cmake/developer_package/api_validator/api_validator.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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!")
Expand All @@ -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)
Expand All @@ -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)
Expand Down
17 changes: 17 additions & 0 deletions src/cmake/ie_parallel.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion src/cmake/openvino.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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})
Expand Down

0 comments on commit 5e48941

Please sign in to comment.