diff --git a/CMakeLists.txt b/CMakeLists.txt index aa45e3a..3faf54f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,7 @@ project(tim-vx LANGUAGES C CXX) OPTION(TIM_VX_ENABLE_TEST "Build the unit test" ON) OPTION(TIM_VX_ENABLE_LAYOUT_INFER "Enable layout inference support" ON) OPTION(TIM_VX_CODE_COVERAGE "Run code coverage with gconv(gcc only" OFF) +option(TIM_VX_USE_EXTERNAL_OVXLIB "Use external OVXLIB" OFF) set(CMAKE_CXX_STANDARD 14) set(CMAKE_POSITION_INDEPENDENT_CODE ON) diff --git a/src/tim/CMakeLists.txt b/src/tim/CMakeLists.txt index bd14314..6e841c3 100644 --- a/src/tim/CMakeLists.txt +++ b/src/tim/CMakeLists.txt @@ -2,7 +2,15 @@ message("src/tim/vx") set(TARGET_NAME "tim-vx") -add_subdirectory("vx/internal") +if(${TIM_VX_USE_EXTERNAL_OVXLIB}) + find_library(OVXLIB_LIB NAMES "ovxlib") + message(STATUS "Using external OVXLIB from ${OVXLIB_LIB}") + add_library(tim_internal SHARED IMPORTED) + set_target_properties(tim_internal PROPERTIES IMPORTED_LOCATION ${OVXLIB_LIB}) + target_link_libraries(tim_internal INTERFACE ${OVXDRV_LIBRARIES}) +else() + add_subdirectory("vx/internal") +endif() aux_source_directory(./vx VX_SRC) aux_source_directory(./vx/ops OPS_SRC) @@ -16,7 +24,16 @@ list(APPEND SRC include_directories(${PROJECT_SOURCE_DIR}/include) include_directories(${PROJECT_SOURCE_DIR}/include/tim/vx) include_directories(${PROJECT_SOURCE_DIR}/src/tim/vx) -include_directories(${PROJECT_SOURCE_DIR}/src/tim/vx/internal/include) +if(${TIM_VX_USE_EXTERNAL_OVXLIB}) + if(NOT OVXLIB_INC) + message(FATAL_ERROR "Set OVXLIB_INC if using external OVXLIB (TIM_VX_USE_EXTERNAL_OVXLIB)") + endif() + set(OVXLIB_INCLUDE_DIR ${OVXLIB_INC}) +else() + set(OVXLIB_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/src/tim/vx/internal/include") +endif() +message(STATUS "OVXLIB include directory: ${OVXLIB_INCLUDE_DIR}") +include_directories(${OVXLIB_INCLUDE_DIR}) if(TIM_VX_ENABLE_LAYOUT_INFER) include_directories(${PROJECT_SOURCE_DIR}/)