Static library for ngraph::frontend_manager (#6719)
* Static library for ngraph::frontend_manager * Static + Shared versions * Fix CI * USE_STATIC_FRONTEND_MANAGER macro * Set USE_STATIC_FRONTEND_MANAGER compile definition as public * Revert back incorrectly removed line * Apply more review comments
This commit is contained in:
parent
9f7cf581b8
commit
aecb2b9693
@ -120,11 +120,12 @@ ie_faster_build(${TARGET_NAME}_obj
|
||||
)
|
||||
|
||||
target_compile_definitions(${TARGET_NAME}_obj PRIVATE IMPLEMENT_INFERENCE_ENGINE_API
|
||||
$<TARGET_PROPERTY:ngraph::ngraph,INTERFACE_COMPILE_DEFINITIONS>)
|
||||
$<TARGET_PROPERTY:ngraph::ngraph,INTERFACE_COMPILE_DEFINITIONS>
|
||||
$<TARGET_PROPERTY:ngraph::frontend_manager::static,INTERFACE_COMPILE_DEFINITIONS>)
|
||||
|
||||
target_include_directories(${TARGET_NAME}_obj SYSTEM PRIVATE $<TARGET_PROPERTY:ngraph::ngraph,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
$<TARGET_PROPERTY:pugixml::static,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
$<TARGET_PROPERTY:ngraph::frontend_manager,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
$<TARGET_PROPERTY:ngraph::frontend_manager::static,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
$<TARGET_PROPERTY:xbyak,INTERFACE_INCLUDE_DIRECTORIES>)
|
||||
|
||||
target_include_directories(${TARGET_NAME}_obj PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
@ -161,7 +162,7 @@ if (TBBBIND_2_4_FOUND)
|
||||
endif()
|
||||
|
||||
target_link_libraries(${TARGET_NAME} PRIVATE pugixml::static openvino::itt ${CMAKE_DL_LIBS} Threads::Threads
|
||||
ngraph ngraph::frontend_manager inference_engine_transformations)
|
||||
ngraph ngraph::frontend_manager::static inference_engine_transformations)
|
||||
|
||||
target_include_directories(${TARGET_NAME} INTERFACE
|
||||
$<BUILD_INTERFACE:${PUBLIC_HEADERS_DIR}>
|
||||
@ -201,7 +202,7 @@ if(WIN32)
|
||||
set_target_properties(${TARGET_NAME}_s PROPERTIES COMPILE_PDB_NAME ${TARGET_NAME}_s)
|
||||
endif()
|
||||
|
||||
target_link_libraries(${TARGET_NAME}_s PRIVATE openvino::itt ${CMAKE_DL_LIBS} ngraph ngraph::frontend_manager
|
||||
target_link_libraries(${TARGET_NAME}_s PRIVATE openvino::itt ${CMAKE_DL_LIBS} ngraph ngraph::frontend_manager::static
|
||||
inference_engine_transformations pugixml::static)
|
||||
|
||||
target_compile_definitions(${TARGET_NAME}_s PUBLIC USE_STATIC_IE)
|
||||
|
@ -30,7 +30,7 @@ source_group("src" FILES ${PYBIND_FE_SRC})
|
||||
|
||||
pybind11_add_module(${PYBIND_FE_NAME} MODULE ${PYBIND_FE_SRC})
|
||||
|
||||
target_link_libraries(${PYBIND_FE_NAME} PRIVATE ngraph::ngraph ngraph::frontend_manager)
|
||||
target_link_libraries(${PYBIND_FE_NAME} PRIVATE ngraph::ngraph ngraph::frontend_manager::static)
|
||||
target_link_libraries(${PYBIND_FE_NAME} PRIVATE ${TARGET_FE_NAME})
|
||||
|
||||
add_dependencies(${PYBIND_FE_NAME} ${TARGET_FE_NAME})
|
||||
|
@ -14,11 +14,23 @@ source_group("src" FILES ${LIBRARY_SRC})
|
||||
source_group("include" FILES ${LIBRARY_HEADERS})
|
||||
source_group("public include" FILES ${LIBRARY_PUBLIC_HEADERS})
|
||||
|
||||
# Create shared library
|
||||
# Static library
|
||||
|
||||
add_library(${TARGET_NAME}_static STATIC ${LIBRARY_SRC} ${LIBRARY_HEADERS} ${LIBRARY_PUBLIC_HEADERS})
|
||||
add_library(ngraph::${TARGET_NAME}::static ALIAS ${TARGET_NAME}_static)
|
||||
target_link_libraries(${TARGET_NAME}_static PRIVATE ${CMAKE_DL_LIBS} PUBLIC ngraph)
|
||||
target_include_directories(${TARGET_NAME}_static PUBLIC ${FRONTEND_INCLUDE_DIR})
|
||||
target_include_directories(${TARGET_NAME}_static PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
||||
target_compile_definitions(${TARGET_NAME}_static PUBLIC USE_STATIC_FRONTEND_MANAGER)
|
||||
|
||||
|
||||
# Shared library - need to recompile object files to export necessary symbols
|
||||
|
||||
add_library(${TARGET_NAME} SHARED ${LIBRARY_SRC} ${LIBRARY_HEADERS} ${LIBRARY_PUBLIC_HEADERS})
|
||||
add_library(ngraph::${TARGET_NAME} ALIAS ${TARGET_NAME})
|
||||
|
||||
target_include_directories(${TARGET_NAME} PUBLIC $<BUILD_INTERFACE:${FRONTEND_INCLUDE_DIR}>
|
||||
$<INSTALL_INTERFACE:${FRONTEND_INSTALL_INCLUDE}>)
|
||||
target_include_directories(${TARGET_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
||||
target_link_libraries(${TARGET_NAME} PRIVATE ${CMAKE_DL_LIBS} PUBLIC ngraph)
|
||||
|
||||
add_clang_format_target(${TARGET_NAME}_clang FOR_TARGETS ${TARGET_NAME})
|
||||
@ -28,12 +40,7 @@ if(COMMAND ie_add_vs_version_file)
|
||||
FILEDESCRIPTION "Manager of OpenVINO nGraph Frontends")
|
||||
endif()
|
||||
|
||||
target_include_directories(${TARGET_NAME} PUBLIC $<BUILD_INTERFACE:${FRONTEND_INCLUDE_DIR}>
|
||||
$<INSTALL_INTERFACE:${FRONTEND_INSTALL_INCLUDE}>)
|
||||
|
||||
target_include_directories(${TARGET_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
||||
|
||||
# Installation rules
|
||||
# Installation rules for shared version only
|
||||
|
||||
install(TARGETS ${TARGET_NAME} EXPORT ngraphTargets
|
||||
RUNTIME DESTINATION ${NGRAPH_INSTALL_LIB} COMPONENT ngraph
|
||||
|
@ -9,9 +9,13 @@
|
||||
// Increment each time when FrontEnd/InputModel/Place interface is changed
|
||||
#define OV_FRONTEND_API_VERSION 1
|
||||
|
||||
#ifdef USE_STATIC_FRONTEND_MANAGER
|
||||
#define FRONTEND_API
|
||||
#else
|
||||
// Defined if cmake is building the frontend_manager DLL (instead of using it)
|
||||
#ifdef frontend_manager_EXPORTS
|
||||
#define FRONTEND_API NGRAPH_HELPER_DLL_EXPORT
|
||||
#else
|
||||
#define FRONTEND_API NGRAPH_HELPER_DLL_IMPORT
|
||||
#endif // frontend_manager_EXPORTS
|
||||
#endif // USE_STATIC_FRONTEND_MANAGER
|
@ -70,7 +70,7 @@ endif()
|
||||
|
||||
link_system_libraries(${TARGET_NAME} PRIVATE ${Protobuf_LIBRARIES})
|
||||
|
||||
target_link_libraries(${TARGET_NAME} PUBLIC frontend_manager
|
||||
target_link_libraries(${TARGET_NAME} PRIVATE ngraph::frontend_manager::static
|
||||
PRIVATE ngraph::builder)
|
||||
|
||||
add_clang_format_target(${TARGET_NAME}_clang FOR_TARGETS ${TARGET_NAME}
|
||||
|
@ -15,6 +15,6 @@ add_library(${TARGET_FE_NAME} SHARED ${LIBRARY_SRC} ${LIBRARY_HEADERS})
|
||||
|
||||
target_include_directories(${TARGET_FE_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
target_link_libraries(${TARGET_FE_NAME} PUBLIC ngraph::frontend_manager)
|
||||
target_link_libraries(${TARGET_FE_NAME} PRIVATE ngraph::frontend_manager::static)
|
||||
|
||||
add_clang_format_target(${TARGET_FE_NAME}_clang FOR_TARGETS ${TARGET_FE_NAME})
|
||||
|
@ -11,6 +11,6 @@ source_group("src" FILES ${PYBIND_FE_SRC})
|
||||
|
||||
pybind11_add_module(${PYBIND_FE_NAME} MODULE ${PYBIND_FE_SRC})
|
||||
|
||||
target_link_libraries(${PYBIND_FE_NAME} PRIVATE ${TARGET_FE_NAME})
|
||||
target_link_libraries(${PYBIND_FE_NAME} PRIVATE ${TARGET_FE_NAME} ngraph::frontend_manager::static)
|
||||
|
||||
add_clang_format_target(${PYBIND_FE_NAME}_clang FOR_TARGETS ${PYBIND_FE_NAME})
|
||||
|
@ -68,6 +68,7 @@ set "TBB_DIR=%INTEL_OPENVINO_DIR%\deployment_tools\inference_engine\external\tbb
|
||||
if exist %INTEL_OPENVINO_DIR%\deployment_tools\ngraph (
|
||||
set "OPENVINO_LIB_PATHS=%INTEL_OPENVINO_DIR%\deployment_tools\ngraph\lib;%OPENVINO_LIB_PATHS%"
|
||||
set "ngraph_DIR=%INTEL_OPENVINO_DIR%\deployment_tools\ngraph\cmake"
|
||||
set "OV_FRONTEND_PATH=%INTEL_OPENVINO_DIR%\deployment_tools\ngraph\lib;%OV_FRONTEND_PATH%"
|
||||
)
|
||||
|
||||
:: Compile tool
|
||||
|
@ -68,6 +68,7 @@ fi
|
||||
if [ -e "$INSTALLDIR/deployment_tools/ngraph" ]; then
|
||||
export LD_LIBRARY_PATH=$INSTALLDIR/deployment_tools/ngraph/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
||||
export ngraph_DIR=$INSTALLDIR/deployment_tools/ngraph/cmake
|
||||
export OV_FRONTEND_PATH=$INSTALLDIR/deployment_tools/ngraph/lib${OV_FRONTEND_PATH:+:$OV_FRONTEND_PATH}
|
||||
fi
|
||||
|
||||
if [ -e "$INSTALLDIR/opencv" ]; then
|
||||
|
Loading…
Reference in New Issue
Block a user