diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 40d83bbc..c421fbb8 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -151,11 +151,11 @@ jobs: git clone https://github.com/leetal/ios-cmake --depth 1 mkdir build cd build - cmake -G Xcode -DCMAKE_TOOLCHAIN_FILE=../ios-cmake/ios.toolchain.cmake -DPLATFORM=OS64 .. -DPK_BUILD_STATIC_LIB=ON -DPK_USE_CJSON=ON -DCMAKE_BUILD_TYPE=Release + 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 - cp build/Release-iphoneos/libpocketpy.a output/ios/libpocketpy.a + cp -r build/Release-iphoneos/pocketpy.framework output/ios/pocketpy.framework - uses: actions/upload-artifact@v3 with: path: output diff --git a/CMakeLists.txt b/CMakeLists.txt index 71ef3419..3cde91b6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,6 +50,22 @@ if(PK_BUILD_SHARED_LIB) add_library(${PROJECT_NAME} SHARED ${POCKETPY_SRC}) elseif(PK_BUILD_STATIC_LIB) add_library(${PROJECT_NAME} STATIC ${POCKETPY_SRC}) + + # build xcframework for iOS + if(CMAKE_SYSTEM_NAME STREQUAL "iOS") + set_target_properties(${PROJECT_NAME} PROPERTIES + FRAMEWORK TRUE + FRAMEWORK_VERSION CXX + MACOSX_FRAMEWORK_IDENTIFIER dev.pocketpy + # MACOSX_FRAMEWORK_INFO_PLIST Info.plist + # "current version" in semantic format in Mach-O binary file + VERSION 1.4.3 + # "compatibility version" in semantic format in Mach-O binary file + SOVERSION 1.4.3 + PUBLIC_HEADER pocketpy.h + XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer" + ) + endif() else() add_library(${PROJECT_NAME} SHARED ${POCKETPY_SRC}) set(PROJECT_EXE_NAME main) @@ -67,7 +83,7 @@ if(PK_USE_CJSON) target_link_libraries(${PROJECT_NAME} PRIVATE $) endif() -option(PK_INSTALL "Generate the install target" ON) +option(PK_INSTALL "Generate the install target" OFF) if (PK_INSTALL) install( TARGETS ${PROJECT_NAME}