mirror of
https://github.com/MAGICGrants/flutter_libsparkmobile.git
synced 2026-01-06 19:53:57 -05:00
auto build ios (untested on device)
This commit is contained in:
@@ -13,11 +13,10 @@ A new Flutter project.
|
||||
s.license = { :file => '../LICENSE' }
|
||||
s.author = { 'Your Company' => 'email@example.com' }
|
||||
|
||||
# This will ensure the source files in Classes/ are included in the native
|
||||
# builds of apps using this FFI plugin. Podspec does not support relative
|
||||
# paths, so Classes contains a forwarder C file that relatively imports
|
||||
# `../src/*` so that the C sources can be shared among all target platforms.
|
||||
s.source = { :path => '.' }
|
||||
s.prepare_command = <<-CMD
|
||||
"./run_build.sh"
|
||||
CMD
|
||||
s.vendored_frameworks = 'flutter_libsparkmobile.framework'
|
||||
s.dependency 'Flutter'
|
||||
s.platform = :ios, '11.0'
|
||||
|
||||
6
ios/run_build.sh
Executable file
6
ios/run_build.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
cd ../scripts
|
||||
./prebuild.sh
|
||||
cd ios
|
||||
./build_all.sh
|
||||
@@ -4,47 +4,12 @@ set -e
|
||||
|
||||
export IOS_SCRIPTS_DIR=`pwd`
|
||||
export PROJECT_ROOT_DIR="${IOS_SCRIPTS_DIR}/../.."
|
||||
export PROJECT_SRC_DIR="${PROJECT_ROOT_DIR}/src"
|
||||
export EXTERNAL_IOS_DIR="${PROJECT_SRC_DIR}/build/ios"
|
||||
export IOS_TOOLCHAIN_ROOT="${EXTERNAL_IOS_DIR}/toolchain"
|
||||
export EXTERNAL_IOS_SOURCE_DIR=${EXTERNAL_IOS_DIR}/sources
|
||||
export EXTERNAL_IOS_LIB_DIR=${EXTERNAL_IOS_DIR}/lib
|
||||
export EXTERNAL_IOS_INCLUDE_DIR=${EXTERNAL_IOS_DIR}/include
|
||||
export IOS_SCRIPTS_BUILD_DIR="${IOS_SCRIPTS_DIR}/build"
|
||||
export IOS_TOOLCHAIN_ROOT="${IOS_SCRIPTS_BUILD_DIR}/toolchain"
|
||||
|
||||
mkdir -p $EXTERNAL_IOS_LIB_DIR
|
||||
mkdir -p $EXTERNAL_IOS_INCLUDE_DIR
|
||||
mkdir -p $EXTERNAL_IOS_SOURCE_DIR
|
||||
mkdir -p "${IOS_SCRIPTS_BUILD_DIR}"
|
||||
cd "${IOS_SCRIPTS_BUILD_DIR}"
|
||||
|
||||
OPEN_SSL_URL="https://github.com/x2on/OpenSSL-for-iPhone.git"
|
||||
OPEN_SSL_DIR_PATH="${EXTERNAL_IOS_SOURCE_DIR}/OpenSSL"
|
||||
|
||||
echo "============================ OpenSSL ============================"
|
||||
|
||||
if [ ! -d "$OPEN_SSL_DIR_PATH" ] ; then
|
||||
echo "Cloning Open SSL from - $OPEN_SSL_URL"
|
||||
git clone "$OPEN_SSL_URL" "$OPEN_SSL_DIR_PATH"
|
||||
|
||||
cd "$OPEN_SSL_DIR_PATH" || exit 1
|
||||
git checkout b77ace70b2594de69c88d0748326d2a1190bbac1
|
||||
sed -i '' "s/IOS_MIN_SDK_VERSION=\"12.0\"/IOS_MIN_SDK_VERSION=\"10.0\"/g" build-libssl.sh
|
||||
|
||||
else
|
||||
cd "$OPEN_SSL_DIR_PATH" || exit 1
|
||||
fi
|
||||
|
||||
|
||||
#./build-libssl.sh --version=1.1.1k --archs="arm64" --targets="ios64-cross-arm64" --deprecated
|
||||
./build-libssl.sh \
|
||||
--version=1.1.1k \
|
||||
--archs="x86_64 arm64 armv7s armv7" \
|
||||
--targets="ios-sim-cross-x86_64 ios64-cross-arm64 ios-cross-armv7 ios-cross-armv7s" \
|
||||
--deprecated
|
||||
|
||||
cp -R "${OPEN_SSL_DIR_PATH}"/include/* "${EXTERNAL_IOS_INCLUDE_DIR}/"
|
||||
cp -R "${OPEN_SSL_DIR_PATH}"/lib/* "${EXTERNAL_IOS_LIB_DIR}/"
|
||||
|
||||
|
||||
#TOOLCHAIN_URL="https://github.com/cristeab/ios-cmake.git"
|
||||
TOOLCHAIN_URL="https://github.com/leetal/ios-cmake.git"
|
||||
TOOLCHAIN_DIR_PATH="${IOS_TOOLCHAIN_ROOT}"
|
||||
|
||||
@@ -52,18 +17,6 @@ if [ ! -d "$TOOLCHAIN_DIR_PATH" ] ; then
|
||||
git clone $TOOLCHAIN_URL $TOOLCHAIN_DIR_PATH
|
||||
fi
|
||||
|
||||
cd "${IOS_SCRIPTS_DIR}"
|
||||
|
||||
if [ ! -d build ] ; then
|
||||
mkdir build
|
||||
fi
|
||||
|
||||
cd build
|
||||
|
||||
#cmake ../../../src --trace \
|
||||
# -DCMAKE_TOOLCHAIN_FILE="${IOS_TOOLCHAIN_ROOT}/toolchain/iOS.cmake" \
|
||||
# -DBUILD_FOR_SYSTEM_NAME="ios" && make -j12
|
||||
|
||||
cmake ../../../src \
|
||||
-G Xcode \
|
||||
-DPLATFORM=OS64COMBINED \
|
||||
@@ -73,36 +26,4 @@ cmake --build . --config Debug
|
||||
cmake --install . --config Debug
|
||||
cd Debug-iphoneos
|
||||
|
||||
#cmake ../../../src \
|
||||
# -G Xcode \
|
||||
# -DPLATFORM=SIMULATOR64 \
|
||||
#-DBUILD_FOR_SYSTEM_NAME="ios" \
|
||||
#-DCMAKE_TOOLCHAIN_FILE=${IOS_TOOLCHAIN_ROOT}/ios.toolchain.cmake
|
||||
#cmake --build . --config Debug
|
||||
#cmake --install . --config Debug
|
||||
#cd Debug-iphonesimulator
|
||||
|
||||
#cmake ../../../src \
|
||||
# -G Xcode \
|
||||
# -DPLATFORM=SIMULATOR64 \
|
||||
#-DBUILD_FOR_SYSTEM_NAME="ios" \
|
||||
#-DCMAKE_TOOLCHAIN_FILE=${IOS_TOOLCHAIN_ROOT}/ios.toolchain.cmake
|
||||
#cmake --build . --config Release
|
||||
#cmake --install . --config Release
|
||||
#cd Release-iphonesimulator
|
||||
|
||||
# -DENABLE_STRICT_TRY_COMPILE=ON \
|
||||
|
||||
|
||||
#sed -i '' "s/<dict>/<dict>\n\t<key>MinimumOSVersion<\/key>\n\t<string>11.0<\/string>/g" flutter_libsparkmobile.framework/Info.plist
|
||||
cp -R flutter_libsparkmobile.framework "${PROJECT_ROOT_DIR}/ios/"
|
||||
|
||||
#cmake ../../../src \
|
||||
#-DBUILD_FOR_SYSTEM_NAME="ios" \
|
||||
# -DENABLE_STRICT_TRY_COMPILE=ON \
|
||||
#-DCMAKE_TOOLCHAIN_FILE=${IOS_TOOLCHAIN_ROOT}/ios.toolchain.cmake \
|
||||
#-DPLATFORM=SIMULATOR64
|
||||
#make -j12
|
||||
#
|
||||
#sed -i '' "s/<dict>/<dict>\n\t<key>MinimumOSVersion<\/key>\n\t<string>11.0<\/string>/g" ./flutter_libsparkmobile.framework/Info.plist
|
||||
#cp -R flutter_libsparkmobile.framework "${PROJECT_ROOT_DIR}/ios/"
|
||||
|
||||
@@ -5,6 +5,12 @@ cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
project(flutter_libsparkmobile_library VERSION 0.0.1)
|
||||
|
||||
if(BUILD_FOR_SYSTEM_NAME STREQUAL "macos" OR BUILD_FOR_SYSTEM_NAME STREQUAL "ios" OR BUILD_FOR_SYSTEM_NAME STREQUAL "windows")
|
||||
set(SPARK_USE_OPENSSL_CMAKE TRUE)
|
||||
else()
|
||||
set(SPARK_USE_OPENSSL_CMAKE FALSE)
|
||||
endif()
|
||||
|
||||
SET(SPARK_SCRIPTS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../scripts")
|
||||
if(BUILD_FOR_SYSTEM_NAME STREQUAL "windows")
|
||||
SET(SPARK_PREBUILD_SCRIPT "prebuild.bat")
|
||||
@@ -20,10 +26,8 @@ if(BUILD_FOR_SYSTEM_NAME STREQUAL "macos" OR BUILD_FOR_SYSTEM_NAME STREQUAL "ios
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
endif()
|
||||
|
||||
if(BUILD_FOR_SYSTEM_NAME STREQUAL "windows")
|
||||
SET(OPENSSL_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/build/${BUILD_FOR_SYSTEM_NAME}")
|
||||
elseif(BUILD_FOR_SYSTEM_NAME STREQUAL "macos" OR BUILD_FOR_SYSTEM_NAME STREQUAL "ios")
|
||||
SET(OPENSSL_ROOT_DIR "${CMAKE_SOURCE_DIR}/build/${BUILD_FOR_SYSTEM_NAME}")
|
||||
if(SPARK_USE_OPENSSL_CMAKE)
|
||||
# nothing
|
||||
else()
|
||||
SET(OPENSSL_ROOT_DIR "${CMAKE_SOURCE_DIR}/build/${BUILD_FOR_SYSTEM_NAME}/prefix_${ANDROID_ABI}")
|
||||
endif()
|
||||
@@ -44,7 +48,7 @@ set(BOOST_URL "https://boostorg.jfrog.io/artifactory/main/release/1.71.0/source/
|
||||
set(BOOST_URL_SHA256 "85a94ac71c28e59cf97a96714e4c58a18550c227ac8b0388c260d6c717e47a69")
|
||||
add_subdirectory("deps/boost-cmake")
|
||||
|
||||
if(BUILD_FOR_SYSTEM_NAME STREQUAL "windows" OR BUILD_FOR_SYSTEM_NAME STREQUAL "macos")
|
||||
if(SPARK_USE_OPENSSL_CMAKE)
|
||||
add_subdirectory("deps/openssl-cmake" EXCLUDE_FROM_ALL)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ else()
|
||||
ADD_DEFINITIONS(-fPIC)
|
||||
endif()
|
||||
|
||||
if(BUILD_FOR_SYSTEM_NAME STREQUAL "windows" OR BUILD_FOR_SYSTEM_NAME STREQUAL "macos")
|
||||
if(SPARK_USE_OPENSSL_CMAKE)
|
||||
#nothing
|
||||
else()
|
||||
LINK_DIRECTORIES(${OPENSSL_LIBRARIES_DIR})
|
||||
@@ -77,7 +77,7 @@ endif()
|
||||
# TODO: emult static precomputation
|
||||
# TODO: ecdh module
|
||||
# TODO: RECOVERY module
|
||||
if(BUILD_FOR_SYSTEM_NAME STREQUAL "windows" OR BUILD_FOR_SYSTEM_NAME STREQUAL "macos")
|
||||
if(SPARK_USE_OPENSSL_CMAKE)
|
||||
TARGET_INCLUDE_DIRECTORIES(secp256k1_spark PUBLIC)
|
||||
else()
|
||||
TARGET_INCLUDE_DIRECTORIES(secp256k1_spark PUBLIC ${OPENSSL_INCLUDE_DIR})
|
||||
|
||||
@@ -9,10 +9,7 @@ endif()
|
||||
set(OPENSSL_USE_STATIC_LIBS OFF CACHE BOOL "" FORCE)
|
||||
set(OPENSSL_USE_STATIC_LIBS TRUE)
|
||||
|
||||
if(BUILD_FOR_SYSTEM_NAME STREQUAL "windows" OR WIN32 OR BUILD_FOR_SYSTEM_NAME STREQUAL "macos")
|
||||
# SET(OPENSSL_ROOT_DIR "${CMAKE_CURRENT_BINARY_DIR}/../")
|
||||
# SET(OPENSSL_LIBRARIES_DIR "${OPENSSL_ROOT_DIR}lib")
|
||||
# SET(OPENSSL_INCLUDE_DIR "${OPENSSL_ROOT_DIR}include")
|
||||
if(SPARK_USE_OPENSSL_CMAKE)
|
||||
SET(OPENSSL_LIBRARIES "ssl" "crypto")
|
||||
else()
|
||||
SET(OPENSSL_INCLUDE_DIR "${OPENSSL_ROOT_DIR}/include")
|
||||
@@ -69,7 +66,7 @@ set_property(SOURCE src/spark.cpp
|
||||
src/util.cpp
|
||||
PROPERTY COMPILE_FLAGS ${MY_CUSTOM_COMPILE_FLAGS} )
|
||||
|
||||
if(BUILD_FOR_SYSTEM_NAME STREQUAL "windows" OR BUILD_FOR_SYSTEM_NAME STREQUAL "macos")
|
||||
if(SPARK_USE_OPENSSL_CMAKE)
|
||||
#nothing
|
||||
else()
|
||||
LINK_DIRECTORIES(${OPENSSL_LIBRARIES_DIR})
|
||||
@@ -121,12 +118,19 @@ endif()
|
||||
|
||||
add_dependencies(sparkmobile secp256k1_spark)
|
||||
|
||||
#if(BUILD_FOR_SYSTEM_NAME STREQUAL "macos" OR BUILD_FOR_SYSTEM_NAME STREQUAL "ios")
|
||||
if(BUILD_FOR_SYSTEM_NAME STREQUAL "ios")
|
||||
target_include_directories(sparkmobile PUBLIC secp256k1_spark ${OPENSSL_INCLUDE_DIR} "${SPARK_MISSING_HEADERS_DIR}")
|
||||
elseif(BUILD_FOR_SYSTEM_NAME STREQUAL "windows" OR BUILD_FOR_SYSTEM_NAME STREQUAL "macos")
|
||||
target_include_directories(sparkmobile PUBLIC secp256k1_spark "${SPARK_MISSING_HEADERS_DIR}")
|
||||
if(SPARK_USE_OPENSSL_CMAKE)
|
||||
if(BUILD_FOR_SYSTEM_NAME STREQUAL "ios" OR BUILD_FOR_SYSTEM_NAME STREQUAL "windows" OR BUILD_FOR_SYSTEM_NAME STREQUAL "macos")
|
||||
target_include_directories(sparkmobile PUBLIC secp256k1_spark "${SPARK_MISSING_HEADERS_DIR}")
|
||||
else()
|
||||
target_include_directories(sparkmobile PUBLIC secp256k1_spark)
|
||||
endif()
|
||||
else()
|
||||
target_include_directories(sparkmobile PUBLIC secp256k1_spark ${OPENSSL_INCLUDE_DIR})
|
||||
if(BUILD_FOR_SYSTEM_NAME STREQUAL "ios" OR BUILD_FOR_SYSTEM_NAME STREQUAL "windows" OR BUILD_FOR_SYSTEM_NAME STREQUAL "macos")
|
||||
target_include_directories(sparkmobile PUBLIC secp256k1_spark ${OPENSSL_INCLUDE_DIR} "${SPARK_MISSING_HEADERS_DIR}")
|
||||
else()
|
||||
target_include_directories(sparkmobile PUBLIC secp256k1_spark ${OPENSSL_INCLUDE_DIR})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user