mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-15 17:30:27 +08:00
feat: Download libraries with CMake
This commit is contained in:
@@ -14,6 +14,8 @@ option(INSTALL_THIRD_LIBS "install third party libraries" ON)
|
||||
option(MAA_DEPS_PATH "path to maa dependencies" "")
|
||||
|
||||
set(CMAKE_INSTALL_RPATH "$ORIGIN/")
|
||||
set(THIRD_PARTY_PATH ${CMAKE_CURRENT_BINARY_DIR}/third_libs)
|
||||
include(${PROJECT_SOURCE_DIR}/cmake/utils.cmake)
|
||||
|
||||
if (APPLE)
|
||||
include("${PROJECT_SOURCE_DIR}/cmake/macos.cmake")
|
||||
@@ -69,27 +71,11 @@ else ()
|
||||
find_package(OpenCV REQUIRED PATHS ${MAA_DEPS_PATH})
|
||||
target_link_libraries(MaaCore ${OpenCV_LIBS} ${FastDeploy_LIBS})
|
||||
else ()
|
||||
find_package(OpenCV REQUIRED PATHS ${OpenCV_DIR})
|
||||
target_include_directories(MaaCore PRIVATE ${OpenCV_INCLUDE_DIRS})
|
||||
target_link_libraries(MaaCore ${OpenCV_LIBS})
|
||||
|
||||
set(OPENCV_DIRECTORY ${OpenCV_INSTALL_PATH})
|
||||
include(${FASTDEPLOY_INSTALL_DIR}/FastDeploy.cmake)
|
||||
include_directories(${FASTDEPLOY_INCS})
|
||||
|
||||
target_link_libraries(MaaCore ${FDLIB})
|
||||
target_link_libraries(MaaCore ${PADDLE2ONNX_LIB})
|
||||
target_link_libraries(MaaCore ${ORT_LIB})
|
||||
include(${PROJECT_SOURCE_DIR}/cmake/opencv.cmake)
|
||||
include(${PROJECT_SOURCE_DIR}/cmake/fastdeploy.cmake)
|
||||
target_link_libraries(MaaCore ${DEPEND_LIBS})
|
||||
|
||||
install(TARGETS MaaCore DESTINATION .)
|
||||
if (INSTALL_THIRD_LIBS)
|
||||
install(DIRECTORY ${FASTDEPLOY_INSTALL_DIR}/lib/ DESTINATION . USE_SOURCE_PERMISSIONS)
|
||||
install(DIRECTORY ${FASTDEPLOY_INSTALL_DIR}/third_libs/install/paddle2onnx/lib/ DESTINATION . USE_SOURCE_PERMISSIONS)
|
||||
install(DIRECTORY ${ORT_LIB_PATH}/ DESTINATION . USE_SOURCE_PERMISSIONS)
|
||||
if (OpenCV_SHARED)
|
||||
install(DIRECTORY ${OpenCV_INSTALL_PATH}/lib/ DESTINATION . USE_SOURCE_PERMISSIONS PATTERN "cmake/*" EXCLUDE)
|
||||
endif (OpenCV_SHARED)
|
||||
endif (INSTALL_THIRD_LIBS)
|
||||
if (INSTALL_PYTHON)
|
||||
install(DIRECTORY src/Python DESTINATION .)
|
||||
endif (INSTALL_PYTHON)
|
||||
|
||||
41
cmake/fastdeploy.cmake
Normal file
41
cmake/fastdeploy.cmake
Normal file
@@ -0,0 +1,41 @@
|
||||
|
||||
|
||||
set(FASTDEPLOY_URL_PREFIX "https://github.com/aa889788/build-fastdeploy/releases/download")
|
||||
|
||||
set(FASTDEPLOY_TAG "1.0.0")
|
||||
|
||||
set(COMPRESSED_SUFFIX ".tar.gz")
|
||||
|
||||
if(UNIX)
|
||||
set(FASTDEPLOY_FILENAME "FastDeploy-Linux")
|
||||
elseif(WIN32)
|
||||
set(FASTDEPLOY_FILENAME "FastDeploy-Windows")
|
||||
elseif(APPLE)
|
||||
set(FASTDEPLOY_FILENAME "FastDeploy-macOS")
|
||||
endif(UNIX)
|
||||
|
||||
set(FASTDEPLOY_URL ${FASTDEPLOY_URL_PREFIX}/${FASTDEPLOY_TAG}/${FASTDEPLOY_FILENAME}${COMPRESSED_SUFFIX})
|
||||
|
||||
if (FASTDEPLOY_DIRECTORY)
|
||||
set(FastDeploy_DIR ${FASTDEPLOY_DIRECTORY})
|
||||
find_package(FastDeploy REQUIRED PATHS ${FastDeploy_DIR})
|
||||
include_directories(${FastDeploy_INCLUDE_DIRS})
|
||||
list(APPEND DEPEND_LIBS ${FastDeploy_LIBS})
|
||||
else ()
|
||||
download_and_decompress(${FASTDEPLOY_URL}
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${FASTDEPLOY_FILENAME}${COMPRESSED_SUFFIX}
|
||||
${THIRD_PARTY_PATH}/install/)
|
||||
set(FASTDEPLOY_FILENAME fastdeploy)
|
||||
set(FastDeploy_DIR ${THIRD_PARTY_PATH}/install/${FASTDEPLOY_FILENAME})
|
||||
|
||||
find_package(FastDeploy REQUIRED PATHS ${FastDeploy_DIR} NO_DEFAULT_PATH)
|
||||
include_directories(${FastDeploy_INCLUDE_DIRS})
|
||||
list(APPEND DEPEND_LIBS ${FastDeploy_LIBS})
|
||||
endif (FASTDEPLOY_DIRECTORY)
|
||||
|
||||
if (INSTALL_THIRD_LIBS)
|
||||
install(DIRECTORY ${FastDeploy_DIR}/lib/ DESTINATION . USE_SOURCE_PERMISSIONS)
|
||||
install(DIRECTORY ${ORT_LIB_PATH}/ DESTINATION . USE_SOURCE_PERMISSIONS)
|
||||
install(DIRECTORY ${FastDeploy_DIR}/third_libs/install/paddle2onnx/lib/
|
||||
DESTINATION . USE_SOURCE_PERMISSIONS)
|
||||
endif (INSTALL_THIRD_LIBS)
|
||||
45
cmake/opencv.cmake
Normal file
45
cmake/opencv.cmake
Normal file
@@ -0,0 +1,45 @@
|
||||
|
||||
|
||||
set(OPENCV_URL_PREFIX "https://github.com/aa889788/build-opencv/releases/download")
|
||||
|
||||
set(OPENCV_TAG "4.5.3")
|
||||
|
||||
set(COMPRESSED_SUFFIX ".tar.gz")
|
||||
|
||||
if(UNIX)
|
||||
set(OPENCV_FILENAME "OpenCV-Linux")
|
||||
elseif(WIN32)
|
||||
set(OPENCV_FILENAME "OpenCV-Windows")
|
||||
elseif(APPLE)
|
||||
set(OPENCV_FILENAME "OpenCV-macOS")
|
||||
endif(UNIX)
|
||||
|
||||
set(OPENCV_URL ${OPENCV_URL_PREFIX}/${OPENCV_TAG}/${OPENCV_FILENAME}${COMPRESSED_SUFFIX})
|
||||
|
||||
if(OPENCV_DIRECTORY)
|
||||
set(OpenCV_DIR ${OPENCV_DIRECTORY})
|
||||
find_package(OpenCV REQUIRED PATHS ${OpenCV_DIR})
|
||||
include_directories(${OpenCV_INCLUDE_DIRS})
|
||||
list(APPEND DEPEND_LIBS ${OpenCV_LIBS})
|
||||
else()
|
||||
download_and_decompress(${OPENCV_URL}
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${OPENCV_FILENAME}${COMPRESSED_SUFFIX}
|
||||
${THIRD_PARTY_PATH}/install/)
|
||||
set(OPENCV_FILENAME opencv)
|
||||
set(OpenCV_DIR ${THIRD_PARTY_PATH}/install/${OPENCV_FILENAME})
|
||||
set(OPENCV_DIRECTORY ${OpenCV_DIR})
|
||||
if (WIN32)
|
||||
set(OpenCV_DIR ${OpenCV_DIR}/lib)
|
||||
endif()
|
||||
find_package(OpenCV REQUIRED PATHS ${OpenCV_DIR} NO_DEFAULT_PATH)
|
||||
include_directories(${OpenCV_INCLUDE_DIRS})
|
||||
list(APPEND DEPEND_LIBS ${OpenCV_LIBS})
|
||||
endif(OPENCV_DIRECTORY)
|
||||
|
||||
if (INSTALL_THIRD_LIBS)
|
||||
if (OpenCV_SHARED)
|
||||
install(DIRECTORY ${OpenCV_INSTALL_PATH}/lib/
|
||||
DESTINATION .
|
||||
USE_SOURCE_PERMISSIONS PATTERN "cmake/*" EXCLUDE)
|
||||
endif (OpenCV_SHARED)
|
||||
endif (INSTALL_THIRD_LIBS)
|
||||
12
cmake/utils.cmake
Normal file
12
cmake/utils.cmake
Normal file
@@ -0,0 +1,12 @@
|
||||
function(download_and_decompress url filename decompress_dir)
|
||||
if(NOT EXISTS ${filename})
|
||||
message("Downloading file from ${url} to ${filename} ...")
|
||||
file(DOWNLOAD ${url} "${filename}.tmp" SHOW_PROGRESS)
|
||||
file(RENAME "${filename}.tmp" ${filename})
|
||||
endif()
|
||||
if(NOT EXISTS ${decompress_dir})
|
||||
file(MAKE_DIRECTORY ${decompress_dir})
|
||||
endif()
|
||||
message("Decompress file ${filename} ...")
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E tar -xf ${filename} WORKING_DIRECTORY ${decompress_dir})
|
||||
endfunction()
|
||||
Reference in New Issue
Block a user