Merge remote-tracking branch 'upstream/master' into sync_with_master

pull/1189/head
RunningLeon 2022-10-14 16:30:37 +08:00
commit 7cbd175bdd
5 changed files with 57 additions and 15 deletions

View File

@ -47,19 +47,16 @@ jobs:
run: sudo apt-get install libopencv-dev
- name: Install mmdeploy with onnxruntime backend
run: |
mkdir -p build && pushd build
export LD_LIBRARY_PATH=/home/runner/work/mmdeploy/mmdeploy/ncnn/install/lib/:$LD_LIBRARY_PATH
cmake -DMMDEPLOY_BUILD_SDK=ON -DMMDEPLOY_BUILD_SDK_MONOLITHIC=ON -DMMDEPLOY_TARGET_BACKENDS=ort -DMMDEPLOY_CODEBASES=all -DONNXRUNTIME_DIR=~/work/mmdeploy/mmdeploy/onnxruntime-linux-x64-1.8.1 ..
make install
popd
- name: Clone rust-mmdeploy
wget https://github.com/open-mmlab/mmdeploy/releases/download/v0.9.0/mmdeploy-0.9.0-linux-x86_64-onnxruntime1.8.1.tar.gz
tar -zxvf mmdeploy-0.9.0-linux-x86_64-onnxruntime1.8.1.tar.gz
- name: Download rust-mmdeploy
run: git clone https://github.com/liu-mengyang/rust-mmdeploy
- name: Install converted models
- name: Download converted models
run: git clone https://github.com/liu-mengyang/mmdeploy-converted-models --depth=1
- name: Test rustdemo
run: |
pushd rust-mmdeploy
export MMDEPLOY_DIR=/home/runner/work/mmdeploy/mmdeploy/build/install
export MMDEPLOY_DIR=/home/runner/work/mmdeploy/mmdeploy/mmdeploy-0.9.0-linux-x86_64-onnxruntime1.8.1/sdk
export LD_LIBRARY_PATH=$MMDEPLOY_DIR/lib:$LD_LIBRARY_PATH
export ONNXRUNTIME_DIR=/home/runner/work/mmdeploy/mmdeploy/onnxruntime-linux-x64-1.8.1
export LD_LIBRARY_PATH=$ONNXRUNTIME_DIR/lib:$LD_LIBRARY_PATH

View File

@ -0,0 +1,43 @@
# Copyright (c) OpenMMLab. All rights reserved.
# Modified from https://github.com/pybind/pybind11/blob/master/tests/CMakeLists.txt
if (MSVC)
set(STD_FS_NO_LIB_NEEDED TRUE)
else ()
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/main.cpp
"#include <filesystem>\nint main(int,char**argv){return std::filesystem::path(argv[0]).string().length();}")
try_compile(HAS_INC_FS ${CMAKE_CURRENT_BINARY_DIR}
SOURCES ${CMAKE_CURRENT_BINARY_DIR}/main.cpp
COMPILE_DEFINITIONS -std=c++17 -c)
if (NOT HAS_INC_FS)
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/main.cpp
"#include <experimental/filesystem>\nint main(int,char**argv){return std::experimental::filesystem::path(argv[0]).string().length();}")
endif ()
try_compile(
STD_FS_NO_LIB_NEEDED ${CMAKE_CURRENT_BINARY_DIR}
SOURCES ${CMAKE_CURRENT_BINARY_DIR}/main.cpp
COMPILE_DEFINITIONS -std=c++17)
try_compile(
STD_FS_NEEDS_STDCXXFS ${CMAKE_CURRENT_BINARY_DIR}
SOURCES ${CMAKE_CURRENT_BINARY_DIR}/main.cpp
COMPILE_DEFINITIONS -std=c++17
LINK_LIBRARIES stdc++fs)
try_compile(
STD_FS_NEEDS_CXXFS ${CMAKE_CURRENT_BINARY_DIR}
SOURCES ${CMAKE_CURRENT_BINARY_DIR}/main.cpp
COMPILE_DEFINITIONS -std=c++17
LINK_LIBRARIES c++fs)
endif ()
if (${STD_FS_NO_LIB_NEEDED})
set(STD_FS_LIB "")
elseif (${STD_FS_NEEDS_STDCXXFS})
set(STD_FS_LIB stdc++fs)
elseif (${STD_FS_NEEDS_CXXFS})
set(STD_FS_LIB c++fs)
else ()
message(WARNING "Unknown C++17 compiler - not passing -lstdc++fs")
set(STD_FS_LIB "")
endif ()

View File

@ -6,7 +6,6 @@ project(mmdeploy_python)
set(MMDEPLOY_PYTHON_SRCS
common.cpp
internal.cpp
# executor.cpp
pipeline.cpp)
set(CMAKE_CXX_STANDARD 17)
@ -26,6 +25,10 @@ endforeach ()
pybind11_add_module(${PROJECT_NAME} ${MMDEPLOY_PYTHON_SRCS})
# https://github.com/pybind/pybind11/issues/1604
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
target_compile_options(${PROJECT_NAME} PRIVATE -fsized-deallocation)
endif ()
mmdeploy_load_static(${PROJECT_NAME} MMDeployStaticModules)
mmdeploy_load_dynamic(${PROJECT_NAME} MMDeployDynamicModules)

View File

@ -71,9 +71,12 @@ if (MMDEPLOY_BUILD_SDK_CXX_API)
endif ()
target_link_libraries(${PROJECT_NAME} PUBLIC ${SPDLOG_LIB})
if (NOT (MSVC OR ANDROID OR APPLE))
target_link_libraries(${PROJECT_NAME} PUBLIC stdc++fs)
include(${CMAKE_SOURCE_DIR}/cmake/filesystem.cmake)
if (STD_FS_LIB)
target_link_libraries(${PROJECT_NAME} PUBLIC ${STD_FS_LIB})
endif ()
add_library(mmdeploy::core ALIAS ${PROJECT_NAME})
if (MMDEPLOY_BUILD_SDK_CXX_API)

View File

@ -10,10 +10,6 @@ endif ()
foreach (MODEL_NAME ${MODEL_NAMES})
set(TARGET_MODEL_NAME mmdeploy_${MODEL_NAME})
mmdeploy_add_module(${TARGET_MODEL_NAME} ${MODEL_NAME}_impl.cpp)
# TODO: stdc++fs only exists in libstdc++
if (NOT (MSVC OR ANDROID OR APPLE))
target_link_libraries(${TARGET_MODEL_NAME} PUBLIC stdc++fs)
endif ()
if (${MODEL_NAME} STREQUAL "zip_model")
find_package(libzip QUIET)
if (libzip_FOUND)