[Bug Fix] fix build error while enable flycv on linux x64 (#1365)

* [Bug Fix] fix build error while enable flycv on linux x64

* [Bug Fix] fix build error while enable flycv on linux x64

* move WITH_FLYCV_STATIC option -> flycv.cmake
This commit is contained in:
DefTruth
2023-02-20 13:52:31 +08:00
committed by GitHub
parent 9b482b72fb
commit 95f809c1ff
5 changed files with 83 additions and 41 deletions

3
.gitignore vendored
View File

@@ -41,4 +41,5 @@ yalc.*
examples/vision/collect_quantize_cc.sh examples/vision/collect_quantize_cc.sh
examples/vision/tests_quantize examples/vision/tests_quantize
fastdeploy/LICENSE fastdeploy/LICENSE
fastdeploy/ThirdPartyNotices.txt fastdeploy/ThirdPartyNotices.txt
FastDeployCSharp.cmake

View File

@@ -79,12 +79,12 @@ option(WITH_CSHARPAPI "Whether to compile with c# api" OFF)
############################# Options for Android cross compiling ######################### ############################# Options for Android cross compiling #########################
if(ANDROID) if(ANDROID)
option(WITH_OPENCV_STATIC "Whether to use OpenCV static lib for Android." OFF) option(WITH_OPENCV_STATIC "Whether to use OpenCV static lib for Android." OFF)
option(WITH_LITE_STATIC "Whether to use OpenCV Paddle Lite static lib for Android." OFF) option(WITH_LITE_STATIC "Whether to use Paddle Lite static lib for Android." OFF)
option(WITH_FLYCV_STATIC "Whether to use OpenCV FlyCV static lib for Android." OFF) option(WITH_OPENMP "Whether to use OpenMP support for Android." OFF)
option(WITH_OPENMP "Whether to use OpenCV OpenMP support for Android." OFF) option(WITH_JAVA "Whether to build JNI lib for Android." OFF)
option(WITH_JAVA "Whether to build jni lib for Android." OFF)
option(WITH_STATIC_LIB "Whether to build FastDeploy static lib." OFF) option(WITH_STATIC_LIB "Whether to build FastDeploy static lib." OFF)
endif() endif()
# Whether to build fastdeploy with vision/text/... examples, only for testings. # Whether to build fastdeploy with vision/text/... examples, only for testings.
option(BUILD_EXAMPLES "Whether to build fastdeploy with vision examples" OFF) option(BUILD_EXAMPLES "Whether to build fastdeploy with vision examples" OFF)

View File

@@ -35,6 +35,8 @@ set(CMAKE_BUILD_RPATH "${CMAKE_BUILD_RPATH}"
include_directories(${FLYCV_INC_DIR}) include_directories(${FLYCV_INC_DIR})
option(WITH_FLYCV_STATIC "Whether to use FlyCV static lib for Android/Linux." OFF)
# ABI check # ABI check
if(ANDROID) if(ANDROID)
if((NOT ANDROID_ABI MATCHES "armeabi-v7a") AND (NOT ANDROID_ABI MATCHES "arm64-v8a")) if((NOT ANDROID_ABI MATCHES "armeabi-v7a") AND (NOT ANDROID_ABI MATCHES "arm64-v8a"))
@@ -64,9 +66,15 @@ elseif(ANDROID)
CACHE FILEPATH "flycv compile library." FORCE) CACHE FILEPATH "flycv compile library." FORCE)
endif() endif()
else() else()
set(FLYCV_COMPILE_LIB if(WITH_FLYCV_STATIC)
set(FLYCV_COMPILE_LIB
"${FLYCV_INSTALL_DIR}/lib/libflycv_static.a"
CACHE FILEPATH "flycv compile library." FORCE)
else()
set(FLYCV_COMPILE_LIB
"${FLYCV_INSTALL_DIR}/lib/libflycv_shared.so" "${FLYCV_INSTALL_DIR}/lib/libflycv_shared.so"
CACHE FILEPATH "flycv compile library." FORCE) CACHE FILEPATH "flycv compile library." FORCE)
endif()
endif(WIN32) endif(WIN32)
set(FLYCV_URL_BASE "https://bj.bcebos.com/fastdeploy/third_libs/") set(FLYCV_URL_BASE "https://bj.bcebos.com/fastdeploy/third_libs/")
@@ -93,7 +101,8 @@ else()
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm") elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
set(FLYCV_FILE "flycv-linux-armhf-${FLYCV_VERSION}.tgz") set(FLYCV_FILE "flycv-linux-armhf-${FLYCV_VERSION}.tgz")
else() else()
set(FLYCV_FILE "flycv-linux-x64-${FLYCV_VERSION}.tgz") # set(FLYCV_FILE "flycv-linux-x64-${FLYCV_VERSION}.tgz")
set(FLYCV_FILE "flycv-linux-x64-1.1.0-dev.tgz")
endif() endif()
endif() endif()
endif() endif()
@@ -142,20 +151,44 @@ set_property(TARGET external_flycv PROPERTY IMPORTED_LOCATION
add_dependencies(external_flycv ${FLYCV_PROJECT}) add_dependencies(external_flycv ${FLYCV_PROJECT})
set(FLYCV_LIBRARIES external_flycv) set(FLYCV_LIBRARIES external_flycv)
if(ANDROID AND WITH_FLYCV_STATIC) if(WITH_FLYCV_STATIC)
add_library(external_flycv_png16 STATIC IMPORTED GLOBAL) if (ANDROID)
add_library(external_flycv_turbojpeg STATIC IMPORTED GLOBAL) add_library(external_flycv_png16 STATIC IMPORTED GLOBAL)
add_library(external_flycv_z STATIC IMPORTED GLOBAL) add_library(external_flycv_turbojpeg STATIC IMPORTED GLOBAL)
set_property(TARGET external_flycv_png16 PROPERTY IMPORTED_LOCATION add_library(external_flycv_z STATIC IMPORTED GLOBAL)
"${FLYCV_INSTALL_DIR}/lib/${ANDROID_ABI}/libpng16.a") set_property(TARGET external_flycv_png16 PROPERTY IMPORTED_LOCATION
set_property(TARGET external_flycv_turbojpeg PROPERTY IMPORTED_LOCATION "${FLYCV_INSTALL_DIR}/lib/${ANDROID_ABI}/libpng16.a")
"${FLYCV_INSTALL_DIR}/lib/${ANDROID_ABI}/libturbojpeg.a") set_property(TARGET external_flycv_turbojpeg PROPERTY IMPORTED_LOCATION
set_property(TARGET external_flycv_z PROPERTY IMPORTED_LOCATION "${FLYCV_INSTALL_DIR}/lib/${ANDROID_ABI}/libturbojpeg.a")
"${FLYCV_INSTALL_DIR}/lib/${ANDROID_ABI}/libz.a") set_property(TARGET external_flycv_z PROPERTY IMPORTED_LOCATION
add_dependencies(external_flycv_png16 ${FLYCV_PROJECT}) "${FLYCV_INSTALL_DIR}/lib/${ANDROID_ABI}/libz.a")
add_dependencies(external_flycv_turbojpeg ${FLYCV_PROJECT}) add_dependencies(external_flycv_png16 ${FLYCV_PROJECT})
add_dependencies(external_flycv_z ${FLYCV_PROJECT}) add_dependencies(external_flycv_turbojpeg ${FLYCV_PROJECT})
list(APPEND FLYCV_LIBRARIES external_flycv_png16) add_dependencies(external_flycv_z ${FLYCV_PROJECT})
list(APPEND FLYCV_LIBRARIES external_flycv_turbojpeg) list(APPEND FLYCV_LIBRARIES external_flycv_png16)
list(APPEND FLYCV_LIBRARIES external_flycv_z) list(APPEND FLYCV_LIBRARIES external_flycv_turbojpeg)
list(APPEND FLYCV_LIBRARIES external_flycv_z)
elseif(APPLE OR WIN32)
message(FATAL_ERROR "Not support FlyCV static lib for APPLE/WIN32 now!")
else()
if((CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64") OR (CMAKE_SYSTEM_PROCESSOR MATCHES "arm"))
message(FATAL_ERROR "Not support FlyCV static lib for aarch64/arm linux now!")
else()
add_library(external_flycv_png16 STATIC IMPORTED GLOBAL)
add_library(external_flycv_turbojpeg STATIC IMPORTED GLOBAL)
add_library(external_flycv_z STATIC IMPORTED GLOBAL)
set_property(TARGET external_flycv_png16 PROPERTY IMPORTED_LOCATION
"${FLYCV_INSTALL_DIR}/lib/libpng16.a")
set_property(TARGET external_flycv_turbojpeg PROPERTY IMPORTED_LOCATION
"${FLYCV_INSTALL_DIR}/lib/libturbojpeg.a")
set_property(TARGET external_flycv_z PROPERTY IMPORTED_LOCATION
"${FLYCV_INSTALL_DIR}/lib/libz.a")
add_dependencies(external_flycv_png16 ${FLYCV_PROJECT})
add_dependencies(external_flycv_turbojpeg ${FLYCV_PROJECT})
add_dependencies(external_flycv_z ${FLYCV_PROJECT})
list(APPEND FLYCV_LIBRARIES external_flycv_png16)
list(APPEND FLYCV_LIBRARIES external_flycv_turbojpeg)
list(APPEND FLYCV_LIBRARIES external_flycv_z)
endif()
endif()
endif() endif()

View File

@@ -40,13 +40,36 @@ function(fastdeploy_summary)
message(STATUS " ENABLE_TRT_BACKEND : ${ENABLE_TRT_BACKEND}") message(STATUS " ENABLE_TRT_BACKEND : ${ENABLE_TRT_BACKEND}")
message(STATUS " ENABLE_OPENVINO_BACKEND : ${ENABLE_OPENVINO_BACKEND}") message(STATUS " ENABLE_OPENVINO_BACKEND : ${ENABLE_OPENVINO_BACKEND}")
message(STATUS " ENABLE_BENCHMARK : ${ENABLE_BENCHMARK}") message(STATUS " ENABLE_BENCHMARK : ${ENABLE_BENCHMARK}")
message(STATUS " ENABLE_VISION : ${ENABLE_VISION}")
message(STATUS " ENABLE_TEXT : ${ENABLE_TEXT}")
message(STATUS " ENABLE_ENCRYPTION : ${ENABLE_ENCRYPTION}")
message(STATUS " ENABLE_FLYCV : ${ENABLE_FLYCV}")
message(STATUS " ENABLE_CVCUDA : ${ENABLE_CVCUDA}")
message(STATUS " WITH_GPU : ${WITH_GPU}") message(STATUS " WITH_GPU : ${WITH_GPU}")
message(STATUS " WITH_IPU : ${WITH_IPU}")
message(STATUS " WITH_TESTING : ${WITH_TESTING}") message(STATUS " WITH_TESTING : ${WITH_TESTING}")
message(STATUS " WITH_ASCEND : ${WITH_ASCEND}") message(STATUS " WITH_ASCEND : ${WITH_ASCEND}")
message(STATUS " WITH_DIRECTML : ${WITH_DIRECTML}") message(STATUS " WITH_DIRECTML : ${WITH_DIRECTML}")
message(STATUS " WITH_TIMVX : ${WITH_TIMVX}") message(STATUS " WITH_TIMVX : ${WITH_TIMVX}")
message(STATUS " WITH_KUNLUNXIN : ${WITH_KUNLUNXIN}") message(STATUS " WITH_KUNLUNXIN : ${WITH_KUNLUNXIN}")
message(STATUS " WITH_CAPI : ${WITH_CAPI}") message(STATUS " WITH_CAPI : ${WITH_CAPI}")
message(STATUS " WITH_CSHARPAPI : ${WITH_CSHARPAPI}")
if(ENABLE_FLYCV)
message(STATUS " WITH_FLYCV_STATIC: : ${WITH_FLYCV_STATIC}")
endif()
if(ANDROID)
message(STATUS " WITH_STATIC_LIB: : ${WITH_STATIC_LIB}")
message(STATUS " WITH_OPENCV_STATIC: : ${WITH_OPENCV_STATIC}")
if(ENABLE_LITE_BACKEND)
message(STATUS " WITH_LITE_STATIC : ${WITH_LITE_STATIC}")
endif()
message(STATUS " WITH_OPENMP: : ${WITH_OPENMP}")
message(STATUS " WITH_JAVA: : ${WITH_JAVA}")
message(STATUS " ANDROID_ABI : ${ANDROID_ABI}")
message(STATUS " ANDROID_PLATFORM : ${ANDROID_PLATFORM}")
message(STATUS " ANDROID_NDK : ${ANDROID_NDK}")
message(STATUS " ANDROID_NDK_MAJOR : ${ANDROID_NDK_MAJOR}")
endif()
if(ENABLE_ORT_BACKEND) if(ENABLE_ORT_BACKEND)
message(STATUS " ONNXRuntime version : ${ONNXRUNTIME_VERSION}") message(STATUS " ONNXRuntime version : ${ONNXRUNTIME_VERSION}")
endif() endif()
@@ -63,23 +86,6 @@ function(fastdeploy_summary)
message(STATUS " CUDA_DIRECTORY : ${CUDA_DIRECTORY}") message(STATUS " CUDA_DIRECTORY : ${CUDA_DIRECTORY}")
message(STATUS " TRT_DRECTORY : ${TRT_DIRECTORY}") message(STATUS " TRT_DRECTORY : ${TRT_DIRECTORY}")
endif() endif()
message(STATUS " ENABLE_VISION : ${ENABLE_VISION}")
message(STATUS " ENABLE_TEXT : ${ENABLE_TEXT}")
message(STATUS " ENABLE_ENCRYPTION : ${ENABLE_ENCRYPTION}")
if(ANDROID)
message(STATUS " ANDROID_ABI : ${ANDROID_ABI}")
message(STATUS " ANDROID_PLATFORM : ${ANDROID_PLATFORM}")
message(STATUS " ANDROID_NDK : ${ANDROID_NDK}")
message(STATUS " ANDROID_NDK_MAJOR : ${ANDROID_NDK_MAJOR}")
message(STATUS " WITH_STATIC_LIB: : ${WITH_STATIC_LIB}")
message(STATUS " WITH_OPENCV_STATIC: : ${WITH_OPENCV_STATIC}")
message(STATUS " WITH_FLYCV_STATIC: : ${WITH_FLYCV_STATIC}")
if(ENABLE_LITE_BACKEND)
message(STATUS " WITH_LITE_STATIC : ${WITH_LITE_STATIC}")
endif()
message(STATUS " WITH_OPENMP: : ${WITH_OPENMP}")
message(STATUS " WITH_JAVA: : ${WITH_JAVA}")
endif()
if (${BUILD_FASTDEPLOY_PYTHON}) if (${BUILD_FASTDEPLOY_PYTHON})
message(STATUS " Python executable : ${PYTHON_EXECUTABLE}") message(STATUS " Python executable : ${PYTHON_EXECUTABLE}")
message(STATUS " Python includes : ${PYTHON_INCLUDE_DIR}") message(STATUS " Python includes : ${PYTHON_INCLUDE_DIR}")

View File

@@ -60,6 +60,8 @@ __build_fastdeploy_linux_x86_64_shared() {
-DENABLE_PADDLE2ONNX=ON \ -DENABLE_PADDLE2ONNX=ON \
-DENABLE_VISION=ON \ -DENABLE_VISION=ON \
-DENABLE_BENCHMARK=ON \ -DENABLE_BENCHMARK=ON \
-DENABLE_FLYCV=OFF \
-DWITH_FLYCV_STATIC=OFF \
-DBUILD_EXAMPLES=ON \ -DBUILD_EXAMPLES=ON \
-DCMAKE_INSTALL_PREFIX=${FASDEPLOY_INSTALL_DIR} \ -DCMAKE_INSTALL_PREFIX=${FASDEPLOY_INSTALL_DIR} \
-Wno-dev ../../.. && make -j8 && make install -Wno-dev ../../.. && make -j8 && make install