chore(ci): 更新 macos.cmake (#15173)

This commit is contained in:
Weiyou Wang
2025-12-22 14:19:35 +11:00
committed by GitHub
parent 8ab7845222
commit 14e9d7e0ad

View File

@@ -1,33 +1,81 @@
if (BUILD_XCFRAMEWORK)
add_custom_command(OUTPUT MaaCore.xcframework
COMMAND rm -rf MaaCore.xcframework
COMMAND xcodebuild -create-xcframework -library libMaaCore.dylib -headers ${PROJECT_SOURCE_DIR}/include -output MaaCore.xcframework
set(XCFRAMEWORK_DIR "${CMAKE_BINARY_DIR}/xcframework")
file(MAKE_DIRECTORY ${XCFRAMEWORK_DIR})
# Macro to find a unique library file
macro(find_unique_library lib_name glob_pattern output_var)
file(GLOB _libs CONFIGURE_DEPENDS "${MAADEPS_DIR}/runtime/${MAADEPS_TRIPLET}/${glob_pattern}")
if(_libs)
list(LENGTH _libs _cnt)
if(_cnt EQUAL 1)
list(GET _libs 0 ${output_var})
message(STATUS "Found ${lib_name}: ${${output_var}}")
else()
message(FATAL_ERROR "Ambiguous ${lib_name} dylibs: ${_libs}")
endif()
else()
message(FATAL_ERROR "${lib_name} library not found in ${MAADEPS_DIR}/runtime/${MAADEPS_TRIPLET}/")
endif()
endmacro()
add_custom_command(OUTPUT ${XCFRAMEWORK_DIR}/MaaCore.xcframework
COMMAND ${CMAKE_COMMAND} -E rm -rf "${XCFRAMEWORK_DIR}/MaaCore.xcframework"
COMMAND xcodebuild -create-xcframework
-library $<TARGET_FILE:MaaCore>
-headers ${PROJECT_SOURCE_DIR}/include
-output MaaCore.xcframework
DEPENDS MaaCore
WORKING_DIRECTORY ${XCFRAMEWORK_DIR}
COMMENT "Generating MaaCore.xcframework"
)
add_custom_command(OUTPUT MaaUtils.xcframework
COMMAND rm -rf MaaUtils.xcframework
COMMAND xcodebuild -create-xcframework -library libMaaUtils.dylib -output MaaUtils.xcframework
add_custom_command(OUTPUT ${XCFRAMEWORK_DIR}/MaaUtils.xcframework
COMMAND ${CMAKE_COMMAND} -E rm -rf "${XCFRAMEWORK_DIR}/MaaUtils.xcframework"
COMMAND xcodebuild -create-xcframework
-library $<TARGET_FILE:MaaUtils>
-output MaaUtils.xcframework
DEPENDS MaaUtils
WORKING_DIRECTORY ${XCFRAMEWORK_DIR}
COMMENT "Generating MaaUtils.xcframework"
)
add_custom_command(OUTPUT OpenCV.xcframework
COMMAND rm -rf OpenCV.xcframework
COMMAND xcodebuild -create-xcframework -library "${MAADEPS_DIR}/runtime/${MAADEPS_TRIPLET}/libopencv_world4.408.dylib" -output OpenCV.xcframework
find_unique_library("OpenCV" "libopencv_world*.dylib" OPENCV_LIB)
add_custom_command(OUTPUT ${XCFRAMEWORK_DIR}/OpenCV.xcframework
COMMAND ${CMAKE_COMMAND} -E rm -rf "${XCFRAMEWORK_DIR}/OpenCV.xcframework"
COMMAND xcodebuild -create-xcframework
-library "${OPENCV_LIB}"
-output OpenCV.xcframework
WORKING_DIRECTORY ${XCFRAMEWORK_DIR}
COMMENT "Generating OpenCV.xcframework"
)
add_custom_command(OUTPUT ONNXRuntime.xcframework
COMMAND rm -rf ONNXRuntime.xcframework
COMMAND xcodebuild -create-xcframework -library "${MAADEPS_DIR}/runtime/${MAADEPS_TRIPLET}/libonnxruntime.1.18.0.dylib" -output ONNXRuntime.xcframework
find_unique_library("ONNXRuntime" "libonnxruntime*.dylib" ONNXRUNTIME_LIB)
add_custom_command(OUTPUT ${XCFRAMEWORK_DIR}/ONNXRuntime.xcframework
COMMAND ${CMAKE_COMMAND} -E rm -rf "${XCFRAMEWORK_DIR}/ONNXRuntime.xcframework"
COMMAND xcodebuild -create-xcframework
-library "${ONNXRUNTIME_LIB}"
-output ONNXRuntime.xcframework
WORKING_DIRECTORY ${XCFRAMEWORK_DIR}
COMMENT "Generating ONNXRuntime.xcframework"
)
add_custom_command(OUTPUT fastdeploy_ppocr.xcframework
COMMAND rm -rf fastdeploy_ppocr.xcframework
COMMAND xcodebuild -create-xcframework -library "${MAADEPS_DIR}/runtime/${MAADEPS_TRIPLET}/libfastdeploy_ppocr.dylib" -output fastdeploy_ppocr.xcframework
add_custom_command(OUTPUT ${XCFRAMEWORK_DIR}/fastdeploy_ppocr.xcframework
COMMAND ${CMAKE_COMMAND} -E rm -rf "${XCFRAMEWORK_DIR}/fastdeploy_ppocr.xcframework"
COMMAND xcodebuild -create-xcframework
-library "${MAADEPS_DIR}/runtime/${MAADEPS_TRIPLET}/libfastdeploy_ppocr.dylib"
-output fastdeploy_ppocr.xcframework
WORKING_DIRECTORY ${XCFRAMEWORK_DIR}
COMMENT "Generating fastdeploy_ppocr.xcframework"
)
add_custom_target(MaaXCFramework ALL
DEPENDS MaaCore MaaCore.xcframework MaaUtils MaaUtils.xcframework OpenCV.xcframework ONNXRuntime.xcframework fastdeploy_ppocr.xcframework
DEPENDS
MaaCore
${XCFRAMEWORK_DIR}/MaaCore.xcframework
MaaUtils
${XCFRAMEWORK_DIR}/MaaUtils.xcframework
${XCFRAMEWORK_DIR}/OpenCV.xcframework
${XCFRAMEWORK_DIR}/ONNXRuntime.xcframework
${XCFRAMEWORK_DIR}/fastdeploy_ppocr.xcframework
)
endif (BUILD_XCFRAMEWORK)