mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-20 11:30:18 +00:00
add ios xcframework build
This commit is contained in:
parent
0480919906
commit
957f037b8d
12
.github/workflows/main.yml
vendored
12
.github/workflows/main.yml
vendored
@ -146,16 +146,12 @@ jobs:
|
|||||||
runs-on: macos-latest
|
runs-on: macos-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Compile Static Library
|
- name: Compile Frameworks
|
||||||
run: |
|
run: |
|
||||||
git clone https://github.com/leetal/ios-cmake --depth 1
|
git clone https://github.com/leetal/ios-cmake --depth 1 ~/ios-cmake
|
||||||
mkdir build
|
bash build_ios.sh
|
||||||
cd build
|
|
||||||
cmake -G Xcode -DCMAKE_TOOLCHAIN_FILE=../ios-cmake/ios.toolchain.cmake -DPLATFORM=OS64COMBINED .. -DPK_BUILD_STATIC_LIB=ON -DPK_USE_CJSON=ON -DCMAKE_BUILD_TYPE=Release
|
|
||||||
cmake --build . --config Release
|
|
||||||
cd ..
|
|
||||||
mkdir -p output/ios
|
mkdir -p output/ios
|
||||||
cp -r build/Release-iphoneos/pocketpy.framework output/ios/pocketpy.framework
|
cp -r build/pocketpy.xcframework output/ios/pocketpy.xcframework
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
path: output
|
path: output
|
||||||
|
@ -49,22 +49,26 @@ endif()
|
|||||||
if(PK_BUILD_SHARED_LIB)
|
if(PK_BUILD_SHARED_LIB)
|
||||||
add_library(${PROJECT_NAME} SHARED ${POCKETPY_SRC})
|
add_library(${PROJECT_NAME} SHARED ${POCKETPY_SRC})
|
||||||
elseif(PK_BUILD_STATIC_LIB)
|
elseif(PK_BUILD_STATIC_LIB)
|
||||||
add_library(${PROJECT_NAME} STATIC ${POCKETPY_SRC})
|
|
||||||
|
|
||||||
# build xcframework for iOS
|
|
||||||
if(CMAKE_SYSTEM_NAME STREQUAL "iOS")
|
if(CMAKE_SYSTEM_NAME STREQUAL "iOS")
|
||||||
|
set(
|
||||||
|
HEADERS
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/include/pocketpy/pocketpy_c.h
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/include/pocketpy/export.h
|
||||||
|
)
|
||||||
|
add_library(${PROJECT_NAME} STATIC ${POCKETPY_SRC} ${HEADERS})
|
||||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||||
FRAMEWORK TRUE
|
FRAMEWORK TRUE
|
||||||
FRAMEWORK_VERSION CXX
|
|
||||||
MACOSX_FRAMEWORK_IDENTIFIER dev.pocketpy
|
MACOSX_FRAMEWORK_IDENTIFIER dev.pocketpy
|
||||||
# MACOSX_FRAMEWORK_INFO_PLIST Info.plist
|
# MACOSX_FRAMEWORK_INFO_PLIST Info.plist
|
||||||
# "current version" in semantic format in Mach-O binary file
|
# "current version" in semantic format in Mach-O binary file
|
||||||
VERSION 1.4.3
|
VERSION 1.4.3
|
||||||
# "compatibility version" in semantic format in Mach-O binary file
|
# "compatibility version" in semantic format in Mach-O binary file
|
||||||
SOVERSION 1.4.3
|
SOVERSION 1.4.3
|
||||||
PUBLIC_HEADER pocketpy.h
|
PUBLIC_HEADER "${HEADERS}"
|
||||||
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer"
|
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer"
|
||||||
)
|
)
|
||||||
|
else()
|
||||||
|
add_library(${PROJECT_NAME} STATIC ${POCKETPY_SRC})
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
add_library(${PROJECT_NAME} SHARED ${POCKETPY_SRC})
|
add_library(${PROJECT_NAME} SHARED ${POCKETPY_SRC})
|
||||||
|
18
build_ios.sh
Normal file
18
build_ios.sh
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
rm -rf build
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
|
||||||
|
FLAGS="-DCMAKE_TOOLCHAIN_FILE=~/ios-cmake/ios.toolchain.cmake -DPK_BUILD_STATIC_LIB=ON -DDEPLOYMENT_TARGET=13.0"
|
||||||
|
|
||||||
|
cmake -B os64 -G Xcode -DPLATFORM=OS64 $FLAGS ..
|
||||||
|
cmake --build os64 --config Release
|
||||||
|
|
||||||
|
cmake -B simulator64 -G Xcode -DPLATFORM=SIMULATOR64 $FLAGS ..
|
||||||
|
cmake --build simulator64 --config Release
|
||||||
|
|
||||||
|
xcodebuild -create-xcframework \
|
||||||
|
-framework os64/Release-iphoneos/pocketpy.framework \
|
||||||
|
-framework simulator64/Release-iphonesimulator/pocketpy.framework \
|
||||||
|
-output pocketpy.xcframework
|
||||||
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user