diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e5f6cae567..65787f3f84 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -328,10 +328,10 @@ jobs: - name: Configure CMake && Build run: | export BOOST_ROOT_IOS="${{runner.workspace}}/dependencies/boost-ios" - cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_TOOLCHAIN_FILE=${{runner.workspace}}/dependencies/toolchain-ios/ios.toolchain.cmake -DPLATFORM=OS64 -DCMAKE_CXX_FLAGS=-stdlib=libc++ -DDEPLOYMENT_TARGET=11.0 -DENABLE_BITCODE=NO -DOPENSSL_ROOT_DIR=$OPENSSL_ROOT_DIR -DOPENSSL_CRYPTO_LIBRARY=$OPENSSL_CRYPTO_LIBRARY -DOPENSSL_INCLUDE_DIR=$OPENSSL_INCLUDE_DIR -DOPENSSL_SSL_LIBRARY=$OPENSSL_SSL_LIBRARY -DOPENSSL_LIBRARIES=$OPENSSL_LIBRARIES -DIOS=YES -Wno-error=deprecated-declarations -Wno-error=deprecated -DCMAKE_TRY_COMPILE_PLATFORM_VARIABLES=CMAKE_WARN_DEPRECATED -DBEAM_IPFS_SUPPORT=Off -B./build + cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_TOOLCHAIN_FILE=${{runner.workspace}}/dependencies/toolchain-ios/ios.toolchain.cmake -DPLATFORM=OS64 -DCMAKE_CXX_FLAGS=-stdlib=libc++ -DDEPLOYMENT_TARGET=11.0 -DENABLE_BITCODE=NO -DOPENSSL_ROOT_DIR=$OPENSSL_ROOT_DIR -DOPENSSL_CRYPTO_LIBRARY=$OPENSSL_CRYPTO_LIBRARY -DOPENSSL_INCLUDE_DIR=$OPENSSL_INCLUDE_DIR -DOPENSSL_SSL_LIBRARY=$OPENSSL_SSL_LIBRARY -DOPENSSL_LIBRARIES=$OPENSSL_LIBRARIES -DIOS=YES -Wno-error=deprecated-declarations -Wno-error=deprecated -DCMAKE_TRY_COMPILE_PLATFORM_VARIABLES=CMAKE_WARN_DEPRECATED -DBEAM_IPFS_SUPPORT=On -B./build make -C ./build -j$(sysctl -n hw.ncpu) export BOOST_ROOT_IOS="${{runner.workspace}}/dependencies/boost-ios-simulator" - cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_TOOLCHAIN_FILE=${{runner.workspace}}/dependencies/toolchain-ios/ios.toolchain.cmake -DPLATFORM=SIMULATOR64 -DCMAKE_CXX_FLAGS=-stdlib=libc++ -DDEPLOYMENT_TARGET=11.0 -DENABLE_BITCODE=NO -DOPENSSL_ROOT_DIR=$OPENSSL_ROOT_DIR -DOPENSSL_CRYPTO_LIBRARY=$OPENSSL_CRYPTO_LIBRARY -DOPENSSL_INCLUDE_DIR=$OPENSSL_INCLUDE_DIR -DOPENSSL_SSL_LIBRARY=$OPENSSL_SSL_LIBRARY -DOPENSSL_LIBRARIES=$OPENSSL_LIBRARIES -DIOS=YES -Wno-error=deprecated-declarations -Wno-error=deprecated -DCMAKE_TRY_COMPILE_PLATFORM_VARIABLES=CMAKE_WARN_DEPRECATED -DBEAM_IPFS_SUPPORT=Off -B./build-simulator + cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_TOOLCHAIN_FILE=${{runner.workspace}}/dependencies/toolchain-ios/ios.toolchain.cmake -DPLATFORM=SIMULATOR64 -DCMAKE_CXX_FLAGS=-stdlib=libc++ -DDEPLOYMENT_TARGET=11.0 -DENABLE_BITCODE=NO -DOPENSSL_ROOT_DIR=$OPENSSL_ROOT_DIR -DOPENSSL_CRYPTO_LIBRARY=$OPENSSL_CRYPTO_LIBRARY -DOPENSSL_INCLUDE_DIR=$OPENSSL_INCLUDE_DIR -DOPENSSL_SSL_LIBRARY=$OPENSSL_SSL_LIBRARY -DOPENSSL_LIBRARIES=$OPENSSL_LIBRARIES -DIOS=YES -Wno-error=deprecated-declarations -Wno-error=deprecated -DCMAKE_TRY_COMPILE_PLATFORM_VARIABLES=CMAKE_WARN_DEPRECATED -DBEAM_IPFS_SUPPORT=On -B./build-simulator make -C ./build-simulator -j$(sysctl -n hw.ncpu) - name: Save version info @@ -347,12 +347,33 @@ jobs: echo BEAM_VERSION = $BEAM_VERSION mkdir -p ${{runner.workspace}}/results/beam-ios/include mkdir -p ${{runner.workspace}}/results/beam-ios/lib - find ./build -name \*.a -type f -exec cp {} ${{runner.workspace}}/results/beam-ios/lib/ \; + # asio-ipfs extracts a Go toolchain under 3rdparty/asio-ipfs/golang/ + # (which ships ~400 .a files: pre-built host std-lib under + # pkg/darwin_arm64/ — bidirule.a etc. — plus test fixtures under + # src/.../testdata/ such as libimportsar.a) and uses + # 3rdparty/asio-ipfs/go-workspace/ as GOPATH. None of those are + # the iOS archives we want; lipo below either rejects them + # outright or silently accepts arm64-darwin / arm64-linux + # objects that would corrupt the combined slice. Prune both + # subtrees before collecting. The real asio-ipfs outputs live + # at ./build/3rdparty/asio-ipfs/ipfs_bindings/libipfs-bindings.a + # and ./build/3rdparty/asio-ipfs/libasio-ipfs.a — neither is + # under golang/ or go-workspace/, so they're still picked up. + collect_libs() { + local src_dir="$1" + local dst_dir="$2" + find "$src_dir" \ + \( -path "$src_dir/3rdparty/asio-ipfs/golang" -o \ + -path "$src_dir/3rdparty/asio-ipfs/go-workspace" \) -prune -o \ + -name '*.a' -type f -print0 \ + | xargs -0 -I {} cp {} "$dst_dir/" + } + collect_libs ./build ${{runner.workspace}}/results/beam-ios/lib rsync -am --include='*.h' --include='*.hpp' --include='*/' --exclude='*' . ${{runner.workspace}}/results/beam-ios/include/ cp ./build/core/version.h ${{runner.workspace}}/results/beam-ios/include/core/ mkdir -p ${{runner.workspace}}/results/beam-ios-simulator/include mkdir -p ${{runner.workspace}}/results/beam-ios-simulator/lib - find ./build-simulator -name \*.a -type f -exec cp {} ${{runner.workspace}}/results/beam-ios-simulator/lib/ \; + collect_libs ./build-simulator ${{runner.workspace}}/results/beam-ios-simulator/lib rsync -am --include='*.h' --include='*.hpp' --include='*/' --exclude='*' . ${{runner.workspace}}/results/beam-ios-simulator/include/ cp ./build/core/version.h ${{runner.workspace}}/results/beam-ios-simulator/include/core/ mkdir -p ${{runner.workspace}}/results/beam-ios-combined/include diff --git a/3rdparty/asio-ipfs b/3rdparty/asio-ipfs index ad9c6d639c..beded1b291 160000 --- a/3rdparty/asio-ipfs +++ b/3rdparty/asio-ipfs @@ -1 +1 @@ -Subproject commit ad9c6d639cf961bbf78eb850e773ff429c50688e +Subproject commit beded1b29158a454e810de6d86138019b8518bf7 diff --git a/CMakeLists.txt b/CMakeLists.txt index d8de51496c..2ad1f2db81 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -351,7 +351,6 @@ if(IOS) set(BEAM_WALLET_CLIENT_LIBRARY TRUE) set(BEAM_TESTS_ENABLED FALSE) set(BEAM_ATOMIC_SWAP_SUPPORT OFF) - set(BEAM_ASSET_SWAP_SUPPORT OFF) set(BEAM_LASER_SUPPORT OFF) add_compile_definitions(BOOST_ERROR_CODE_HEADER_ONLY) CreateBoostComponentTargets("${BEAM_BOOST_COMPONENTS}" "$ENV{BOOST_ROOT_IOS}" "lib/libboost_" ".a") diff --git a/wallet/core/CMakeLists.txt b/wallet/core/CMakeLists.txt index 3f735c3591..2fdc638115 100644 --- a/wallet/core/CMakeLists.txt +++ b/wallet/core/CMakeLists.txt @@ -48,7 +48,7 @@ target_link_libraries(wallet_core target_compile_features(wallet_core PUBLIC ${BEAM_INTERFACE_STANDARD}) -if (NOT ANDROID AND NOT IOS) +if (NOT ANDROID) if(BEAM_HW_WALLET) target_compile_definitions(wallet_core PUBLIC BEAM_HW_WALLET)