summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.woodpecker/linux.yaml52
-rwxr-xr-xbuild_single.sh156
-rw-r--r--libbridge/CMakeLists.txt10
3 files changed, 121 insertions, 97 deletions
diff --git a/.woodpecker/linux.yaml b/.woodpecker/linux.yaml
index 6adf2e7..22057e9 100644
--- a/.woodpecker/linux.yaml
+++ b/.woodpecker/linux.yaml
@@ -11,14 +11,19 @@ labels:
when:
- event: tag
+matrix:
+ repo:
+ - monero
+ - wownero
+
steps:
- - name: patch monero and cache depends
+ - name: patch ${repo} and cache depends
image: git.mrcyjanek.net/mrcyjanek/debian:buster
commands:
- - cd monero && git submodule update --init --force && cd ..
- - ./apply_patches.sh
- - cd monero/contrib/depends
- - for i in sources built; do cp "/root/.cache/$i" . -r || true; done
+ - cd ${repo} && git submodule update --init --force && cd ..
+ - ./apply_patches.sh ${repo}
+ - cd ${repo}/contrib/depends
+ - for i in sources built; do cp "/root/.cache/${repo}/$i" . -r || true; done
- make download
volumes:
- /opt/cache/monero_c/dotcache:/root/.cache
@@ -26,55 +31,56 @@ steps:
image: git.mrcyjanek.net/mrcyjanek/debian:buster
commands:
- apt update
- - apt install -y gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 gperf libtinfo5
- - ./build_single.sh x86_64-w64-mingw32 -j$(nproc)
+ - apt install -y ccache gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 gperf libtinfo5
+ - ./build_single.sh ${repo} x86_64-w64-mingw32 -j$(nproc)
- name: i686-w64-mingw32
image: git.mrcyjanek.net/mrcyjanek/debian:buster
commands:
- apt update
- - apt install -y gcc-mingw-w64-i686 g++-mingw-w64-i686 gperf libtinfo5
- - ./build_single.sh i686-w64-mingw32 -j$(nproc)
+ - apt install -y ccache gcc-mingw-w64-i686 g++-mingw-w64-i686 gperf libtinfo5
+ - ./build_single.sh ${repo} i686-w64-mingw32 -j$(nproc)
- name: x86_64-linux-gnu
image: git.mrcyjanek.net/mrcyjanek/debian:buster
commands:
- apt update
- - apt install -y gcc g++ gperf
- - ./build_single.sh x86_64-linux-gnu -j$(nproc)
+ - apt install -y ccache gcc g++ gperf
+ - ./build_single.sh ${repo} x86_64-linux-gnu -j$(nproc)
- name: i686-linux-gnu
image: git.mrcyjanek.net/mrcyjanek/debian:buster
commands:
- apt update
- - apt install -y gcc-i686-linux-gnu g++-i686-linux-gnu gperf
- - ./build_single.sh i686-linux-gnu -j$(nproc)
+ - apt install -y ccache gcc-i686-linux-gnu g++-i686-linux-gnu gperf
+ - ./build_single.sh ${repo} i686-linux-gnu -j$(nproc)
- name: aarch64-linux-gnu
image: git.mrcyjanek.net/mrcyjanek/debian:buster
commands:
- apt update
- - apt install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu gperf
- - ./build_single.sh aarch64-linux-gnu -j$(nproc)
+ - apt install -y ccache gcc-aarch64-linux-gnu g++-aarch64-linux-gnu gperf
+ - ./build_single.sh ${repo} aarch64-linux-gnu -j$(nproc)
- name: x86_64-linux-android
image: git.mrcyjanek.net/mrcyjanek/debian:buster
commands:
- apt update
- - apt install -y libtinfo5 gperf
- - ./build_single.sh x86_64-linux-android -j$(nproc)
+ - apt install -y ccache libtinfo5 gperf
+ - ./build_single.sh ${repo} x86_64-linux-android -j$(nproc)
- name: aarch64-linux-android
image: git.mrcyjanek.net/mrcyjanek/debian:buster
commands:
- apt update
- - apt install -y libtinfo5 gperf
- - ./build_single.sh aarch64-linux-android -j$(nproc)
+ - apt install -y ccache libtinfo5 gperf
+ - ./build_single.sh ${repo} aarch64-linux-android -j$(nproc)
- name: arm-linux-androideabi
image: git.mrcyjanek.net/mrcyjanek/debian:buster
commands:
- apt update
- - apt install -y libtinfo5 gperf
- - ./build_single.sh arm-linux-androideabi -j$(nproc)
+ - apt install -y ccache libtinfo5 gperf
+ - ./build_single.sh ${repo} arm-linux-androideabi -j$(nproc)
- name: cache depends
image: git.mrcyjanek.net/mrcyjanek/debian:buster
commands:
- - cd monero/contrib/depends
- - for i in sources built; do cp "$i" "/root/.cache/" -r || true; done
+ - cd ${repo}/contrib/depends
+ - mkdir -p /root/.cache/${repo} || true
+ - for i in sources built; do cp "$i" "/root/.cache/${repo}" -r || true; done
volumes:
- /opt/cache/monero_c/dotcache:/root/.cache
- name: upload artifact
diff --git a/build_single.sh b/build_single.sh
index ce08d8f..2e0b3cc 100755
--- a/build_single.sh
+++ b/build_single.sh
@@ -1,18 +1,37 @@
#!/bin/bash
set -e
+repo=$1
+if [[ "x$repo" == "x" ]];
+then
+ echo "Usage: $0 monero/wownero"
+ exit 1
+fi
+
+if [[ "x$repo" != "xwownero" && "x$repo" != "xmonero" ]];
+then
+ echo "Usage: $0 monero/wownero"
+ echo "Invalid target given, only monero and wownero are supported targets"
+fi
-HOST_ABI="$1"
+if [[ ! -d "$repo" ]]
+then
+ echo "no '$repo' directory found. clone with --recursive or run:"
+ echo "$ git submodule init && git submodule update --force";
+ exit 1
+fi
+
+HOST_ABI="$2"
if [[ "x$HOST_ABI" == "x" ]];
then
- echo "Usage: $0 $(gcc -dumpmachine) -j$(nproc)"
+ echo "Usage: $0 monero/wownero $(gcc -dumpmachine) -j$(nproc)"
exit 1
fi
-NPROC="$2"
+NPROC="$3"
if [[ "x$NPROC" == "x" ]];
then
- echo "Usage: $0 $(gcc -dumpmachine) -j$(nproc)"
+ echo "Usage: $0 monero/wownero $(gcc -dumpmachine) -j$(nproc)"
exit 1
fi
cd $(dirname $0)
@@ -33,22 +52,22 @@ case "$HOST_ABI" in
export CXX="${HOST_ABI}-g++"
;;
"x86_64-linux-android")
- export PATH="$WDIR/monero/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
+ export PATH="$WDIR/$repo/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
export CC=${HOST_ABI}-clang
export CXX=${HOST_ABI}-clang++
;;
"i686-linux-android")
- export PATH="$WDIR/monero/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
+ export PATH="$WDIR/$repo/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
export CC=${HOST_ABI}-clang
export CXX=${HOST_ABI}-clang++
;;
"aarch64-linux-android")
- export PATH="$WDIR/monero/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
+ export PATH="$WDIR/$repo/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
export CC=${HOST_ABI}-clang
export CXX=${HOST_ABI}-clang++
;;
"arm-linux-androideabi")
- export PATH="$WDIR/monero/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
+ export PATH="$WDIR/$repo/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
export CC=${HOST_ABI}-clang
export CXX=${HOST_ABI}-clang++
;;
@@ -65,9 +84,9 @@ case "$HOST_ABI" in
export CXX=x86_64-w64-mingw32-g++-posix
;;
"x86_64-apple-darwin11")
- export PATH="$WDIR/contrib/depends/x86_64-apple-darwin11/native/bin:$PATH"
- export CC="clang -stdlib=libc++ -target x86_64-apple-darwin11 -mmacosx-version-min=10.7 --sysroot /build/monero/contrib/depends/x86_64-apple-darwin11/native/SDK/ -mlinker-version=609 -B/build/monero/contrib/depends/x86_64-apple-darwin11/native/bin/x86_64-apple-darwin11-"
- export CXX="clang++ -stdlib=libc++ -target x86_64-apple-darwin11 -mmacosx-version-min=10.7 --sysroot /build/monero/contrib/depends/x86_64-apple-darwin11/native/SDK/ -mlinker-version=609 -B/build/monero/contrib/depends/x86_64-apple-darwin11/native/bin/x86_64-apple-darwin11-"
+ export PATH="$WDIR/$repo/contrib/depends/x86_64-apple-darwin11/native/bin:$PATH"
+ export CC="clang -stdlib=libc++ -target x86_64-apple-darwin11 -mmacosx-version-min=10.7 --sysroot /build/$repo/contrib/depends/x86_64-apple-darwin11/native/SDK/ -mlinker-version=609 -B/build/$repo/contrib/depends/x86_64-apple-darwin11/native/bin/x86_64-apple-darwin11-"
+ export CXX="clang++ -stdlib=libc++ -target x86_64-apple-darwin11 -mmacosx-version-min=10.7 --sysroot /build/$repo/contrib/depends/x86_64-apple-darwin11/native/SDK/ -mlinker-version=609 -B/build/$repo/contrib/depends/x86_64-apple-darwin11/native/bin/x86_64-apple-darwin11-"
;;
esac
@@ -84,15 +103,15 @@ then
fi
-pushd monero/contrib/depends
+pushd $repo/contrib/depends
CC=gcc CXX=g++ make HOST="$HOST_ABI" "$NPROC"
popd
buildType=Release
-rm -rf monero/build/${HOST_ABI} 2>/dev/null || true
-mkdir -p monero/build/${HOST_ABI}
-pushd monero/build/${HOST_ABI}
+rm -rf $repo/build/${HOST_ABI} 2>/dev/null || true
+mkdir -p $repo/build/${HOST_ABI}
+pushd $repo/build/${HOST_ABI}
case "$HOST_ABI" in
"x86_64-linux-gnu")
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 ARCH="x86-64" -D STATIC=ON -D BUILD_64="ON" -D CMAKE_BUILD_TYPE=$buildType -D ANDROID=false -D BUILD_TAG="linux-x64" -D CMAKE_SYSTEM_NAME="Linux" ../..
@@ -132,61 +151,54 @@ pushd monero/build/${HOST_ABI}
CC=gcc CXX=g++ make wallet_api $NPROC
popd
-for buildType in Release Debug
-do
- pushd libbridge
- rm -rf build/${HOST_ABI} || true
- mkdir -p build/${HOST_ABI} -p
- cd build/${HOST_ABI}
-
- env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_BUILD_TYPE=$buildType -DHOST_ABI=${HOST_ABI} ../..
- CC="${CC}" CXX="${CXX}" make $NPROC
- popd
+pushd libbridge
+ rm -rf build/${HOST_ABI} || true
+ mkdir -p build/${HOST_ABI} -p
+ cd build/${HOST_ABI}
+
+ env CC="${CC}" CXX="${CXX}" cmake -DMONERO_FLAVOR=$repo -DCMAKE_BUILD_TYPE=Debug -DHOST_ABI=${HOST_ABI} ../..
+ CC="${CC}" CXX="${CXX}" make $NPROC
+popd
- mkdir release 2>/dev/null || true
- pushd release
- APPENDIX=""
- if [[ "x$buildType" == "xDebug" ]];
- then
- DEBUG=".DEBUG"
- fi
- if [[ "${HOST_ABI}" == "x86_64-w64-mingw32" || "${HOST_ABI}" == "i686-w64-mingw32" ]];
- then
- APPENDIX="${APPENDIX}dll"
- cp ../monero/build/${HOST_ABI}/external/polyseed/libpolyseed.${APPENDIX} ${HOST_ABI}_libpolyseed${DEBUG}.${APPENDIX}
- rm ${HOST_ABI}_libpolyseed${DEBUG}.${APPENDIX}.xz || true
- xz -e ${HOST_ABI}_libpolyseed${DEBUG}.${APPENDIX}
- else
- APPENDIX="${APPENDIX}so"
- fi
- xz -e ../libbridge/build/${HOST_ABI}/libwallet2_api_c.${APPENDIX}
- mv ../libbridge/build/${HOST_ABI}/libwallet2_api_c.${APPENDIX}.xz ${HOST_ABI}_libwallet2_api_c${DEBUG}.${APPENDIX}.xz
- # Extra libraries
- if [[ "$HOST_ABI" == "x86_64-w64-mingw32" || "$HOST_ABI" == "i686-w64-mingw32" ]];
- then
- cp /usr/${HOST_ABI}/lib/libwinpthread-1.dll ${HOST_ABI}_libwinpthread-1.dll
- rm ${HOST_ABI}_libwinpthread-1.dll.xz || true
- xz -e ${HOST_ABI}_libwinpthread-1.dll
- ####
- cp /usr/lib/gcc/${HOST_ABI}/8.3-posix/libstdc++-6.dll ${HOST_ABI}_libstdc++-6.dll
- rm ${HOST_ABI}_libstdc++-6.dll.xz || true
- xz -e ${HOST_ABI}_libstdc++-6.dll
- ####
- cp /usr/lib/gcc/${HOST_ABI}/8.3-posix/libssp-0.dll ${HOST_ABI}_libssp-0.dll
- rm ${HOST_ABI}_libssp-0.dll.xz || true
- xz -e ${HOST_ABI}_libssp-0.dll
- fi
- if [[ "$HOST_ABI" == "x86_64-w64-mingw32" ]];
- then
- cp /usr/lib/gcc/${HOST_ABI}/8.3-posix/libgcc_s_seh-1.dll ${HOST_ABI}_libgcc_s_seh-1.dll
- rm ${HOST_ABI}_libgcc_s_seh-1.dll.xz || true
- xz -e ${HOST_ABI}_libgcc_s_seh-1.dll
- fi
- if [[ "$HOST_ABI" == "i686-w64-mingw32" ]];
- then
- cp /usr/lib/gcc/${HOST_ABI}/8.3-posix/libgcc_s_sjlj-1.dll ${HOST_ABI}_libgcc_s_sjlj-1.dll
- rm ${HOST_ABI}_libgcc_s_sjlj-1.dll.xz || true
- xz -e ${HOST_ABI}_libgcc_s_sjlj-1.dll
- fi
- popd
-done \ No newline at end of file
+mkdir -p release/$repo 2>/dev/null || true
+pushd release/$repo
+ APPENDIX=""
+ if [[ "${HOST_ABI}" == "x86_64-w64-mingw32" || "${HOST_ABI}" == "i686-w64-mingw32" ]];
+ then
+ APPENDIX="${APPENDIX}dll"
+ 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}
+ else
+ APPENDIX="${APPENDIX}so"
+ fi
+ xz -e ../../libbridge/build/${HOST_ABI}/libwallet2_api_c.${APPENDIX}
+ mv ../../libbridge/build/${HOST_ABI}/libwallet2_api_c.${APPENDIX}.xz ${HOST_ABI}_libwallet2_api_c.${APPENDIX}.xz
+ # Extra libraries
+ if [[ "$HOST_ABI" == "x86_64-w64-mingw32" || "$HOST_ABI" == "i686-w64-mingw32" ]];
+ then
+ cp /usr/${HOST_ABI}/lib/libwinpthread-1.dll ${HOST_ABI}_libwinpthread-1.dll
+ rm ${HOST_ABI}_libwinpthread-1.dll.xz || true
+ xz -e ${HOST_ABI}_libwinpthread-1.dll
+ ####
+ cp /usr/lib/gcc/${HOST_ABI}/8.3-posix/libstdc++-6.dll ${HOST_ABI}_libstdc++-6.dll
+ rm ${HOST_ABI}_libstdc++-6.dll.xz || true
+ xz -e ${HOST_ABI}_libstdc++-6.dll
+ ####
+ cp /usr/lib/gcc/${HOST_ABI}/8.3-posix/libssp-0.dll ${HOST_ABI}_libssp-0.dll
+ rm ${HOST_ABI}_libssp-0.dll.xz || true
+ xz -e ${HOST_ABI}_libssp-0.dll
+ fi
+ if [[ "$HOST_ABI" == "x86_64-w64-mingw32" ]];
+ then
+ cp /usr/lib/gcc/${HOST_ABI}/8.3-posix/libgcc_s_seh-1.dll ${HOST_ABI}_libgcc_s_seh-1.dll
+ rm ${HOST_ABI}_libgcc_s_seh-1.dll.xz || true
+ xz -e ${HOST_ABI}_libgcc_s_seh-1.dll
+ fi
+ if [[ "$HOST_ABI" == "i686-w64-mingw32" ]];
+ then
+ cp /usr/lib/gcc/${HOST_ABI}/8.3-posix/libgcc_s_sjlj-1.dll ${HOST_ABI}_libgcc_s_sjlj-1.dll
+ rm ${HOST_ABI}_libgcc_s_sjlj-1.dll.xz || true
+ xz -e ${HOST_ABI}_libgcc_s_sjlj-1.dll
+ fi
+popd \ No newline at end of file
diff --git a/libbridge/CMakeLists.txt b/libbridge/CMakeLists.txt
index 2679186..d2f3cfa 100644
--- a/libbridge/CMakeLists.txt
+++ b/libbridge/CMakeLists.txt
@@ -21,7 +21,7 @@ add_library( wallet2_api_c
src/main/cpp/helpers.cpp
src/main/cpp/wallet2_api_c.cpp )
-set(MONERO_DIR ${CMAKE_SOURCE_DIR}/../monero)
+set(MONERO_DIR ${CMAKE_SOURCE_DIR}/../${MONERO_FLAVOR})
set(EXTERNAL_LIBS_DIR ${MONERO_DIR}/contrib/depends/${HOST_ABI})
############
@@ -226,9 +226,15 @@ add_library(hardforks STATIC IMPORTED)
set_target_properties(hardforks PROPERTIES IMPORTED_LOCATION
${MONERO_DIR}/build/${HOST_ABI}/src/hardforks/libhardforks.a)
+if (${MONERO_FLAVOR} STREQUAL "monero")
+ set(RANDOMX_FLAVOR "randomx")
+elseif(${MONERO_FLAVOR} STREQUAL "wownero")
+ set(RANDOMX_FLAVOR "randomwow")
+endif()
+
add_library(randomx STATIC IMPORTED)
set_target_properties(randomx PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/external/randomx/librandomx.a)
+ ${MONERO_DIR}/build/${HOST_ABI}/external/${RANDOMX_FLAVOR}/librandomx.a)
add_library(rpc_base STATIC IMPORTED)
set_target_properties(rpc_base PROPERTIES IMPORTED_LOCATION