mirror of
https://github.com/MAGICGrants/flutter_libsparkmobile.git
synced 2026-01-08 20:47:56 -05:00
macos auto build with openssl cmake
This commit is contained in:
@@ -4,18 +4,6 @@ set -e
|
||||
|
||||
export MACOS_SCRIPTS_DIR=`pwd`
|
||||
export PROJECT_ROOT_DIR="${MACOS_SCRIPTS_DIR}/../.."
|
||||
export MOBILE_LIB_ROOT="${PROJECT_ROOT_DIR}/src"
|
||||
export EXTERNAL_MACOS_DIR="${MOBILE_LIB_ROOT}/build/macos"
|
||||
export EXTERNAL_MACOS_SOURCE_DIR=${EXTERNAL_MACOS_DIR}/sources
|
||||
export EXTERNAL_MACOS_LIB_DIR=${EXTERNAL_MACOS_DIR}/lib
|
||||
export EXTERNAL_MACOS_INCLUDE_DIR=${EXTERNAL_MACOS_DIR}/include
|
||||
|
||||
mkdir -p $EXTERNAL_MACOS_DIR
|
||||
mkdir -p $EXTERNAL_MACOS_LIB_DIR
|
||||
mkdir -p $EXTERNAL_MACOS_INCLUDE_DIR
|
||||
mkdir -p $EXTERNAL_MACOS_SOURCE_DIR
|
||||
|
||||
./build_openssl_arm64.sh
|
||||
|
||||
if [ ! -d build ] ; then
|
||||
mkdir build
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
. ./build_openssl_common.sh
|
||||
build_openssl_arm64
|
||||
@@ -1,122 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
export MACOS_SCRIPTS_DIR=`pwd`
|
||||
export PROJECT_ROOT_DIR="${MACOS_SCRIPTS_DIR}/../.."
|
||||
export MOBILE_LIB_ROOT="${PROJECT_ROOT_DIR}/src"
|
||||
export EXTERNAL_MACOS_DIR="${MOBILE_LIB_ROOT}/build/macos"
|
||||
export EXTERNAL_MACOS_SOURCE_DIR=${EXTERNAL_MACOS_DIR}/sources
|
||||
export EXTERNAL_MACOS_LIB_DIR=${EXTERNAL_MACOS_DIR}/lib
|
||||
export EXTERNAL_MACOS_INCLUDE_DIR=${EXTERNAL_MACOS_DIR}/include
|
||||
|
||||
OPEN_SSL_DIR_NAME="OpenSSL"
|
||||
OPEN_SSL_x86_64_DIR_NAME="${OPEN_SSL_DIR_NAME}-x86_64"
|
||||
OPEN_SSL_ARM_DIR_NAME="${OPEN_SSL_DIR_NAME}-arm"
|
||||
OPEN_SSL_X86_64_DIR_PATH="${EXTERNAL_MACOS_SOURCE_DIR}/${OPEN_SSL_x86_64_DIR_NAME}"
|
||||
OPEN_SSL_ARM_DIR_PATH="${EXTERNAL_MACOS_SOURCE_DIR}/${OPEN_SSL_ARM_DIR_NAME}"
|
||||
|
||||
build_openssl_init_common() {
|
||||
DIR=$1
|
||||
# Use 1.1.1s becasue of https://github.com/openssl/openssl/issues/18720
|
||||
OPENSSL_VERSION="1.1.1s"
|
||||
|
||||
echo "============================ OpenSSL ============================"
|
||||
|
||||
cd $EXTERNAL_MACOS_SOURCE_DIR
|
||||
curl -O https://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz
|
||||
tar -xvzf openssl-$OPENSSL_VERSION.tar.gz
|
||||
rm -rf $DIR
|
||||
rm -rf $OPEN_SSL_DIR_PATH
|
||||
mv openssl-$OPENSSL_VERSION $DIR
|
||||
tar -xvzf openssl-$OPENSSL_VERSION.tar.gz
|
||||
mv openssl-$OPENSSL_VERSION $OPEN_SSL_ARM_DIR_NAME
|
||||
}
|
||||
|
||||
build_openssl_init_arm64() {
|
||||
DIR=$OPEN_SSL_ARM_DIR_PATH
|
||||
build_openssl_init_common ${DIR}
|
||||
}
|
||||
|
||||
build_openssl_init_x86_64() {
|
||||
DIR=$OPEN_SSL_X86_64_DIR_PATH
|
||||
build_openssl_init_common ${DIR}
|
||||
}
|
||||
|
||||
build_openssl_compile_common() {
|
||||
ARCH=$1
|
||||
DIR=""
|
||||
XARCH=""
|
||||
case $ARCH in
|
||||
arm64)
|
||||
DIR=$OPEN_SSL_ARM_DIR_PATH
|
||||
XARCH="darwin64-arm64-cc";;
|
||||
x86_64)
|
||||
DIR=$OPEN_SSL_X86_64_DIR_PATH
|
||||
XARCH="darwin64-x86_64-cc";;
|
||||
esac
|
||||
|
||||
echo "Build OpenSSL for ${ARCH}"
|
||||
cd $DIR
|
||||
./Configure $XARCH
|
||||
make
|
||||
|
||||
}
|
||||
|
||||
build_openssl_compile_arm64() {
|
||||
ARCH=arm64
|
||||
build_openssl_compile_common "${ARCH}"
|
||||
}
|
||||
|
||||
build_openssl_compile_x86_64() {
|
||||
ARCH=x86_64
|
||||
build_openssl_compile_common "${ARCH}"
|
||||
}
|
||||
|
||||
build_openssl_install_common() {
|
||||
DIR=$1
|
||||
cp -R ${DIR}/include/* "${EXTERNAL_MACOS_INCLUDE_DIR}/"
|
||||
cp -R ${DIR}/libcrypto.a ${EXTERNAL_MACOS_LIB_DIR}/libcrypto.a
|
||||
cp -R ${DIR}/libssl.a ${EXTERNAL_MACOS_LIB_DIR}/libssl.a
|
||||
}
|
||||
|
||||
build_openssl_install_arm64() {
|
||||
build_openssl_install_common "${OPEN_SSL_ARM_DIR_PATH}"
|
||||
}
|
||||
|
||||
build_openssl_install_x86_64() {
|
||||
build_openssl_install_common "${OPEN_SSL_X86_64_DIR_PATH}"
|
||||
}
|
||||
|
||||
build_openssl_install_universal() {
|
||||
OPEN_SSL_DIR_PATH="${EXTERNAL_MACOS_SOURCE_DIR}/${OPEN_SSL_DIR_NAME}"
|
||||
mv ${OPEN_SSL_ARM_DIR_PATH}/include/* $OPEN_SSL_DIR_PATH/include
|
||||
build_openssl_install_common "${OPEN_SSL_DIR_PATH}"
|
||||
}
|
||||
|
||||
build_openssl_arm64() {
|
||||
build_openssl_init_arm64
|
||||
build_openssl_compile_arm64
|
||||
build_openssl_install_arm64
|
||||
}
|
||||
|
||||
build_openssl_x86_64() {
|
||||
build_openssl_init_x86_64
|
||||
build_openssl_compile_x86_64
|
||||
build_openssl_install_x86_64
|
||||
}
|
||||
|
||||
build_openssl_combine() {
|
||||
OPEN_SSL_DIR_PATH="${EXTERNAL_MACOS_SOURCE_DIR}/${OPEN_SSL_DIR_NAME}"
|
||||
echo "Create universal bin"
|
||||
mkdir -p $OPEN_SSL_DIR_PATH/include
|
||||
lipo -create ${OPEN_SSL_ARM_DIR_PATH}/libcrypto.a ${OPEN_SSL_X86_64_DIR_PATH}/libcrypto.a -output ${OPEN_SSL_DIR_PATH}/libcrypto.a
|
||||
lipo -create ${OPEN_SSL_ARM_DIR_PATH}/libssl.a ${OPEN_SSL_X86_64_DIR_PATH}/libssl.a -output ${OPEN_SSL_DIR_PATH}/libssl.a
|
||||
}
|
||||
|
||||
build_openssl_universal() {
|
||||
build_openssl_init_arm64
|
||||
build_openssl_compile_arm64
|
||||
build_openssl_init_x86_64
|
||||
build_openssl_compile_x86_64
|
||||
build_openssl_combine
|
||||
build_openssl_install_universal
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
. ./build_openssl_common.sh
|
||||
build_openssl_universal
|
||||
@@ -1,4 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
. ./build_openssl_common.sh
|
||||
build_openssl_x86_64
|
||||
@@ -44,7 +44,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")
|
||||
if(BUILD_FOR_SYSTEM_NAME STREQUAL "windows" OR BUILD_FOR_SYSTEM_NAME STREQUAL "macos")
|
||||
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")
|
||||
if(BUILD_FOR_SYSTEM_NAME STREQUAL "windows" OR BUILD_FOR_SYSTEM_NAME STREQUAL "macos")
|
||||
#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")
|
||||
if(BUILD_FOR_SYSTEM_NAME STREQUAL "windows" OR BUILD_FOR_SYSTEM_NAME STREQUAL "macos")
|
||||
TARGET_INCLUDE_DIRECTORIES(secp256k1_spark PUBLIC)
|
||||
else()
|
||||
TARGET_INCLUDE_DIRECTORIES(secp256k1_spark PUBLIC ${OPENSSL_INCLUDE_DIR})
|
||||
|
||||
@@ -9,7 +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)
|
||||
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")
|
||||
@@ -69,7 +69,7 @@ set_property(SOURCE src/spark.cpp
|
||||
src/util.cpp
|
||||
PROPERTY COMPILE_FLAGS ${MY_CUSTOM_COMPILE_FLAGS} )
|
||||
|
||||
if(BUILD_FOR_SYSTEM_NAME STREQUAL "windows")
|
||||
if(BUILD_FOR_SYSTEM_NAME STREQUAL "windows" OR BUILD_FOR_SYSTEM_NAME STREQUAL "macos")
|
||||
#nothing
|
||||
else()
|
||||
LINK_DIRECTORIES(${OPENSSL_LIBRARIES_DIR})
|
||||
@@ -113,7 +113,7 @@ add_library(sparkmobile ${CUSTOM_LIB_TYPE}
|
||||
|
||||
if(BUILD_FOR_SYSTEM_NAME STREQUAL "android")
|
||||
target_link_libraries(sparkmobile ${OPENSSL_LIBRARIES} secp256k1_spark Boost::thread ${log-lib})
|
||||
elseif(BUILD_FOR_SYSTEM_NAME STREQUAL "windows")
|
||||
elseif(BUILD_FOR_SYSTEM_NAME STREQUAL "windows" OR BUILD_FOR_SYSTEM_NAME STREQUAL "macos")
|
||||
target_link_libraries(sparkmobile secp256k1_spark Boost::thread ${log-lib})
|
||||
else()
|
||||
target_link_libraries(sparkmobile ${OPENSSL_LIBRARIES} secp256k1_spark Boost::thread)
|
||||
@@ -121,9 +121,10 @@ 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 "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")
|
||||
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}")
|
||||
else()
|
||||
target_include_directories(sparkmobile PUBLIC secp256k1_spark ${OPENSSL_INCLUDE_DIR})
|
||||
|
||||
Reference in New Issue
Block a user