feat: macos host builds
This commit is contained in:
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -4,3 +4,6 @@
|
||||
[submodule "wownero"]
|
||||
path = wownero
|
||||
url = https://git.wownero.com/wownero/wownero
|
||||
[submodule "external/polyseed"]
|
||||
path = external/polyseed
|
||||
url = https://github.com/tevador/polyseed
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
function verbose_copy() {
|
||||
echo "==> cp $1 $2"
|
||||
cp $1 $2
|
||||
}
|
||||
|
||||
set -e
|
||||
repo=$1
|
||||
if [[ "x$repo" == "x" ]];
|
||||
@@ -93,6 +99,10 @@ case "$HOST_ABI" in
|
||||
export CC="clang -stdlib=libc++ -target arm64-apple-darwin11 -mmacosx-version-min=10.8 --sysroot $WDIR/$repo/contrib/depends/aarch64-apple-darwin11/native/SDK/ -mlinker-version=609 -B$WDIR/$repo/contrib/depends/aarch64-apple-darwin11/native/bin/aarch64-apple-darwin11-"
|
||||
export CXX="clang++ -stdlib=libc++ -target arm64-apple-darwin11 -mmacosx-version-min=10.8 --sysroot $WDIR/$repo/contrib/depends/aarch64-apple-darwin11/native/SDK/ -mlinker-version=609 -B$WDIR/$repo/contrib/depends/aarch64-apple-darwin11/native/bin/aarch64-apple-darwin11-"
|
||||
;;
|
||||
"host-apple-darwin")
|
||||
export CC="clang"
|
||||
export CXX="clang++"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ "x$CC" == "x" ]];
|
||||
@@ -106,10 +116,51 @@ then
|
||||
echo "No C++ compiler found for abi: '$HOST_ABI'. Adjust the switch case in $0"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
pushd $repo/contrib/depends
|
||||
CC=gcc CXX=g++ make HOST="$HOST_ABI" "$NPROC"
|
||||
case "$HOST_ABI" in
|
||||
"x86_64-linux-gnu" | "i686-linux-gnu" | "aarch64-linux-gnu" | "x86_64-linux-android" | "i686-linux-android" | "aarch64-linux-android" | "arm-linux-androideabi" | "i686-w64-mingw32" | "x86_64-w64-mingw32" | "x86_64-apple-darwin11" | "aarch64-apple-darwin11")
|
||||
CC=gcc CXX=g++ make HOST="$HOST_ABI" "$NPROC"
|
||||
;;
|
||||
"host-apple-darwin")
|
||||
echo "===================================="
|
||||
echo "= ="
|
||||
echo "= CHECK README.md IF BUILD FAILS ="
|
||||
echo "= ="
|
||||
echo "===================================="
|
||||
echo "WARN: using host dependencies on macos."
|
||||
POLYSEED_DIR=../../../external/polyseed/build/${HOST_ABI}
|
||||
rm -rf ${POLYSEED_DIR}
|
||||
mkdir -p ${POLYSEED_DIR}
|
||||
pushd ${POLYSEED_DIR}
|
||||
CC="${CC}" CXX="${CXX}" cmake ../..
|
||||
make $NPROC
|
||||
popd
|
||||
MACOS_LIBS_DIR="${PWD}/host-apple-darwin"
|
||||
rm -rf ${MACOS_LIBS_DIR}
|
||||
mkdir -p ${MACOS_LIBS_DIR}/lib
|
||||
export HOMEBREW_PREFIX=/opt/homebrew
|
||||
verbose_copy "${HOMEBREW_PREFIX}/lib/libunbound.a" ${MACOS_LIBS_DIR}/lib/libunbound.a
|
||||
verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_chrono-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_chrono-mt.a
|
||||
verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_locale-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_locale-mt.a
|
||||
verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_date_time-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_date_time-mt.a
|
||||
verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_filesystem-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_filesystem-mt.a
|
||||
verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_program_options-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_program_options-mt.a
|
||||
verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_regex-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_regex-mt.a
|
||||
verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_serialization-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_serialization-mt.a
|
||||
verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_system-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_system-mt.a
|
||||
verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_thread-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_thread-mt.a
|
||||
verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_wserialization-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_wserialization-mt.a
|
||||
verbose_copy "${POLYSEED_DIR}/libpolyseed.a" ${MACOS_LIBS_DIR}/lib/libpolyseed.a
|
||||
verbose_copy "${HOMEBREW_PREFIX}/lib/libssl.a" ${MACOS_LIBS_DIR}/lib/libssl.a
|
||||
verbose_copy "${HOMEBREW_PREFIX}/lib/libcrypto.a" ${MACOS_LIBS_DIR}/lib/libcrypto.a
|
||||
verbose_copy "${HOMEBREW_PREFIX}/lib/libsodium.a" ${MACOS_LIBS_DIR}/lib/libsodium.a
|
||||
verbose_copy "${HOMEBREW_PREFIX}/lib/libevent.a" ${MACOS_LIBS_DIR}/lib/libevent.a
|
||||
;;
|
||||
*)
|
||||
echo "Unable to build dependencies for '$HOST_ABI'."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
popd
|
||||
|
||||
buildType=Release
|
||||
@@ -151,6 +202,9 @@ pushd $repo/build/${HOST_ABI}
|
||||
"aarch64-apple-darwin11")
|
||||
env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D STATIC=ON -D ARCH="armv8-a" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=$buildType -D BUILD_TAG="mac-armv8" ../..
|
||||
;;
|
||||
"host-apple-darwin")
|
||||
env CC="${CC}" CXX="${CXX}" cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D STATIC=ON -D BUILD_64=ON -D CMAKE_BUILD_TYPE=$buildType ../..
|
||||
;;
|
||||
*)
|
||||
echo "we don't know how to compile monero for '$HOST_ABI'"
|
||||
exit 1
|
||||
@@ -183,7 +237,7 @@ pushd release/$repo
|
||||
cp ../../$repo/build/${HOST_ABI}/external/polyseed/libpolyseed.${APPENDIX} ${HOST_ABI}_libpolyseed.${APPENDIX}
|
||||
rm ${HOST_ABI}_libpolyseed.${APPENDIX}.xz || true
|
||||
xz -e ${HOST_ABI}_libpolyseed.${APPENDIX}
|
||||
elif [[ "${HOST_ABI}" == "x86_64-apple-darwin11" || "${HOST_ABI}" == "aarch64-apple-darwin11" ]];
|
||||
elif [[ "${HOST_ABI}" == "x86_64-apple-darwin11" || "${HOST_ABI}" == "aarch64-apple-darwin11" || "${HOST_ABI}" == "host-apple-darwin" ]];
|
||||
then
|
||||
APPENDIX="${APPENDIX}dylib"
|
||||
else
|
||||
|
||||
1
external/polyseed
vendored
Submodule
1
external/polyseed
vendored
Submodule
Submodule external/polyseed added at b7c35bb3c6
@@ -256,6 +256,10 @@ add_library(hidapi STATIC IMPORTED)
|
||||
set_target_properties(hidapi PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/lib/libhidapi.a)
|
||||
|
||||
add_library(event STATIC IMPORTED)
|
||||
set_target_properties(event PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/lib/libevent.a)
|
||||
|
||||
#############
|
||||
# System
|
||||
#############
|
||||
@@ -276,6 +280,8 @@ endif()
|
||||
if (${HOST_ABI} STREQUAL "x86_64-apple-darwin11" OR ${HOST_ABI} STREQUAL "aarch64-apple-darwin11")
|
||||
set(EXTRA_LIBS_APPLE "-framework IOKit" "-framework CoreFoundation" "-framework Cocoa" hidapi)
|
||||
# set_target_properties(wallet2_api_c PROPERTIES LINK_FLAGS "-Wl,-F/Library/Frameworks")
|
||||
elseif(${HOST_ABI} STREQUAL "host-apple-darwin")
|
||||
set(EXTRA_LIBS_APPLE "-framework IOKit" "-framework CoreFoundation" "-framework Cocoa" apple_nghttp2 event)
|
||||
endif()
|
||||
|
||||
# target_compile_options(wallet2_api_c PRIVATE -static-libstdc++)
|
||||
@@ -286,7 +292,7 @@ if(${HOST_ABI} STREQUAL "x86_64-w64-mingw32" OR ${HOST_ABI} STREQUAL "i686-w64-m
|
||||
set(EXTRA_LIBS_WINDOWS wsock32 ws2_32 iconv iphlpapi crypt32 hidapi)
|
||||
endif()
|
||||
|
||||
if(${HOST_ABI} STREQUAL "x86_64-apple-darwin11" OR ${HOST_ABI} STREQUAL "aarch64-apple-darwin11")
|
||||
if(${HOST_ABI} STREQUAL "x86_64-apple-darwin11" OR ${HOST_ABI} STREQUAL "aarch64-apple-darwin11" OR ${HOST_ABI} STREQUAL "host-apple-darwin")
|
||||
set_target_properties(wallet2_api_c PROPERTIES SUFFIX ".dylib")
|
||||
|
||||
set_target_properties(wallet2_api_c PROPERTIES NO_SONAME 1)
|
||||
@@ -298,9 +304,10 @@ elseif(${MONERO_FLAVOR} STREQUAL "wownero")
|
||||
target_compile_definitions(wallet2_api_c PRIVATE FLAVOR_WOWNERO)
|
||||
endif()
|
||||
|
||||
if(NOT ${HOST_ABI} STREQUAL "x86_64-apple-darwin11" AND NOT ${HOST_ABI} STREQUAL "aarch64-apple-darwin11")
|
||||
if(NOT ${HOST_ABI} STREQUAL "x86_64-apple-darwin11" AND NOT ${HOST_ABI} STREQUAL "aarch64-apple-darwin11" AND NOT ${HOST_ABI} STREQUAL "host-apple-darwin")
|
||||
set_target_properties(wallet2_api_c PROPERTIES LINK_FLAGS "-Wl,--exclude-libs,ALL")
|
||||
endif()
|
||||
|
||||
target_link_libraries( wallet2_api_c
|
||||
|
||||
wallet_api
|
||||
|
||||
Reference in New Issue
Block a user