mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-15 17:30:27 +08:00
Merge pull request #3079 from hguandl/osx/multiple-builds
macOS: 分别编译 x86_64 和 arm64 应用
This commit is contained in:
4
.github/workflows/dev-build-mac.yml
vendored
4
.github/workflows/dev-build-mac.yml
vendored
@@ -44,12 +44,12 @@ jobs:
|
||||
- name: Configure MaaCore
|
||||
run: |
|
||||
mkdir build && cd build
|
||||
cmake .. -GNinja -DBUILD_XCFRAMEWORK=ON -DBUILD_UNIVERSAL=ON
|
||||
cmake .. -GNinja -DBUILD_XCFRAMEWORK=ON
|
||||
- name: Build libMaaCore
|
||||
run: cmake --build build
|
||||
- name: Build MAA
|
||||
working-directory: src/MaaMacGui
|
||||
run: xcodebuild ARCHS="arm64 x86_64" CODE_SIGN_IDENTITY="-" DEVELOPMENT_TEAM="-" ONLY_ACTIVE_ARCH=NO -derivedDataPath DerivedData -project MeoAsstMac.xcodeproj -scheme MAA
|
||||
run: xcodebuild CODE_SIGN_IDENTITY="-" DEVELOPMENT_TEAM="-" -derivedDataPath DerivedData -project MeoAsstMac.xcodeproj -scheme MAA-x86_64
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: MAA-macos
|
||||
|
||||
37
.github/workflows/release-maa-mac.yml
vendored
37
.github/workflows/release-maa-mac.yml
vendored
@@ -8,6 +8,11 @@ jobs:
|
||||
macos-latest:
|
||||
name: macos-latest
|
||||
runs-on: macos-12
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
arch: [arm64, x86_64]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
@@ -29,28 +34,34 @@ jobs:
|
||||
- name: Configure MaaCore
|
||||
run: |
|
||||
mkdir build && cd build
|
||||
cmake .. -GNinja -DCMAKE_BUILD_TYPE=Release -DBUILD_XCFRAMEWORK=ON -DBUILD_UNIVERSAL=ON
|
||||
cmake .. -GNinja -DCMAKE_BUILD_TYPE=Release -DBUILD_XCFRAMEWORK=ON -DCMAKE_OSX_ARCHITECTURES=${{ matrix.arch }}
|
||||
- name: Build libMaaCore
|
||||
run: cmake --build build
|
||||
- name: Build MAA
|
||||
working-directory: src/MaaMacGui
|
||||
run: xcodebuild -project MeoAsstMac.xcodeproj -scheme MAA archive -archivePath MAA.xcarchive -configuration Release
|
||||
run: xcodebuild -project MeoAsstMac.xcodeproj -scheme MAA-${{ matrix.arch }} archive -archivePath MAA.xcarchive -configuration Release-${{ matrix.arch }}
|
||||
- name: Export MAA
|
||||
working-directory: src/MaaMacGui
|
||||
run: xcodebuild -exportArchive -archivePath MAA.xcarchive -exportOptionsPlist ExportOptions.plist -exportPath Export
|
||||
- name: Create disk image
|
||||
working-directory: src/MaaMacGui
|
||||
run: create-dmg --background dmg-bkg.png --window-size 500 300 --icon-size 128 --icon MAA.app 0 120 --hide-extension MAA.app --app-drop-link 270 120 MAA.dmg Export/MAA.app
|
||||
run: create-dmg --background dmg-bkg.png --window-size 500 300 --icon-size 128 --icon MAA.app 0 120 --hide-extension MAA.app --app-drop-link 270 120 MAA-${{ matrix.arch }}.dmg Export/MAA.app
|
||||
- name: Archive debug symbols
|
||||
working-directory: src/MaaMacGui/MAA.xcarchive/dSYMs
|
||||
run: ditto -c -k --keepParent MAA.app.dSYM MAA.app.dSYM.zip
|
||||
run: ditto -c -k --keepParent MAA.app.dSYM MAA-${{ matrix.arch }}.app.dSYM.zip
|
||||
- name: Place packages
|
||||
run: |
|
||||
GIT_TAG=${GITHUB_REF#refs/*/}
|
||||
APP_DMG=MAA-${GIT_TAG}-macos-${{ matrix.arch }}.dmg
|
||||
APP_SYM=MAAComponent-DebugSymbol-${GIT_TAG}-macos-${{ matrix.arch }}.zip
|
||||
mkdir -p release
|
||||
mv src/MaaMacGui/MAA-${{ matrix.arch }}.dmg release/${APP_DMG}
|
||||
mv src/MaaMacGui/MAA.xcarchive/dSYMs/MAA-${{ matrix.arch }}.app.dSYM.zip release/${APP_SYM}
|
||||
- name: Upload products
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: MAA-macos
|
||||
path: |
|
||||
src/MaaMacGui/MAA.dmg
|
||||
src/MaaMacGui/MAA.xcarchive/dSYMs/MAA.app.dSYM.zip
|
||||
path: release
|
||||
|
||||
macos-release:
|
||||
name: macos-release
|
||||
@@ -61,25 +72,23 @@ jobs:
|
||||
run: |
|
||||
GIT_TAG=${GITHUB_REF#refs/*/}
|
||||
echo "GIT_TAG=${GIT_TAG}" >> $GITHUB_ENV
|
||||
echo "APP_DMG=MAA-${GIT_TAG}-macos.dmg" >> $GITHUB_ENV
|
||||
echo "APP_SYM=MAAComponent-DebugSymbol-${GIT_TAG}-macos.zip" >> $GITHUB_ENV
|
||||
- name: Download artifacts
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: MAA-macos
|
||||
- name: 'Verify image'
|
||||
run: |
|
||||
mv MAA.dmg $APP_DMG
|
||||
mv MAA.xcarchive/dSYMs/MAA.app.dSYM.zip $APP_SYM
|
||||
hdiutil verify $APP_DMG
|
||||
find . -name "*.dmg" -exec hdiutil verify {} \;
|
||||
- name: 'Notarize image'
|
||||
env:
|
||||
NOTARY_USER: ${{ secrets.HGUANDL_NOTARY_AAPL_ID }}
|
||||
NOTARY_PASSWD: ${{ secrets.HGUANDL_NOTARY_PASSWD }}
|
||||
NOTARY_TEAM: ${{ secrets.HGUANDL_SIGN_IDENTITY }}
|
||||
run: |
|
||||
xcrun notarytool submit --apple-id "$NOTARY_USER" --password "$NOTARY_PASSWD" --team-id "$NOTARY_TEAM" --wait $APP_DMG
|
||||
xcrun stapler staple $APP_DMG
|
||||
find . -name "*.dmg" | while read dmg; do
|
||||
xcrun notarytool submit --apple-id "$NOTARY_USER" --password "$NOTARY_PASSWD" --team-id "$NOTARY_TEAM" --wait ${dmg}
|
||||
xcrun stapler staple ${dmg}
|
||||
done
|
||||
- name: Upload image to release
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
with:
|
||||
|
||||
@@ -17,10 +17,6 @@ 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")
|
||||
endif ()
|
||||
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
@@ -65,25 +61,18 @@ else ()
|
||||
target_link_libraries(MaaCore range-v3::range-v3)
|
||||
endif ()
|
||||
|
||||
if (APPLE)
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET 12.0)
|
||||
message(STATUS "MAA_DEPS_PATH: ${MAA_DEPS_PATH}")
|
||||
find_package(OpenCV REQUIRED PATHS ${MAA_DEPS_PATH})
|
||||
target_link_libraries(MaaCore ${OpenCV_LIBS} ${FastDeploy_LIBS})
|
||||
else ()
|
||||
include(${PROJECT_SOURCE_DIR}/cmake/opencv.cmake)
|
||||
include(${PROJECT_SOURCE_DIR}/cmake/fastdeploy.cmake)
|
||||
target_link_libraries(MaaCore ${DEPEND_LIBS})
|
||||
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_PYTHON)
|
||||
install(DIRECTORY src/Python DESTINATION .)
|
||||
endif (INSTALL_PYTHON)
|
||||
if (INSTALL_RESOURCE)
|
||||
install(DIRECTORY resource DESTINATION .)
|
||||
install(DIRECTORY 3rdparty/resource DESTINATION .)
|
||||
endif (INSTALL_RESOURCE)
|
||||
endif (APPLE)
|
||||
install(TARGETS MaaCore DESTINATION .)
|
||||
if (INSTALL_PYTHON)
|
||||
install(DIRECTORY src/Python DESTINATION .)
|
||||
endif (INSTALL_PYTHON)
|
||||
if (INSTALL_RESOURCE)
|
||||
install(DIRECTORY resource DESTINATION .)
|
||||
install(DIRECTORY 3rdparty/resource DESTINATION .)
|
||||
endif (INSTALL_RESOURCE)
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -idirafter ${PROJECT_SOURCE_DIR}/3rdparty/include")
|
||||
endif ()
|
||||
@@ -93,22 +82,9 @@ if (BUILD_TEST)
|
||||
target_link_libraries(test MaaCore)
|
||||
endif (BUILD_TEST)
|
||||
|
||||
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
|
||||
DEPENDS MaaCore
|
||||
)
|
||||
|
||||
add_custom_command(OUTPUT Paddle2ONNX.xcframework
|
||||
COMMAND rm -rf Paddle2ONNX.xcframework
|
||||
COMMAND xcodebuild -create-xcframework -library ${MAA_DEPS_PATH}/lib/libpaddle2onnx.1.0.4.dylib -output Paddle2ONNX.xcframework
|
||||
)
|
||||
|
||||
add_custom_target(MaaXCFramework ALL
|
||||
DEPENDS MaaCore Paddle2ONNX.xcframework MaaCore.xcframework
|
||||
)
|
||||
endif (BUILD_XCFRAMEWORK)
|
||||
if (APPLE)
|
||||
include(${PROJECT_SOURCE_DIR}/cmake/macos.cmake)
|
||||
endif (APPLE)
|
||||
|
||||
# define MAA_VERSION from git
|
||||
if (NOT MAA_VERSION)
|
||||
|
||||
@@ -6,13 +6,21 @@ set(FASTDEPLOY_TAG "g22325d23")
|
||||
|
||||
set(COMPRESSED_SUFFIX ".tar.gz")
|
||||
|
||||
if(UNIX)
|
||||
set(FASTDEPLOY_FILENAME "FastDeploy-Linux")
|
||||
set(FASTDEPLOY_CHECKSUM "b13891669242c6d219508ae99afba9fadde1ada4af9b3d5781298f58fef9bd34")
|
||||
elseif(WIN32)
|
||||
if(WIN32)
|
||||
set(FASTDEPLOY_FILENAME "FastDeploy-Windows")
|
||||
set(FASTDEPLOY_CHECKSUM "83e23fd701c828b8e15e38806db65cde71c4fbba3482ca1e24ba23c44fb19028")
|
||||
endif(UNIX)
|
||||
elseif(APPLE)
|
||||
if (CURRENT_OSX_ARCH STREQUAL "arm64")
|
||||
set(FASTDEPLOY_FILENAME "FastDeploy-macOS-arm64")
|
||||
set(FASTDEPLOY_CHECKSUM "e77cd3382859165dddcf98d71f433b815345baa11b3c2b01ce16bb2141f78a8a")
|
||||
else()
|
||||
set(FASTDEPLOY_FILENAME "FastDeploy-macOS-x86_64")
|
||||
set(FASTDEPLOY_CHECKSUM "7f1d5c4be83a479b819c33b094db5db565ae14c07bf0977b6a9b7a68d6b2a013")
|
||||
endif()
|
||||
else()
|
||||
set(FASTDEPLOY_FILENAME "FastDeploy-Linux")
|
||||
set(FASTDEPLOY_CHECKSUM "b13891669242c6d219508ae99afba9fadde1ada4af9b3d5781298f58fef9bd34")
|
||||
endif(WIN32)
|
||||
|
||||
set(FASTDEPLOY_URL ${FASTDEPLOY_URL_PREFIX}/${FASTDEPLOY_TAG}/${FASTDEPLOY_FILENAME}${COMPRESSED_SUFFIX})
|
||||
|
||||
@@ -28,10 +36,14 @@ else ()
|
||||
${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})
|
||||
|
||||
if (APPLE)
|
||||
list(APPEND DEPEND_LIBS ${FastDeploy_DIR}/lib/libfastdeploy.dylib)
|
||||
else ()
|
||||
find_package(FastDeploy REQUIRED PATHS ${FastDeploy_DIR} NO_DEFAULT_PATH)
|
||||
include_directories(${FastDeploy_INCLUDE_DIRS})
|
||||
list(APPEND DEPEND_LIBS ${FastDeploy_LIBS})
|
||||
endif (APPLE)
|
||||
endif (FASTDEPLOY_DIRECTORY)
|
||||
|
||||
if (INSTALL_THIRD_LIBS)
|
||||
|
||||
@@ -1,47 +1,32 @@
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET 11.0)
|
||||
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
|
||||
DEPENDS MaaCore
|
||||
)
|
||||
|
||||
if (BUILD_UNIVERSAL)
|
||||
set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64")
|
||||
endif ()
|
||||
add_custom_command(OUTPUT OpenCV.xcframework
|
||||
COMMAND rm -rf OpenCV.xcframework
|
||||
COMMAND mv ${OPENCV_DIRECTORY}/lib/libopencv_world.4.5.3.dylib ${OPENCV_DIRECTORY}/lib/libopencv_world.4.5.dylib
|
||||
COMMAND xcodebuild -create-xcframework -library ${OPENCV_DIRECTORY}/lib/libopencv_world.4.5.dylib -output OpenCV.xcframework
|
||||
)
|
||||
|
||||
if (MAA_DEPS_PATH AND EXISTS ${MAA_DEPS_PATH})
|
||||
message(STATUS "Using MAA_DEPS_PATH: ${MAA_DEPS_PATH}")
|
||||
else ()
|
||||
message(STATUS "MAA_DEPS_PATH not set, using default")
|
||||
add_custom_command(OUTPUT ONNXRuntime.xcframework
|
||||
COMMAND rm -rf ONNXRuntime.xcframework
|
||||
COMMAND xcodebuild -create-xcframework -library ${FastDeploy_DIR}/third_libs/install/onnxruntime/lib/libonnxruntime.1.12.0.dylib -output ONNXRuntime.xcframework
|
||||
)
|
||||
|
||||
include(FetchContent)
|
||||
if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0")
|
||||
cmake_policy(SET CMP0135 NEW)
|
||||
endif()
|
||||
FetchContent_Declare(
|
||||
MAA_DEPS
|
||||
URL https://github.com/hguandl/maa-deps/releases/download/v20221204/maa-deps-macos-v20221204.tar.xz
|
||||
URL_HASH SHA256=5e193f80a74d1591531bf7de5afccc21b8579fb3363a0b089198cb75fbf89df2)
|
||||
FetchContent_MakeAvailable(MAA_DEPS)
|
||||
add_custom_command(OUTPUT Paddle2ONNX.xcframework
|
||||
COMMAND rm -rf Paddle2ONNX.xcframework
|
||||
COMMAND xcodebuild -create-xcframework -library ${FastDeploy_DIR}/third_libs/install/paddle2onnx/lib/libpaddle2onnx.1.0.5.dylib -output Paddle2ONNX.xcframework
|
||||
)
|
||||
|
||||
set(MAA_DEPS_PATH ${maa_deps_SOURCE_DIR} CACHE PATH "Path to maa-deps" FORCE)
|
||||
endif ()
|
||||
add_custom_command(OUTPUT FastDeploy.xcframework
|
||||
COMMAND rm -rf FastDeploy.xcframework
|
||||
COMMAND xcodebuild -create-xcframework -library ${FastDeploy_DIR}/lib/libfastdeploy.0.0.0.dylib -output FastDeploy.xcframework
|
||||
)
|
||||
|
||||
set(FastDeploy_LIBS
|
||||
"${MAA_DEPS_PATH}/lib/libfastdeploy.a"
|
||||
"${MAA_DEPS_PATH}/lib/libonnxruntime_common.a"
|
||||
"${MAA_DEPS_PATH}/lib/libonnxruntime_flatbuffers.a"
|
||||
"${MAA_DEPS_PATH}/lib/libonnxruntime_framework.a"
|
||||
"${MAA_DEPS_PATH}/lib/libonnxruntime_graph.a"
|
||||
"${MAA_DEPS_PATH}/lib/libonnxruntime_mlas.a"
|
||||
"${MAA_DEPS_PATH}/lib/libonnxruntime_optimizer.a"
|
||||
"${MAA_DEPS_PATH}/lib/libonnxruntime_providers.a"
|
||||
"${MAA_DEPS_PATH}/lib/libonnxruntime_session.a"
|
||||
"${MAA_DEPS_PATH}/lib/libonnxruntime_util.a"
|
||||
"${MAA_DEPS_PATH}/lib/libpaddle2onnx.1.0.4.dylib"
|
||||
"${MAA_DEPS_PATH}/lib/libprotobuf.a"
|
||||
"${MAA_DEPS_PATH}/lib/onnxruntime/external/libabsl_city.a"
|
||||
"${MAA_DEPS_PATH}/lib/onnxruntime/external/libabsl_hash.a"
|
||||
"${MAA_DEPS_PATH}/lib/onnxruntime/external/libabsl_low_level_hash.a"
|
||||
"${MAA_DEPS_PATH}/lib/onnxruntime/external/libabsl_raw_hash_set.a"
|
||||
"${MAA_DEPS_PATH}/lib/onnxruntime/external/libabsl_throw_delegate.a"
|
||||
"${MAA_DEPS_PATH}/lib/onnxruntime/external/libnsync_cpp.a"
|
||||
"${MAA_DEPS_PATH}/lib/onnxruntime/external/libonnx.a"
|
||||
"${MAA_DEPS_PATH}/lib/onnxruntime/external/libonnx_proto.a"
|
||||
"${MAA_DEPS_PATH}/lib/onnxruntime/external/libre2.a"
|
||||
)
|
||||
add_custom_target(MaaXCFramework ALL
|
||||
DEPENDS MaaCore Paddle2ONNX.xcframework MaaCore.xcframework OpenCV.xcframework ONNXRuntime.xcframework FastDeploy.xcframework
|
||||
)
|
||||
endif (BUILD_XCFRAMEWORK)
|
||||
|
||||
@@ -6,13 +6,21 @@ set(OPENCV_TAG "4.5.3")
|
||||
|
||||
set(COMPRESSED_SUFFIX ".tar.gz")
|
||||
|
||||
if(UNIX)
|
||||
set(OPENCV_FILENAME "OpenCV-Linux")
|
||||
set(OPENCV_CHECKSUM "edc4138456189c9e8bdf29114ad2be8ec152e8e31087d98e633f6cda59b141ea")
|
||||
elseif(WIN32)
|
||||
if(WIN32)
|
||||
set(OPENCV_FILENAME "OpenCV-Windows")
|
||||
set(OPENCV_CHECKSUM "bf736b243bbdaa020f139e4dfa1e4f15633f4ce7a8ad885524645e660de47a8b")
|
||||
endif(UNIX)
|
||||
elseif(APPLE)
|
||||
if (CURRENT_OSX_ARCH STREQUAL "arm64")
|
||||
set(OPENCV_FILENAME "OpenCV-macOS-arm64")
|
||||
set(OPENCV_CHECKSUM "31beb633c033dd4ee789ffa50911c29c9580860f9a91f334f03d8aa9c85e9700")
|
||||
else()
|
||||
set(OPENCV_FILENAME "OpenCV-macOS-x86_64")
|
||||
set(OPENCV_CHECKSUM "249c5c97cc52257b68d35acf499b1cf1037f5e6f3b40752f82ad5abe7884bea9")
|
||||
endif()
|
||||
else(UNIX)
|
||||
set(OPENCV_FILENAME "OpenCV-Linux")
|
||||
set(OPENCV_CHECKSUM "edc4138456189c9e8bdf29114ad2be8ec152e8e31087d98e633f6cda59b141ea")
|
||||
endif(WIN32)
|
||||
|
||||
set(OPENCV_URL ${OPENCV_URL_PREFIX}/${OPENCV_TAG}/${OPENCV_FILENAME}${COMPRESSED_SUFFIX})
|
||||
|
||||
|
||||
@@ -13,3 +13,18 @@ function(download_and_decompress url filename sha256_checksum decompress_dir)
|
||||
message("Decompress file ${filename} ...")
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E tar -xf ${filename} WORKING_DIRECTORY ${decompress_dir})
|
||||
endfunction()
|
||||
|
||||
function(get_osx_architecture)
|
||||
if (CMAKE_OSX_ARCHITECTURES STREQUAL "arm64")
|
||||
set(CURRENT_OSX_ARCH "arm64" PARENT_SCOPE)
|
||||
elseif(CMAKE_OSX_ARCHITECTURES STREQUAL "x86_64")
|
||||
set(CURRENT_OSX_ARCH "x86_64" PARENT_SCOPE)
|
||||
else()
|
||||
set(CURRENT_OSX_ARCH ${CMAKE_HOST_SYSTEM_PROCESSOR} PARENT_SCOPE)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
if (APPLE)
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET 12.0)
|
||||
get_osx_architecture()
|
||||
endif (APPLE)
|
||||
|
||||
Submodule src/MaaMacGui updated: 32fb20c0b9...32498915a5
Reference in New Issue
Block a user