forked from lthn/blockchain
Refactor build profiles and remove legacy build scripts
Renamed and updated CMake build profiles for consistency across platforms, added a new gcc-linux-armv8 profile, and removed legacy build scripts and utilities from the utils directory. Introduced Docker build context and documentation for containerized builds. Updated docs submodule reference.
This commit is contained in:
parent
13743a6eef
commit
2781c7c9b7
31 changed files with 84 additions and 1100 deletions
8
.dockerignore
Normal file
8
.dockerignore
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
build
|
||||
.github
|
||||
.idea
|
||||
docs
|
||||
resources
|
||||
snap
|
||||
tests
|
||||
CMakeUserPresets.json
|
||||
|
|
@ -4,7 +4,6 @@ arch=armv8
|
|||
compiler=apple-clang
|
||||
compiler.version=13
|
||||
compiler.libcxx=libc++
|
||||
build_type=Release
|
||||
|
||||
[conf]
|
||||
|
||||
tools.cmake.cmaketoolchain:user_presets=False
|
||||
|
|
@ -4,7 +4,6 @@ arch=x86_64
|
|||
compiler=apple-clang
|
||||
compiler.version=13
|
||||
compiler.libcxx=libc++
|
||||
build_type=Release
|
||||
|
||||
[conf]
|
||||
|
||||
tools.cmake.cmaketoolchain:user_presets=False
|
||||
9
cmake/profiles/gcc-linux-armv8
Normal file
9
cmake/profiles/gcc-linux-armv8
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
[settings]
|
||||
os=Linux
|
||||
arch=armv8
|
||||
compiler=gcc
|
||||
compiler.version=11
|
||||
compiler.libcxx=libstdc++11
|
||||
|
||||
[conf]
|
||||
tools.cmake.cmaketoolchain:user_presets=False
|
||||
|
|
@ -4,7 +4,6 @@ arch=x86_64
|
|||
compiler=gcc
|
||||
compiler.version=11
|
||||
compiler.libcxx=libstdc++11
|
||||
build_type=Release
|
||||
|
||||
[conf]
|
||||
tools.cmake.cmaketoolchain:user_presets=False
|
||||
|
|
@ -1,6 +1,5 @@
|
|||
[settings]
|
||||
arch=x86_64
|
||||
build_type=Release
|
||||
compiler=msvc
|
||||
compiler.cppstd=17
|
||||
compiler.runtime=static
|
||||
2
docs
2
docs
|
|
@ -1 +1 @@
|
|||
Subproject commit a9e0a8a8fb8ce0c97dc0ea01698efdd65ee0137f
|
||||
Subproject commit 93d4f46cdac8ba499cbb2d7819a472d66e209127
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
# This patch fixes compilation issue in Boost 1.70-1.71 while it is being compiled by GCC ver >= 8.3
|
||||
# -- sowle
|
||||
# see also: https://github.com/boostorg/thread/pull/297
|
||||
#
|
||||
--- boost/thread/pthread/thread_data.hpp.orig 2023-10-10 20:22:30.860192033 +0000
|
||||
+++ boost/thread/pthread/thread_data.hpp 2023-10-10 18:19:22.460764089 +0000
|
||||
@@ -57,7 +57,7 @@
|
||||
#else
|
||||
std::size_t page_size = ::sysconf( _SC_PAGESIZE);
|
||||
#endif
|
||||
-#if PTHREAD_STACK_MIN > 0
|
||||
+#ifdef PTHREAD_STACK_MIN
|
||||
if (size<PTHREAD_STACK_MIN) size=PTHREAD_STACK_MIN;
|
||||
#endif
|
||||
size = ((size+page_size-1)/page_size)*page_size;
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
import sys
|
||||
import os
|
||||
import smtplib
|
||||
from email.message import EmailMessage
|
||||
|
||||
def getenv(e):
|
||||
t = os.getenv(e)
|
||||
if t == None:
|
||||
print("Error: environment variable " + e + " was not set")
|
||||
exit(1)
|
||||
return t
|
||||
|
||||
zs_from = getenv("ZANO_SMTP_FROM")
|
||||
zs_addr = getenv("ZANO_SMTP_ADDR")
|
||||
zs_port = getenv("ZANO_SMTP_PORT")
|
||||
zs_user = getenv("ZANO_SMTP_USER")
|
||||
zs_pass = getenv("ZANO_SMTP_PASS")
|
||||
|
||||
if len(sys.argv) != 4:
|
||||
print("Usage: " + sys.argv[0] + " <subject> <recipient(s)> <body>")
|
||||
exit(1)
|
||||
|
||||
msg = EmailMessage()
|
||||
msg['Subject'] = sys.argv[1]
|
||||
msg['From'] = zs_from
|
||||
msg['To'] = sys.argv[2]
|
||||
msg.add_header('Content-Type','text/html')
|
||||
msg.set_payload(sys.argv[3])
|
||||
|
||||
s = smtplib.SMTP(zs_addr, zs_port)
|
||||
s.starttls()
|
||||
s.login(zs_user, zs_pass)
|
||||
s.send_message(msg)
|
||||
s.quit()
|
||||
|
||||
print("e-mail sent.")
|
||||
|
|
@ -1,147 +0,0 @@
|
|||
#!/bin/bash -x
|
||||
|
||||
# Environment prerequisites:
|
||||
# 1) QT_PREFIX_PATH should be set to Qt libs folder
|
||||
# 2) BOOST_ROOT should be set to the root of Boost
|
||||
# 3) OPENSSL_ROOT_DIR should be set to the root of OpenSSL
|
||||
#
|
||||
# for example, place these lines to the end of your ~/.bashrc :
|
||||
#
|
||||
# export BOOST_ROOT=/home/user/boost_1_66_0
|
||||
# export QT_PREFIX_PATH=/home/user/Qt5.10.1/5.10.1/gcc_64
|
||||
# export OPENSSL_ROOT_DIR=/home/user/openssl
|
||||
|
||||
ARCHIVE_NAME_PREFIX=zano-linux-x64-
|
||||
|
||||
: "${BOOST_ROOT:?BOOST_ROOT should be set to the root of Boost, ex.: /home/user/boost_1_66_0}"
|
||||
: "${QT_PREFIX_PATH:?QT_PREFIX_PATH should be set to Qt libs folder, ex.: /home/user/Qt5.10.1/5.10.1/gcc_64}"
|
||||
: "${OPENSSL_ROOT_DIR:?OPENSSL_ROOT_DIR should be set to OpenSSL root folder, ex.: /home/user/openssl}"
|
||||
|
||||
if [ -n "$build_prefix" ]; then
|
||||
ARCHIVE_NAME_PREFIX=${ARCHIVE_NAME_PREFIX}${build_prefix}-
|
||||
build_prefix_label="$build_prefix "
|
||||
fi
|
||||
|
||||
if [ "$testnet" == true ]; then
|
||||
testnet_def="-D TESTNET=TRUE"
|
||||
testnet_label="testnet "
|
||||
ARCHIVE_NAME_PREFIX=${ARCHIVE_NAME_PREFIX}testnet-
|
||||
fi
|
||||
|
||||
if [ "$testnet" == true ] || [ -n "$qt_dev_tools" ]; then
|
||||
copy_qt_dev_tools=true
|
||||
copy_qt_dev_tools_label="devtools "
|
||||
ARCHIVE_NAME_PREFIX=${ARCHIVE_NAME_PREFIX}devtools-
|
||||
fi
|
||||
|
||||
|
||||
prj_root=$(pwd)
|
||||
|
||||
echo "---------------- BUILDING PROJECT ----------------"
|
||||
echo "--------------------------------------------------"
|
||||
|
||||
echo "Building...."
|
||||
|
||||
rm -rf build; mkdir -p build/release; cd build/release;
|
||||
cmake $testnet_def -D STATIC=true -D ARCH=x86-64 -D BUILD_GUI=TRUE -D OPENSSL_ROOT_DIR="$OPENSSL_ROOT_DIR" -D CMAKE_PREFIX_PATH="$QT_PREFIX_PATH" -D CMAKE_BUILD_TYPE=Release ../..
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to run cmake"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
make -j2 daemon simplewallet connectivity_tool
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to make!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
make -j1 Zano
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to make!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
read version_str <<< $(./src/zanod --version | awk '/^Zano/ { print $2 }')
|
||||
version_str=${version_str}
|
||||
echo $version_str
|
||||
|
||||
rm -rf Zano;
|
||||
mkdir -p Zano;
|
||||
|
||||
rsync -a ../../src/gui/qt-daemon/layout/html ./Zano --exclude less --exclude package.json --exclude gulpfile.js
|
||||
cp -Rv ../../utils/Zano.sh ./Zano
|
||||
chmod 777 ./Zano/Zano.sh
|
||||
mkdir ./Zano/lib
|
||||
cp $QT_PREFIX_PATH/lib/libicudata.so.56 ./Zano/lib
|
||||
cp $QT_PREFIX_PATH/lib/libicui18n.so.56 ./Zano/lib
|
||||
cp $QT_PREFIX_PATH/lib/libicuuc.so.56 ./Zano/lib
|
||||
cp $QT_PREFIX_PATH/lib/libQt5Core.so.5 ./Zano/lib
|
||||
cp $QT_PREFIX_PATH/lib/libQt5DBus.so.5 ./Zano/lib
|
||||
cp $QT_PREFIX_PATH/lib/libQt5Gui.so.5 ./Zano/lib
|
||||
cp $QT_PREFIX_PATH/lib/libQt5Network.so.5 ./Zano/lib
|
||||
cp $QT_PREFIX_PATH/lib/libQt5OpenGL.so.5 ./Zano/lib
|
||||
cp $QT_PREFIX_PATH/lib/libQt5Positioning.so.5 ./Zano/lib
|
||||
cp $QT_PREFIX_PATH/lib/libQt5PrintSupport.so.5 ./Zano/lib
|
||||
cp $QT_PREFIX_PATH/lib/libQt5Qml.so.5 ./Zano/lib
|
||||
cp $QT_PREFIX_PATH/lib/libQt5Quick.so.5 ./Zano/lib
|
||||
cp $QT_PREFIX_PATH/lib/libQt5Sensors.so.5 ./Zano/lib
|
||||
cp $QT_PREFIX_PATH/lib/libQt5Sql.so.5 ./Zano/lib
|
||||
cp $QT_PREFIX_PATH/lib/libQt5Widgets.so.5 ./Zano/lib
|
||||
cp $QT_PREFIX_PATH/lib/libQt5WebEngine.so.5 ./Zano/lib
|
||||
cp $QT_PREFIX_PATH/lib/libQt5WebEngineCore.so.5 ./Zano/lib
|
||||
cp $QT_PREFIX_PATH/lib/libQt5WebEngineWidgets.so.5 ./Zano/lib
|
||||
cp $QT_PREFIX_PATH/lib/libQt5WebChannel.so.5 ./Zano/lib
|
||||
cp $QT_PREFIX_PATH/lib/libQt5XcbQpa.so.5 ./Zano/lib
|
||||
cp $QT_PREFIX_PATH/lib/libQt5QuickWidgets.so.5 ./Zano/lib
|
||||
cp $QT_PREFIX_PATH/libexec/QtWebEngineProcess ./Zano
|
||||
cp $QT_PREFIX_PATH/resources/qtwebengine_resources.pak ./Zano
|
||||
cp $QT_PREFIX_PATH/resources/qtwebengine_resources_100p.pak ./Zano
|
||||
cp $QT_PREFIX_PATH/resources/qtwebengine_resources_200p.pak ./Zano
|
||||
cp $QT_PREFIX_PATH/resources/icudtl.dat ./Zano
|
||||
|
||||
if [ "$copy_qt_dev_tools" = true ] ; then
|
||||
cp $QT_PREFIX_PATH/resources/qtwebengine_devtools_resources.pak ./Zano
|
||||
fi
|
||||
|
||||
mkdir ./Zano/lib/platforms
|
||||
cp $QT_PREFIX_PATH/plugins/platforms/libqxcb.so ./Zano/lib/platforms
|
||||
mkdir ./Zano/xcbglintegrations
|
||||
cp $QT_PREFIX_PATH/plugins/xcbglintegrations/libqxcb-glx-integration.so ./Zano/xcbglintegrations
|
||||
|
||||
cp -Rv src/zanod src/Zano src/simplewallet src/connectivity_tool ./Zano
|
||||
|
||||
package_filename=${ARCHIVE_NAME_PREFIX}${version_str}.tar.bz2
|
||||
|
||||
rm -f ./$package_filename
|
||||
tar -cjvf $package_filename Zano
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to pack"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Build success"
|
||||
|
||||
if [ -z "$upload_build" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Uploading..."
|
||||
|
||||
scp $package_filename zano_build_server:/var/www/html/builds
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to upload to remote server"
|
||||
exit $?
|
||||
fi
|
||||
|
||||
read checksum <<< $(sha256sum $package_filename | awk '/^/ { print $1 }' )
|
||||
|
||||
mail_msg="New ${build_prefix_label}${testnet_label}${copy_qt_dev_tools_label}build for linux-x64:<br>
|
||||
<a href='https://build.zano.org/builds/$package_filename'>https://build.zano.org/builds/$package_filename</a><br>
|
||||
sha256: $checksum"
|
||||
|
||||
echo "$mail_msg"
|
||||
|
||||
python3 ../../utils/build_mail.py "Zano linux-x64 ${build_prefix_label}${testnet_label}${copy_qt_dev_tools_label}build $version_str" "${emails}" "$mail_msg"
|
||||
|
||||
exit 0
|
||||
|
|
@ -1,159 +0,0 @@
|
|||
#!/bin/bash -x
|
||||
|
||||
# Environment prerequisites:
|
||||
# 1) QT_PREFIX_PATH should be set to Qt libs folder
|
||||
# 2) BOOST_ROOT should be set to the root of Boost
|
||||
# 3) OPENSSL_ROOT_DIR should be set to the root of OpenSSL
|
||||
#
|
||||
# for example, place these lines to the end of your ~/.bashrc :
|
||||
#
|
||||
# export BOOST_ROOT=/home/user/boost_1_66_0
|
||||
# export QT_PREFIX_PATH=/home/user/Qt5.10.1/5.10.1/gcc_64
|
||||
# export OPENSSL_ROOT_DIR=/home/user/openssl
|
||||
# export LINUX_DEPLOY_QT=/home/user/QtDeployment.appimage
|
||||
# export LINUX_APPIMAGE_TOOL=/home/user/AppImageTool.appimage
|
||||
|
||||
|
||||
ARCHIVE_NAME_PREFIX=zano-linux-x64-
|
||||
|
||||
: "${BOOST_ROOT:?BOOST_ROOT should be set to the root of Boost, ex.: /home/user/boost_1_66_0}"
|
||||
: "${QT_PREFIX_PATH:?QT_PREFIX_PATH should be set to Qt libs folder, ex.: /home/user/Qt5.10.1/5.10.1/gcc_64}"
|
||||
: "${OPENSSL_ROOT_DIR:?OPENSSL_ROOT_DIR should be set to OpenSSL root folder, ex.: /home/user/openssl}"
|
||||
|
||||
if [ -n "$build_prefix" ]; then
|
||||
ARCHIVE_NAME_PREFIX=${ARCHIVE_NAME_PREFIX}${build_prefix}-
|
||||
build_prefix_label="$build_prefix "
|
||||
fi
|
||||
|
||||
if [ "$testnet" == true ]; then
|
||||
testnet_def="-D TESTNET=TRUE"
|
||||
testnet_label="testnet "
|
||||
ARCHIVE_NAME_PREFIX=${ARCHIVE_NAME_PREFIX}testnet-
|
||||
fi
|
||||
|
||||
if [ "$testnet" == true ] || [ -n "$qt_dev_tools" ]; then
|
||||
copy_qt_dev_tools=true
|
||||
copy_qt_dev_tools_label="devtools "
|
||||
ARCHIVE_NAME_PREFIX=${ARCHIVE_NAME_PREFIX}devtools-
|
||||
fi
|
||||
|
||||
|
||||
prj_root=$(pwd)
|
||||
|
||||
if [ "$1" == "skip_build" ]; then
|
||||
echo "Skipping build, only packing..."
|
||||
cd build/release;
|
||||
else
|
||||
echo "---------------- BUILDING PROJECT ----------------"
|
||||
echo "--------------------------------------------------"
|
||||
|
||||
echo "Building...."
|
||||
|
||||
rm -rf build; mkdir -p build/release;
|
||||
cd build/release;
|
||||
cmake $testnet_def -D STATIC=true -D ARCH=x86-64 -D DISABLE_TOR=TRUE -D BUILD_GUI=TRUE -D OPENSSL_ROOT_DIR="$OPENSSL_ROOT_DIR" -D CMAKE_PREFIX_PATH="$QT_PREFIX_PATH" -D CMAKE_BUILD_TYPE=Release ../..
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to run cmake"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
make -j2 daemon simplewallet connectivity_tool
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to make!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
make -j1 Zano
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to make!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
read version_str <<< $(./src/zanod --version | awk '/^Zano/ { print $2 }')
|
||||
version_str=${version_str}
|
||||
|
||||
read commit_str <<< $(./src/zanod --version | grep -m 1 -P -o "(?<=\[)[0-9a-f]{7}")
|
||||
commit_str=${commit_str}
|
||||
|
||||
echo $version_str
|
||||
echo $commit_str
|
||||
|
||||
|
||||
rm -rf Zano;
|
||||
mkdir -p Zano/usr/bin;
|
||||
mkdir -p Zano/usr/lib;
|
||||
mkdir -p Zano/usr/share/applications;
|
||||
mkdir -p Zano/usr/share/icons/hicolor/scalable/apps;
|
||||
mkdir -p Zano/usr/share/icons/hicolor/256x256/apps;
|
||||
|
||||
|
||||
rsync -a ../../src/gui/qt-daemon/layout/html ./Zano/usr/bin --exclude less --exclude package.json --exclude gulpfile.js
|
||||
|
||||
cp -Rv src/zanod src/Zano src/simplewallet src/connectivity_tool ./Zano/usr/bin
|
||||
cp -Rv ../../utils/Zano.desktop ./Zano/usr/share/applications/Zano.desktop
|
||||
cp -Rv ../../resources/app_icon.svg ./Zano/usr/share/icons/hicolor/scalable/apps/Zano.svg
|
||||
cp -Rv ../../resources/app_icon_256.png ./Zano/usr/share/icons/hicolor/256x256/apps/Zano.png
|
||||
|
||||
|
||||
echo "Exec=$prj_root/build/release/Zano/usr/bin/Zano" >> ./Zano/usr/share/applications/Zano.desktop
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to append deskyop file"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
$LINUX_DEPLOY_QT ./Zano/usr/share/applications/Zano.desktop -qmake=$QT_PREFIX_PATH/bin/qmake
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to run linuxqtdeployment"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm -f $prj_root/build/release/Zano/AppRun
|
||||
cp -Rv ../../utils/Zano_appimage_wrapper.sh $prj_root/build/release/Zano/AppRun
|
||||
|
||||
package_filename=${ARCHIVE_NAME_PREFIX}${version_str}.AppImage
|
||||
|
||||
$LINUX_APPIMAGE_TOOL ./Zano ./$package_filename
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to run appimagetool"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
#pattern="*.AppImage"
|
||||
#files=( $pattern )
|
||||
#app_image_file=${files[0]}
|
||||
|
||||
|
||||
#mv ./$app_image_file ./$package_filename
|
||||
|
||||
echo "Build success"
|
||||
|
||||
if [ -z "$upload_build" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Uploading..."
|
||||
|
||||
scp $package_filename zano_build_server:/var/www/html/builds
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to upload to remote server"
|
||||
exit $?
|
||||
fi
|
||||
|
||||
read checksum <<< $(sha256sum $package_filename | awk '/^/ { print $1 }' )
|
||||
|
||||
mail_msg="New ${build_prefix_label}${testnet_label}${copy_qt_dev_tools_label}build for linux-x64:<br>
|
||||
<a href='https://build.zano.org/builds/$package_filename'>https://build.zano.org/builds/$package_filename</a><br>
|
||||
sha256: $checksum"
|
||||
|
||||
echo "$mail_msg"
|
||||
|
||||
python3 ../../utils/build_mail.py "Zano linux-x64 ${build_prefix_label}${testnet_label}${copy_qt_dev_tools_label}build $version_str" "${emails}" "$mail_msg"
|
||||
|
||||
exit 0
|
||||
|
|
@ -1,197 +0,0 @@
|
|||
set -x # echo on
|
||||
set +e # switch off exit on error
|
||||
curr_path=${BASH_SOURCE%/*}
|
||||
|
||||
# check that all the required environment vars are set
|
||||
: "${ZANO_QT_PATH:?variable not set, see also macosx_build_config.command}"
|
||||
: "${ZANO_BOOST_ROOT:?variable not set, see also macosx_build_config.command}"
|
||||
: "${ZANO_BOOST_LIBS_PATH:?variable not set, see also macosx_build_config.command}"
|
||||
: "${ZANO_BUILD_DIR:?variable not set, see also macosx_build_config.command}"
|
||||
: "${CMAKE_OSX_SYSROOT:?CMAKE_OSX_SYSROOT should be set to macOS SDK path, e.g.: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk}"
|
||||
: "${OPENSSL_ROOT_DIR:?variable not set, see also macosx_build_config.command}"
|
||||
|
||||
ARCHIVE_NAME_PREFIX=zano-macos-x64-
|
||||
|
||||
if [ -n "$build_prefix" ]; then
|
||||
ARCHIVE_NAME_PREFIX=${ARCHIVE_NAME_PREFIX}${build_prefix}-
|
||||
build_prefix_label="$build_prefix "
|
||||
fi
|
||||
|
||||
if [ "$testnet" == true ]; then
|
||||
testnet_def="-D TESTNET=TRUE"
|
||||
testnet_label="testnet "
|
||||
ARCHIVE_NAME_PREFIX=${ARCHIVE_NAME_PREFIX}testnet-
|
||||
fi
|
||||
|
||||
######### DEBUG ##########
|
||||
#cd "$ZANO_BUILD_DIR/release/src"
|
||||
#rm *.dmg
|
||||
#if false; then
|
||||
##### end of DEBUG ######
|
||||
|
||||
rm -rf $ZANO_BUILD_DIR; mkdir -p "$ZANO_BUILD_DIR/release"; cd "$ZANO_BUILD_DIR/release"
|
||||
|
||||
cmake $testnet_def -D OPENSSL_ROOT_DIR=$OPENSSL_ROOT_DIR -D CMAKE_OSX_SYSROOT=$CMAKE_OSX_SYSROOT -D BUILD_GUI=TRUE -D CMAKE_PREFIX_PATH="$ZANO_QT_PATH/clang_64" -D CMAKE_BUILD_TYPE=Release -D BOOST_ROOT="$ZANO_BOOST_ROOT" -D BOOST_LIBRARYDIR="$ZANO_BOOST_LIBS_PATH" ../..
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to cmake"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
|
||||
make -j Zano
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to make Zano"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
make -j connectivity_tool daemon simplewallet
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to make binaries!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
cd src/
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to cd src"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# copy all necessary libs into the bundle in order to workaround El Capitan's SIP restrictions
|
||||
mkdir -p Zano.app/Contents/Frameworks/boost_libs
|
||||
cp -R $ZANO_BOOST_LIBS_PATH/*.dylib Zano.app/Contents/Frameworks/boost_libs/
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to cp workaround to MacOS"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# rename process name to big letter
|
||||
mv Zano.app/Contents/MacOS/zano Zano.app/Contents/MacOS/Zano
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to rename process"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cp zanod simplewallet Zano.app/Contents/MacOS/
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to copy binaries to Zano.app folder"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# fix boost libs paths in main executable and libs to workaround El Capitan's SIP restrictions
|
||||
source ../../../utils/macosx_fix_boost_libs_path.sh
|
||||
fix_boost_libs_in_binary @executable_path/../Frameworks/boost_libs Zano.app/Contents/MacOS/Zano
|
||||
fix_boost_libs_in_binary @executable_path/../Frameworks/boost_libs Zano.app/Contents/MacOS/simplewallet
|
||||
fix_boost_libs_in_binary @executable_path/../Frameworks/boost_libs Zano.app/Contents/MacOS/zanod
|
||||
#fix_boost_libs_in_libs @executable_path/../Frameworks/boost_libs Zano.app/Contents/Frameworks/boost_libs
|
||||
|
||||
|
||||
"$ZANO_QT_PATH/clang_64/bin/macdeployqt" Zano.app
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to macdeployqt Zano.app"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
rm -rf Zano.app/Contents/Frameworks/libboost*.dylib
|
||||
|
||||
|
||||
rsync -a ../../../src/gui/qt-daemon/layout/html Zano.app/Contents/MacOS --exclude less --exclude package.json --exclude gulpfile.js
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to cp html to MacOS"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cp ../../../src/gui/qt-daemon/app.icns Zano.app/Contents/Resources
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to cp app.icns to resources"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
codesign -s "Developer ID Application: Zano Limited" --timestamp --options runtime -f --entitlements ../../../utils/macos_entitlements.plist --deep ./Zano.app
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to sign Zano.app"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
read version_str <<< $(DYLD_LIBRARY_PATH=$ZANO_BOOST_LIBS_PATH ./connectivity_tool --version | awk '/^Zano/ { print $2 }')
|
||||
version_str=${version_str}
|
||||
echo $version_str
|
||||
|
||||
|
||||
echo "############### Prepearing archive... ################"
|
||||
mkdir package_folder
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to zip app"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mv Zano.app package_folder
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to top app package"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#fi
|
||||
|
||||
package_filename=${ARCHIVE_NAME_PREFIX}${version_str}.dmg
|
||||
|
||||
source ../../../utils/macosx_dmg_builder.sh
|
||||
build_fancy_dmg package_folder $package_filename
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to create fancy dmg"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Build success"
|
||||
|
||||
echo "############### Uploading... ################"
|
||||
|
||||
package_filepath="$(pwd)/$package_filename"
|
||||
|
||||
#scp $package_filepath zano_build_server:/var/www/html/builds/
|
||||
source ../../../utils/macosx_build_uploader.sh
|
||||
pushd .
|
||||
upload_build $package_filepath
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to upload to remote server"
|
||||
exit 1
|
||||
fi
|
||||
popd
|
||||
|
||||
|
||||
read checksum <<< $( shasum -a 256 $package_filepath | awk '/^/ { print $1 }' )
|
||||
|
||||
mail_msg="New ${build_prefix_label}${testnet_label}build for macOS-x64:<br>
|
||||
<a href='https://build.zano.org/builds/$package_filename'>https://build.zano.org/builds/$package_filename</a><br>
|
||||
sha256: $checksum"
|
||||
|
||||
echo "$mail_msg"
|
||||
|
||||
python3 ../../../utils/build_mail.py "Zano macOS-x64 ${build_prefix_label}${testnet_label}build $version_str" "${emails}" "$mail_msg"
|
||||
|
||||
######################
|
||||
# notarization
|
||||
######################
|
||||
|
||||
cd package_folder
|
||||
|
||||
echo "Notarizing..."
|
||||
|
||||
# creating archive for notarizing
|
||||
echo "Creating archive for notarizing"
|
||||
rm -f Zano.zip
|
||||
/usr/bin/ditto -c -k --keepParent ./Zano.app ./Zano.zip
|
||||
|
||||
tmpfile="tmptmptmp"
|
||||
#xcrun altool --notarize-app --primary-bundle-id "org.zano.desktop" -u "andrey@zano.org" -p "@keychain:Developer-altool" --file ./Zano.zip > $tmpfile 2>&1
|
||||
xcrun notarytool submit --wait --keychain-profile "notarytool-password" ./Zano.zip
|
||||
RETURN=$?
|
||||
if [ $RETURN -ne 0 ]; then
|
||||
echo "Failed to submit for notarization or notarization failed, error code $RETURN"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Notarization done"
|
||||
|
|
@ -1,236 +0,0 @@
|
|||
call configure_local_paths.cmd
|
||||
|
||||
;; MSVC version-specific paths
|
||||
SET QT_MSVC_PATH=%QT_PREFIX_PATH%\msvc2017_64
|
||||
|
||||
SET ACHIVE_NAME_PREFIX=zano-win-x64-
|
||||
SET MY_PATH=%~dp0
|
||||
SET SOURCES_PATH=%MY_PATH:~0,-7%
|
||||
|
||||
IF NOT [%build_prefix%] == [] (
|
||||
SET ACHIVE_NAME_PREFIX=%ACHIVE_NAME_PREFIX%%build_prefix%-
|
||||
)
|
||||
|
||||
IF "%testnet%" == "true" (
|
||||
SET TESTNET_DEF=-D TESTNET=TRUE
|
||||
SET TESTNET_LABEL=testnet
|
||||
SET ACHIVE_NAME_PREFIX=%ACHIVE_NAME_PREFIX%testnet-
|
||||
)
|
||||
|
||||
SET PARAM=%~1
|
||||
IF "%PARAM%"=="--skip-build" ( GOTO skip_build )
|
||||
|
||||
@echo on
|
||||
|
||||
set BOOST_ROOT=%LOCAL_BOOST_PATH%
|
||||
set BOOST_LIBRARYDIR=%LOCAL_BOOST_LIB_PATH%
|
||||
|
||||
|
||||
|
||||
@echo "---------------- PREPARING BINARIES ---------------------------"
|
||||
@echo "---------------------------------------------------------------"
|
||||
|
||||
|
||||
|
||||
cd %SOURCES_PATH%
|
||||
|
||||
@echo "---------------- BUILDING APPLICATIONS ------------------------"
|
||||
@echo "---------------------------------------------------------------"
|
||||
|
||||
|
||||
|
||||
|
||||
rmdir build /s /q
|
||||
mkdir build
|
||||
cd build
|
||||
|
||||
cmake %TESTNET_DEF% -D OPENSSL_ROOT_DIR="%OPENSSL_ROOT_DIR%" -D CMAKE_PREFIX_PATH="%QT_MSVC_PATH%" -D BUILD_GUI=TRUE -D STATIC=FALSE -DBOOST_ROOT="%BOOST_ROOT%" -DBOOST_LIBRARYDIR="%BOOST_ROOT%\lib64-msvc-14.2" -G "Visual Studio 16 2019" -A x64 -T host=x64 ..
|
||||
IF %ERRORLEVEL% NEQ 0 (
|
||||
goto error
|
||||
)
|
||||
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" x86_amd64
|
||||
echo on
|
||||
cd %SOURCES_PATH%\build
|
||||
|
||||
msbuild version.vcxproj /p:SubSystem="CONSOLE,5.02" /p:Configuration=Release /t:Build
|
||||
IF %ERRORLEVEL% NEQ 0 (
|
||||
goto error
|
||||
)
|
||||
|
||||
msbuild src/daemon.vcxproj /p:SubSystem="CONSOLE,5.02" /p:Configuration=Release /t:Build
|
||||
IF %ERRORLEVEL% NEQ 0 (
|
||||
goto error
|
||||
)
|
||||
|
||||
msbuild src/simplewallet.vcxproj /p:SubSystem="CONSOLE,5.02" /p:Configuration=Release /t:Build
|
||||
IF %ERRORLEVEL% NEQ 0 (
|
||||
goto error
|
||||
)
|
||||
|
||||
msbuild src/Zano.vcxproj /p:SubSystem="WINDOWS,5.02" /p:Configuration=Release /t:Build
|
||||
|
||||
IF %ERRORLEVEL% NEQ 0 (
|
||||
goto error
|
||||
)
|
||||
|
||||
|
||||
@echo on
|
||||
echo "sources are built successfully"
|
||||
|
||||
|
||||
|
||||
|
||||
:skip_build
|
||||
cd %SOURCES_PATH%/build
|
||||
|
||||
set cmd=src\Release\simplewallet.exe --version
|
||||
FOR /F "tokens=3" %%a IN ('%cmd%') DO set version=%%a
|
||||
set version=%version:~0,-2%
|
||||
echo '%version%'
|
||||
|
||||
set build_zip_filename=%ACHIVE_NAME_PREFIX%%version%.zip
|
||||
set build_zip_path=%BUILDS_PATH%\builds\%build_zip_filename%
|
||||
|
||||
del /F /Q %build_zip_path%
|
||||
|
||||
cd src\release
|
||||
|
||||
call :sign_file Zano.exe || goto error
|
||||
call :sign_file zanod.exe || goto error
|
||||
call :sign_file simplewallet.exe || goto error
|
||||
|
||||
@echo on
|
||||
|
||||
|
||||
mkdir bunch
|
||||
|
||||
copy /Y Zano.exe bunch
|
||||
copy /Y zanod.exe bunch
|
||||
copy /Y simplewallet.exe bunch
|
||||
copy /Y *.pdb bunch
|
||||
|
||||
%QT_MSVC_PATH%\bin\windeployqt.exe bunch\Zano.exe || goto error
|
||||
|
||||
cd bunch
|
||||
|
||||
zip -r %build_zip_path% *.*
|
||||
IF %ERRORLEVEL% NEQ 0 (
|
||||
goto error
|
||||
)
|
||||
|
||||
|
||||
@echo "Add html"
|
||||
|
||||
cd %SOURCES_PATH%\src\gui\qt-daemon\layout
|
||||
zip -x html/package.json html/gulpfile.js html/less/* -r %build_zip_path% html
|
||||
IF %ERRORLEVEL% NEQ 0 (
|
||||
goto error
|
||||
)
|
||||
|
||||
|
||||
@echo "Add runtime stuff"
|
||||
|
||||
|
||||
cd %ETC_BINARIES_PATH%
|
||||
zip -r %build_zip_path% *.*
|
||||
IF %ERRORLEVEL% NEQ 0 (
|
||||
goto error
|
||||
)
|
||||
|
||||
|
||||
cd %SOURCES_PATH%\build
|
||||
IF %ERRORLEVEL% NEQ 0 (
|
||||
goto error
|
||||
)
|
||||
|
||||
|
||||
@echo "---------------------------------------------------------------"
|
||||
@echo "-------------------Building installer--------------------------"
|
||||
@echo "---------------------------------------------------------------"
|
||||
|
||||
mkdir installer_src
|
||||
|
||||
|
||||
unzip -o %build_zip_path% -d installer_src
|
||||
IF %ERRORLEVEL% NEQ 0 (
|
||||
goto error
|
||||
)
|
||||
|
||||
|
||||
"%INNOSETUP_PATH%" /dBinariesPath=../build/installer_src /DMyAppVersion=%version% /o%BUILDS_PATH%\builds\ /f%ACHIVE_NAME_PREFIX%%version%-installer ..\utils\setup_64.iss
|
||||
IF %ERRORLEVEL% NEQ 0 (
|
||||
goto error
|
||||
)
|
||||
|
||||
|
||||
@echo "---------------------------------------------------------------"
|
||||
@echo "---------------------------------------------------------------"
|
||||
|
||||
set installer_file=%ACHIVE_NAME_PREFIX%%version%-installer.exe
|
||||
set installer_path=%BUILDS_PATH%\builds\%installer_file%
|
||||
|
||||
@echo " SIGNING the installer ...."
|
||||
|
||||
call :sign_file %installer_path% || goto error
|
||||
|
||||
@echo " UPLOADING TO SERVER ...."
|
||||
|
||||
pscp -load zano_build_server %installer_path% %ZANO_BUILDS_HOST%:/var/www/html/builds
|
||||
IF %ERRORLEVEL% NEQ 0 (
|
||||
@echo "FAILED TO UPLOAD EXE TO SERVER"
|
||||
goto error
|
||||
)
|
||||
call :sha256 %installer_path% installer_checksum
|
||||
|
||||
pscp -load zano_build_server %build_zip_path% %ZANO_BUILDS_HOST%:/var/www/html/builds
|
||||
IF %ERRORLEVEL% NEQ 0 (
|
||||
@echo "FAILED TO UPLOAD ZIP TO SERVER"
|
||||
goto error
|
||||
)
|
||||
call :sha256 %build_zip_path% build_zip_checksum
|
||||
|
||||
set mail_msg="New %build_prefix% %TESTNET_LABEL%build for win-x64:<br>INST: <a href='https://build.zano.org/builds/%installer_file%'>https://build.zano.org/builds/%installer_file%</a> <br>sha256: %installer_checksum%<br><br>ZIP: <a href='https://build.zano.org/builds/%build_zip_filename%'>https://build.zano.org/builds/%build_zip_filename%</a> <br>sha256: %build_zip_checksum%<br>"
|
||||
|
||||
echo %mail_msg%
|
||||
|
||||
python ../utils/build_mail.py "Zano win-x64 %build_prefix% %TESTNET_LABEL%build %version%" "%emails%" %mail_msg%
|
||||
|
||||
goto success
|
||||
|
||||
:error
|
||||
echo "BUILD FAILED"
|
||||
exit /B %ERRORLEVEL%
|
||||
|
||||
:success
|
||||
echo "BUILD SUCCESS"
|
||||
|
||||
cd ..
|
||||
|
||||
EXIT /B %ERRORLEVEL%
|
||||
|
||||
|
||||
:: functions
|
||||
|
||||
:sha256
|
||||
@setlocal enabledelayedexpansion
|
||||
@set /a count=1
|
||||
@for /f "skip=1 delims=:" %%a in ('CertUtil -hashfile %1 SHA256') do @(
|
||||
@if !count! equ 1 set "hash=%%a"
|
||||
@set /a count+=1
|
||||
)
|
||||
@(
|
||||
@endlocal
|
||||
@set "%2=%hash: =%
|
||||
)
|
||||
@exit /B 0
|
||||
|
||||
|
||||
:sign_file
|
||||
@echo Signing %1...
|
||||
@call %ZANO_SIGN_CMD% %1
|
||||
@if %ERRORLEVEL% neq 0 (
|
||||
@echo ERROR: failed to sign %1
|
||||
@exit /B 1
|
||||
)
|
||||
@exit /B 0
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
@echo off
|
||||
rem
|
||||
rem This file contains local path settings for your own personal dev environment.
|
||||
rem Rename to configure_local_paths.cmd and do not commit.
|
||||
rem
|
||||
|
||||
set QT_PREFIX_PATH=C:\dev\_sdk\Qt5.11.2\5.11.2
|
||||
set INNOSETUP_PATH=C:\Program Files (x86)\Inno Setup 5\ISCC.exe
|
||||
set ETC_BINARIES_PATH=C:\dev\deploy\etc-binaries
|
||||
set BUILDS_PATH=C:\dev\deploy\zano
|
||||
set LOCAL_BOOST_PATH=C:\dev\_sdk\boost_1_70_0
|
||||
set OPENSSL_ROOT_DIR=C:\dev\_sdk\OpenSSL-Win64
|
||||
set BOOST_ROOT=%LOCAL_BOOST_PATH%
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
@echo off
|
||||
rem
|
||||
rem This file contains local path settings for your own personal dev environment.
|
||||
rem Rename to configure_local_paths.cmd and do not commit.
|
||||
rem
|
||||
|
||||
set QT_PREFIX_PATH=C:\dev\_sdk\Qt5.15.2\5.15.2
|
||||
set BOOST_ROOT=C:\dev\_sdk\boost_1_77_0
|
||||
set OPENSSL_ROOT_DIR=C:\dev\_sdk\OpenSSL-Win64
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
set -x #echo on
|
||||
curr_path=${BASH_SOURCE%/*}
|
||||
|
||||
# check that all the required environment vars are set
|
||||
: "${ZANO_QT_PATH:?variable not set, see also macosx_build_config.command}"
|
||||
: "${ZANO_BOOST_ROOT:?variable not set, see also macosx_build_config.command}"
|
||||
: "${ZANO_BOOST_LIBS_PATH:?variable not set, see also macosx_build_config.command}"
|
||||
: "${ZANO_BUILD_DIR:?variable not set, see also macosx_build_config.command}"
|
||||
: "${CMAKE_OSX_SYSROOT:?CMAKE_OSX_SYSROOT should be set to macOS SDK path, e.g.: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk}"
|
||||
|
||||
BUILD_DIR=$curr_path/../$ZANO_BUILD_DIR/macos_xcodeproj
|
||||
BUILD_TYPE=Release
|
||||
|
||||
rm -rf $BUILD_DIR
|
||||
mkdir -p "$BUILD_DIR/$BUILD_TYPE"
|
||||
cd "$BUILD_DIR/$BUILD_TYPE"
|
||||
|
||||
cmake -D BUILD_GUI=TRUE -D CMAKE_PREFIX_PATH="$ZANO_QT_PATH/clang_64" -D CMAKE_BUILD_TYPE=$BUILD_TYPE -D BOOST_ROOT="$ZANO_BOOST_ROOT" -D BOOST_LIBRARYDIR="$ZANO_BOOST_LIBS_PATH" -G Xcode ../../..
|
||||
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
call configure_local_paths.cmd
|
||||
|
||||
cd ..
|
||||
@mkdir build_msvc2015_32
|
||||
cd build_msvc2015_32
|
||||
|
||||
cmake -D OPENSSL_ROOT_DIR="%OPENSSL_ROOT_DIR%" -D CMAKE_PREFIX_PATH="%QT_PREFIX_PATH%"\msvc2015 -D BUILD_GUI=TRUE -D STATIC=FALSE -DBOOST_ROOT="%BOOST_ROOT%" -DBOOST_LIBRARYDIR="%BOOST_ROOT%\lib32-msvc-14.0" -G "Visual Studio 14 2015" ".."
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
call configure_local_paths.cmd
|
||||
|
||||
cd ..
|
||||
@mkdir build_msvc2013_64
|
||||
cd build_msvc2013_64
|
||||
|
||||
cmake -D BUILD_TESTS=TRUE -D OPENSSL_ROOT_DIR="%OPENSSL_ROOT_DIR%" -D CMAKE_PREFIX_PATH="%QT_PREFIX_PATH%"\msvc2013_64 -D BUILD_GUI=TRUE -D STATIC=FALSE -DBOOST_ROOT="%BOOST_ROOT%" -DBOOST_LIBRARYDIR="%BOOST_ROOT%\lib64-msvc-12.0" -G "Visual Studio 12 2013 Win64" ".."
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
call configure_local_paths.cmd
|
||||
|
||||
cd ..
|
||||
@mkdir build_msvc2015_64
|
||||
cd build_msvc2015_64
|
||||
|
||||
cmake -D USE_PCH=TRUE -D BUILD_TESTS=TRUE -D OPENSSL_ROOT_DIR="%OPENSSL_ROOT_DIR%" -D CMAKE_PREFIX_PATH="%QT_PREFIX_PATH%"\msvc2015_64 -D BUILD_GUI=TRUE -D STATIC=FALSE -DBOOST_ROOT="%BOOST_ROOT%" -DBOOST_LIBRARYDIR="%BOOST_ROOT%\lib64-msvc-14.0" -G "Visual Studio 14 2015 Win64" -T host=x64 ".."
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
call configure_local_paths.cmd
|
||||
|
||||
cd ..
|
||||
@mkdir build_msvc2017_64
|
||||
cd build_msvc2017_64
|
||||
|
||||
cmake -D USE_PCH=TRUE -D BUILD_TESTS=TRUE -D OPENSSL_ROOT_DIR="%OPENSSL_ROOT_DIR%" -D CMAKE_PREFIX_PATH="%QT_PREFIX_PATH%"\msvc2017_64 -D BUILD_GUI=TRUE -D STATIC=FALSE -DBOOST_ROOT="%BOOST_ROOT%" -DBOOST_LIBRARYDIR="%BOOST_ROOT%\lib64-msvc-14.1" -G "Visual Studio 15 2017 Win64" -T host=x64 ".."
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
call configure_local_paths.cmd
|
||||
|
||||
cd ..
|
||||
@mkdir build_msvc2017_64_tn
|
||||
cd build_msvc2017_64_tn
|
||||
|
||||
cmake -D TESTNET=TRUE -D USE_PCH=TRUE -D BUILD_TESTS=TRUE -D OPENSSL_ROOT_DIR="%OPENSSL_ROOT_DIR%" -D CMAKE_PREFIX_PATH="%QT_PREFIX_PATH%"\msvc2017_64 -D BUILD_GUI=TRUE -D STATIC=FALSE -DBOOST_ROOT="%BOOST_ROOT%" -DBOOST_LIBRARYDIR="%BOOST_ROOT%\lib64-msvc-14.1" -G "Visual Studio 15 2017 Win64" -T host=x64 ".."
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
call configure_local_paths_msvs2019.cmd
|
||||
|
||||
cd ..
|
||||
@mkdir build_msvc2019_64_tn
|
||||
cd build_msvc2019_64_tn
|
||||
|
||||
cmake -D TESTNET=TRUE -D USE_PCH=TRUE -D BUILD_TESTS=TRUE -D OPENSSL_ROOT_DIR="%OPENSSL_ROOT_DIR%" -D CMAKE_PREFIX_PATH="%QT_PREFIX_PATH%"\msvc2019_64 -D BUILD_GUI=TRUE -D STATIC=FALSE -DBOOST_ROOT="%BOOST_ROOT%" -DBOOST_LIBRARYDIR="%BOOST_ROOT%\lib64-msvc-14.2" -G "Visual Studio 16 2019" -A x64 -T host=x64 ".."
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
call configure_local_paths_msvs2022.cmd
|
||||
|
||||
cd ..
|
||||
@mkdir build_msvc2022_64
|
||||
cd build_msvc2022_64
|
||||
|
||||
cmake -D TESTNET=FALSE -D USE_PCH=TRUE -D BUILD_TESTS=TRUE -D OPENSSL_ROOT_DIR="%OPENSSL_ROOT_DIR%" -D CMAKE_PREFIX_PATH="%QT_PREFIX_PATH%"\msvc2019_64 -D BUILD_GUI=TRUE -D STATIC=FALSE -DBOOST_ROOT="%BOOST_ROOT%" -DBOOST_LIBRARYDIR="%BOOST_ROOT%\lib64-msvc-14.3" -G "Visual Studio 17 2022" -A x64 -T host=x64 ".."
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
call configure_local_paths_msvs2022.cmd
|
||||
|
||||
cd ..
|
||||
@mkdir build_msvc2022_64_tn
|
||||
cd build_msvc2022_64_tn
|
||||
|
||||
cmake -D TESTNET=TRUE -D USE_PCH=TRUE -D BUILD_TESTS=TRUE -D OPENSSL_ROOT_DIR="%OPENSSL_ROOT_DIR%" -D CMAKE_PREFIX_PATH="%QT_PREFIX_PATH%"\msvc2019_64 -D BUILD_GUI=TRUE -D STATIC=FALSE -DBOOST_ROOT="%BOOST_ROOT%" -DBOOST_LIBRARYDIR="%BOOST_ROOT%\lib64-msvc-14.3" -G "Visual Studio 17 2022" -A x64 -T host=x64 ".."
|
||||
5
utils/docker/containers/README.md
Normal file
5
utils/docker/containers/README.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
# Standard Docker Deployments
|
||||
|
||||
You can define a multitude of configurations in code using Docker Compose. Each folder in this directory represents a specific use case with a corresponding reference configuration.
|
||||
|
||||
Instead of writing your own Dockerfile, we recommend that you tailor the stack for your needs by editing one of the existing configurations. If you believe your changes will be useful to others, please submit a patch to improve the reference Dockerfiles.
|
||||
59
utils/docker/images/lthn-chain/Dockerfile
Normal file
59
utils/docker/images/lthn-chain/Dockerfile
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
# This is a multi target docker image
|
||||
FROM ubuntu:24.04 AS builder
|
||||
LABEL authors="snider"
|
||||
|
||||
ARG THREADS=1
|
||||
ARG BUILD_BRANCH=dev-configure-testnet-1
|
||||
ARG BUILD_LOCAL=1
|
||||
ARG BUILD_REPO=https://github.com/letheanVPN/blockchain.git
|
||||
ARG BUILD_TARGET=gcc-linux-arm64
|
||||
ARG BUILD_FOLDER=build/release
|
||||
ARG BUILD_TYPE=Release
|
||||
ARG BUILD_TESTNET=0
|
||||
|
||||
|
||||
ENV CONAN_HOME=/root/sdk
|
||||
ENV BUILD_TARGET=${BUILD_TARGET}
|
||||
|
||||
RUN apt update && apt -y upgrade
|
||||
|
||||
RUN apt install -y build-essential pkgconf \
|
||||
curl ca-certificates \
|
||||
g++ llvm clang lld cmake \
|
||||
git python3 python3-pip xz-utils gperf
|
||||
|
||||
RUN pip3 install conan --break-system-packages
|
||||
|
||||
WORKDIR /
|
||||
|
||||
# Copy the build context.
|
||||
COPY . /tmp/local-src
|
||||
RUN if [ "$BUILD_LOCAL" = "1" ]; then \
|
||||
mv /tmp/local-src /code; \
|
||||
else \
|
||||
rm -rf /tmp/local-src; \
|
||||
git clone --recursive --branch ${BUILD_BRANCH} ${BUILD_REPO} code; \
|
||||
fi
|
||||
|
||||
WORKDIR /code
|
||||
|
||||
RUN conan profile detect --name=default --force
|
||||
|
||||
RUN conan install . --output-folder=${BUILD_FOLDER} --build=missing -s build_type=${BUILD_TYPE} -pr:h=/code/cmake/profiles/$BUILD_TARGET
|
||||
|
||||
RUN cmake -S /code -B ${BUILD_FOLDER} -DCMAKE_TOOLCHAIN_FILE=${BUILD_FOLDER}/conan_toolchain.cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DTESTNET=${BUILD_TESTNET}
|
||||
|
||||
RUN cmake --build ${BUILD_FOLDER} --config=${BUILD_TYPE} --parallel=${THREADS}
|
||||
|
||||
|
||||
FROM scratch AS build-cache
|
||||
COPY --from=builder ${CONAN_HOME} /
|
||||
|
||||
FROM scratch AS build-artifacts
|
||||
COPY --from=builder /code/build/release/src/lethean-* /
|
||||
|
||||
#FROM ubuntu:24.04 AS chain-service
|
||||
#
|
||||
#COPY --from=build-artifacts --chmod=+x / /bin
|
||||
#
|
||||
#RUN lethean-testnet-chain-node --help
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
0588HZ6Q
|
||||
=Esla
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
#
|
||||
# This file contains local path settings for your own personal environment.
|
||||
# To use in macosx add export entries to your ~/.bash_profile file
|
||||
#
|
||||
|
||||
set -x #echo on
|
||||
|
||||
export ZANO_QT_PATH="/Users/roky/Qt5.6.0/5.6"
|
||||
export ZANO_BOOST_ROOT="/Users/roky/boost_1_60_0"
|
||||
export ZANO_BOOST_LIBS_PATH="$ZANO_BOOST_ROOT/stage/lib"
|
||||
export ZANO_BUILD_DIR="build_mac_osx_64"
|
||||
export OPENSSL_ROOT_DIR="/usr/local/opt/openssl"
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
set +e
|
||||
curr_path=${BASH_SOURCE%/*}
|
||||
|
||||
function upload_build() # $1 - path to the file to be uploaded
|
||||
{
|
||||
if [ -z "$1" ]
|
||||
then
|
||||
echo "ERROR: upload_build is called with no or invalid parameters"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# check if the directory contains files
|
||||
#if [ -n "$(ls -A "$ZANO_BLD_UPL_DIR" 2>/dev/null)" ]
|
||||
#then
|
||||
# echo "ERROR: uploading folder contains files"
|
||||
# return 1
|
||||
#fi
|
||||
|
||||
cd "$ZANO_BLD_UPL_DIR" || return 2
|
||||
rm -rf ./* || return 3
|
||||
#popd || return 4
|
||||
|
||||
touch WAIT || return 5
|
||||
cp $1 . || return 6
|
||||
rm WAIT || return 7
|
||||
|
||||
counter=0
|
||||
while [ ! -f DONE ]
|
||||
do
|
||||
if [ "$counter" -ge 500 ]
|
||||
then
|
||||
echo "ERROR: uploading is taking longer than expected"
|
||||
touch STOP
|
||||
return 8
|
||||
fi
|
||||
sleep 2
|
||||
echo "waiting..."
|
||||
counter=$((counter + 1))
|
||||
done
|
||||
|
||||
rc=$(<DONE)
|
||||
|
||||
if [ "$rc" -eq 0 ]
|
||||
then
|
||||
echo "Upload successful."
|
||||
return 0
|
||||
fi
|
||||
|
||||
echo "Upload unsuccessfull, exit code = $rc."
|
||||
return $rc
|
||||
}
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
set -e
|
||||
|
||||
function rel_path() # $1 - path to a target dir/file, $2 - base dir
|
||||
{
|
||||
python3 -c "import os.path; print(os.path.relpath('$1', os.path.dirname('$2')))"
|
||||
}
|
||||
|
||||
function abs_path()
|
||||
{
|
||||
python3 -c "import os.path; print(os.path.abspath('$1'))"
|
||||
}
|
||||
|
||||
function fix_boost_libs_in_binary() # $1 - path to boost libs, $2 - binary to fix
|
||||
{
|
||||
if [ -z "$1" ] || [ -z "$2" ]
|
||||
then
|
||||
echo "fix_boost_libs_in_binary is called with no or invalid parameters"
|
||||
return 1
|
||||
fi
|
||||
install_name_tool -change @rpath/libboost_system.dylib $1/libboost_system.dylib $2
|
||||
install_name_tool -change @rpath/libboost_filesystem.dylib $1/libboost_filesystem.dylib $2
|
||||
install_name_tool -change @rpath/libboost_thread.dylib $1/libboost_thread.dylib $2
|
||||
install_name_tool -change @rpath/libboost_date_time.dylib $1/libboost_date_time.dylib $2
|
||||
install_name_tool -change @rpath/libboost_chrono.dylib $1/libboost_chrono.dylib $2
|
||||
install_name_tool -change @rpath/libboost_regex.dylib $1/libboost_regex.dylib $2
|
||||
install_name_tool -change @rpath/libboost_serialization.dylib $1/libboost_serialization.dylib $2
|
||||
install_name_tool -change @rpath/libboost_atomic.dylib $1/libboost_atomic.dylib $2
|
||||
install_name_tool -change @rpath/libboost_program_options.dylib $1/libboost_program_options.dylib $2
|
||||
install_name_tool -change @rpath/libboost_locale.dylib $1/libboost_locale.dylib $2
|
||||
install_name_tool -change @rpath/libboost_timer.dylib $1/libboost_timer.dylib $2
|
||||
install_name_tool -change @rpath/libboost_chrono.dylib $1/libboost_chrono.dylib $2
|
||||
return 0
|
||||
}
|
||||
|
||||
function fix_boost_libs_in_libs() # $1 - path to boost libs, $2 - path to libs folder
|
||||
{
|
||||
return 0 # temporary disabled -- 2023-11-20, sowle
|
||||
install_name_tool -change libboost_system.dylib $1/libboost_system.dylib $2/libboost_filesystem.dylib
|
||||
install_name_tool -change libboost_system.dylib $1/libboost_system.dylib $2/libboost_thread.dylib
|
||||
install_name_tool -change libboost_system.dylib $1/libboost_system.dylib $2/libboost_chrono.dylib
|
||||
install_name_tool -change libboost_system.dylib $1/libboost_system.dylib $2/libboost_timer.dylib
|
||||
install_name_tool -change libboost_chrono.dylib $1/libboost_chrono.dylib $2/libboost_timer.dylib
|
||||
install_name_tool -change libboost_system.dylib $1/libboost_system.dylib $2/libboost_locale.dylib
|
||||
}
|
||||
|
||||
# return immediately if this script was sourced from another script
|
||||
[ "$(basename $0)" != "$(basename $BASH_SOURCE)" ] && return
|
||||
|
||||
|
||||
if [[ $# -ne 2 ]]; then
|
||||
echo "error: wrong args"
|
||||
echo "usage: $0 <path_to_boost_lib_dir> <path_to_binary>"
|
||||
echo " -- fixes lib paths in binary and libs to relative-to-binary paths, using given lib dir as final lib folder"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
path_to_lib=$1
|
||||
path_to_binary=$2
|
||||
rel_bin_to_lib=$(rel_path $path_to_lib $path_to_binary)
|
||||
fix_boost_libs_in_binary @executable_path/$rel_bin_to_lib $path_to_binary
|
||||
fix_boost_libs_in_libs @executable_path/$rel_bin_to_lib $path_to_lib
|
||||
|
||||
exit 0
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
#/bin/sh
|
||||
|
||||
INSTALL_DIR=$1
|
||||
|
||||
function fixup() {
|
||||
echo $3": "$1" -> "$2
|
||||
install_name_tool -change $1 $2 $3
|
||||
}
|
||||
|
||||
fixup_lib() {
|
||||
FROM="\"/opt/local/lib/"$1"\""
|
||||
TO="\"@executable_path/lib/"$1"\""
|
||||
fixup $FROM $TO $2
|
||||
}
|
||||
|
||||
for BIN in $INSTALL_DIR/*; do
|
||||
if [ ! -d "$BIN" ]; then
|
||||
fixup_lib "libboost_system-mt.dylib" $BIN
|
||||
fixup_lib "libboost_filesystem-mt.dylib" $BIN
|
||||
fixup_lib "libboost_thread-mt.dylib" $BIN
|
||||
fixup_lib "libboost_date_time-mt.dylib" $BIN
|
||||
fixup_lib "libboost_chrono-mt.dylib" $BIN
|
||||
fixup_lib "libboost_regex-mt.dylib" $BIN
|
||||
fixup_lib "libboost_serialization-mt.dylib" $BIN
|
||||
fixup_lib "libboost_atomic-mt.dylib" $BIN
|
||||
fixup_lib "libboost_program_options-mt.dylib" $BIN
|
||||
fi
|
||||
done
|
||||
Loading…
Add table
Reference in a new issue