718c41634f
1.项目后端整体迁移至PaddleOCR-NCNN算法,已通过基本的兼容性测试 2.工程改为使用CMake组织,后续为了更好地兼容第三方库,不再提供QMake工程 3.重整权利声明文件,重整代码工程,确保最小化侵权风险 Log: 切换后端至PaddleOCR-NCNN,切换工程为CMake Change-Id: I4d5d2c5d37505a4a24b389b1a4c5d12f17bfa38c
71 lines
2.1 KiB
CMake
71 lines
2.1 KiB
CMake
|
|
if(NOT CMAKE_VERSION VERSION_LESS "3.15")
|
|
# enable CMAKE_MSVC_RUNTIME_LIBRARY
|
|
cmake_policy(SET CMP0091 NEW)
|
|
endif()
|
|
|
|
project(pnnx)
|
|
cmake_minimum_required(VERSION 3.12)
|
|
|
|
if(POLICY CMP0074)
|
|
cmake_policy(SET CMP0074 NEW)
|
|
endif()
|
|
|
|
if(MSVC AND NOT CMAKE_VERSION VERSION_LESS "3.15")
|
|
option(PNNX_BUILD_WITH_STATIC_CRT "Enables use of statically linked CRT for statically linked pnnx" OFF)
|
|
if(PNNX_BUILD_WITH_STATIC_CRT)
|
|
# cmake before version 3.15 not work
|
|
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
|
endif()
|
|
endif()
|
|
|
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
|
include(PNNXPyTorch)
|
|
|
|
# c++14 is required for using torch headers
|
|
set(CMAKE_CXX_STANDARD 14)
|
|
|
|
#set(CMAKE_BUILD_TYPE debug)
|
|
#set(CMAKE_BUILD_TYPE relwithdebinfo)
|
|
#set(CMAKE_BUILD_TYPE release)
|
|
|
|
option(PNNX_COVERAGE "build for coverage" OFF)
|
|
|
|
#set(Torch_INSTALL_DIR "/home/nihui/.local/lib/python3.9/site-packages/torch" CACHE STRING "")
|
|
#set(Torch_INSTALL_DIR "/home/nihui/osd/pnnx/pytorch-v1.10.0/build/install" CACHE STRING "")
|
|
#set(Torch_INSTALL_DIR "/home/nihui/osd/pnnx/libtorch" CACHE STRING "")
|
|
set(TorchVision_INSTALL_DIR "/home/nihui/osd/vision/build/install" CACHE STRING "")
|
|
|
|
#set(Torch_DIR "${Torch_INSTALL_DIR}/share/cmake/Torch")
|
|
set(TorchVision_DIR "${TorchVision_INSTALL_DIR}/share/cmake/TorchVision")
|
|
|
|
find_package(Python3 COMPONENTS Interpreter Development)
|
|
|
|
PNNXProbeForPyTorchInstall()
|
|
find_package(Torch REQUIRED)
|
|
|
|
find_package(TorchVision QUIET)
|
|
|
|
message(STATUS "Torch_VERSION = ${Torch_VERSION}")
|
|
message(STATUS "Torch_VERSION_MAJOR = ${Torch_VERSION_MAJOR}")
|
|
message(STATUS "Torch_VERSION_MINOR = ${Torch_VERSION_MINOR}")
|
|
message(STATUS "Torch_VERSION_PATCH = ${Torch_VERSION_PATCH}")
|
|
|
|
if(Torch_VERSION VERSION_LESS "1.8")
|
|
message(FATAL_ERROR "pnnx only supports PyTorch >= 1.8")
|
|
endif()
|
|
|
|
if(TorchVision_FOUND)
|
|
message(STATUS "Building with TorchVision")
|
|
add_definitions(-DPNNX_TORCHVISION)
|
|
else()
|
|
message(WARNING "Building without TorchVision")
|
|
endif()
|
|
|
|
include_directories(${TORCH_INCLUDE_DIRS})
|
|
|
|
add_subdirectory(src)
|
|
|
|
enable_testing()
|
|
add_subdirectory(tests)
|