This commit is contained in:
Snider 2024-03-26 21:14:50 +00:00
parent 66e4263136
commit 5da1065df9
8 changed files with 20 additions and 285 deletions

View file

@ -210,35 +210,28 @@ jobs:
# restore-keys: ccache-${{ runner.os }}-build-testnet-cli
# - name: Eat the Choco
# run: |
# choco install openssl --version 1.1.1.1500 -y
# choco install ccache -y
# choco install zip -y
# - name: Cache Conan
# id: github-cache-conan
# uses: actions/cache@v4
# env:
# cache-name: cache-conan-modules
# with:
# save-always: true
# path: ${{ github.workspace }}\build\p
# key: host-${{ runner.os }}-target-windows-${{ hashFiles('contrib/cmake/conanfile.py') }}
# - name: install msvc toolset
# uses: ilammy/msvc-dev-cmd@v1
# - name: Install boost
# uses: MarkusJx/install-boost@v2.4.1
# id: install-boost
# with:
# # REQUIRED: Specify the required boost version
# # A list of supported versions can be found here:
# # https://github.com/MarkusJx/prebuilt-boost/blob/main/versions-manifest.json
# boost_version: 1.80.0
# platform_version: 2022
# toolset: msvc
# link: static
#
# - name: Set up Visual Studio shell
# uses: egor-tensin/vs-shell@v2
# with:
# arch: x64
# - name: build server
# env:
# QT_PREFIX_PATH: C:\ProgramData\chocolatey\lib\Qt5.11.2\5.11.2
# BOOST_ROOT: ${{ steps.install-boost.outputs.BOOST_ROOT }}
# LOCAL_BOOST_PATH: ${{ steps.install-boost.outputs.BOOST_ROOT }}
# OPENSSL_ROOT_DIR: "C:\\Program Files\\OpenSSL-Win64"
# CCACHE_TEMPDIR: ${{ github.workspace }}/ccache
# run: |
# refreshenv
# ${{env.CCACHE_SETTINGS}}
# .\utils\build\testnet_windows_cli.bat
# - uses: actions/upload-artifact@v3

View file

@ -148,13 +148,13 @@ target_link_libraries(connectivity_tool currency_core crypto common zlibstatic e
ENABLE_SHARED_PCH(connectivity_tool CONN_TOOL)
ENABLE_SHARED_PCH_EXECUTABLE(connectivity_tool)
add_executable(lethean-cli-wallet ${SIMPLEWALLET})
add_dependencies(lethean-cli-wallet version)
target_link_libraries(lethean-cli-wallet wallet rpc currency_core crypto common zlibstatic ethash ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES} OpenSSL::SSL OpenSSL::Crypto)
add_executable(lethean-wallet ${SIMPLEWALLET})
add_dependencies(lethean-wallet version)
target_link_libraries(lethean-wallet wallet rpc currency_core crypto common zlibstatic ethash ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES} OpenSSL::SSL OpenSSL::Crypto)
ENABLE_SHARED_PCH(lethean-cli-wallet SIMPLEWALLET)
ENABLE_SHARED_PCH_EXECUTABLE(lethean-cli-wallet)
ENABLE_SHARED_PCH(lethean-wallet SIMPLEWALLET)
ENABLE_SHARED_PCH_EXECUTABLE(lethean-wallet)
set_property(TARGET common crypto currency_core rpc stratum wallet PROPERTY FOLDER "libs")
set_property(TARGET daemon lethean-cli-wallet connectivity_tool PROPERTY FOLDER "prog")
set_property(TARGET daemon lethean-wallet connectivity_tool PROPERTY FOLDER "prog")
set_property(TARGET daemon PROPERTY OUTPUT_NAME "letheand")

View file

@ -59,7 +59,7 @@ if [ $? -ne 0 ]; then
exit 1
fi
make -j"$desired_jobs" daemon lethean-cli-wallet connectivity_tool
make -j"$desired_jobs" daemon lethean-wallet connectivity_tool
if [ $? -ne 0 ]; then
echo "Failed to make!"
exit 1

View file

@ -1,48 +0,0 @@
#!/bin/bash -x
ARCHIVE_NAME_PREFIX=lethean-gui-bundle-linux-testnet-$(arch)
if [ $(conan --version &> /dev/null; echo $?) -eq 0 ]; then
echo "Conan is installed."
elif [ $(pip list | grep -Fq "conan"; echo $?) -eq 0 ]; then
echo "Conan is installed (verified via pip)."
else
echo "Conan does not appear to be installed. Installing..."
pip install conan # Install Conan
fi
# install conan user settings override
conan config install contrib/cmake/settings_user.yml
prj_root=$(pwd)
echo "---------------- BUILDING PROJECT ----------------"
echo "--------------------------------------------------"
echo "Building...."
rm -rf build; mkdir -p build/release; cd build/release;
cmake -D TESTNET=TRUE -D STATIC=true -D ARCH=x86-64 -D BUILD_GUI=TRUE -D CMAKE_BUILD_TYPE=Release -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=contrib/cmake/conan_provider.cmake ../..
if [ $? -ne 0 ]; then
echo "Failed to run cmake"
exit 1
fi
make -j2 Lethean
if [ $? -ne 0 ]; then
echo "Failed to make!"
exit 1
fi
package_filename=${ARCHIVE_NAME_PREFIX}.tar.bz2
rm -f ./$package_filename
tar -cjvf ../../$package_filename src/lethean-gui-server
if [ $? -ne 0 ]; then
echo "Failed to pack"
exit 1
fi
echo "Build success"
exit 0

View file

@ -40,7 +40,7 @@ if [ $? -ne 0 ]; then
exit 1
fi
make -j2 connectivity_tool daemon simplewallet
make -j2 connectivity_tool daemon lethean-wallet
if [ $? -ne 0 ]; then
echo "Failed to make binaries!"
exit 1

View file

@ -1,78 +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}"
: "${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}"
if [ $(conan --version &> /dev/null; echo $?) -eq 0 ]; then
echo "Conan is installed."
elif [ $(pip list | grep -Fq "conan"; echo $?) -eq 0 ]; then
echo "Conan is installed (verified via pip)."
else
echo "Conan does not appear to be installed. Installing..."
pip install conan # Install Conan
fi
# install conan user settings override
conan config install contrib/cmake/settings_user.yml
ARCHIVE_NAME_PREFIX=lethean-gui-bundle-macos-testnet-$(arch)
rm -rf build; mkdir -p build/release; cd build/release;
cmake -D TESTNET=TRUE -D OPENSSL_ROOT_DIR=$OPENSSL_ROOT_DIR -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=contrib/cmake/conan_provider.cmake -D CMAKE_OSX_SYSROOT=$CMAKE_OSX_SYSROOT -D BUILD_GUI=TRUE -D CMAKE_PREFIX_PATH="$ZANO_QT_PATH" -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 -j2 Lethean
if [ $? -ne 0 ]; then
echo "Failed to make Lethean"
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 lethean-gui-server.app/Contents/Frameworks/boost_libs
cp -R "$ZANO_BOOST_LIBS_PATH/" lethean-gui-server.app/Contents/Frameworks/boost_libs/
if [ $? -ne 0 ]; then
echo "Failed to cp workaround to MacOS"
exit 1
fi
# fix boost libs paths in main executable and libs to workaround El Capitan's SIP restrictions
source $(pwd)/../../../utils/build/extras/macos/fix_boost_libs_path.sh
fix_boost_libs_in_binary @executable_path/../Frameworks/boost_libs lethean-gui-server.app/Contents/MacOS/lethean-gui-server
fix_boost_libs_in_libs @executable_path/../Frameworks/boost_libs lethean-gui-server.app/Contents/Frameworks/boost_libs
"$ZANO_QT_PATH/bin/macdeployqt" lethean-gui-server.app
if [ $? -ne 0 ]; then
echo "Failed to macdeployqt lethean-gui-server.app"
exit 1
fi
echo "############### Prepearing archive... ################"
package_filename=${ARCHIVE_NAME_PREFIX}.tar.bz2
rm -f ./$package_filename
cd lethean-gui-server.app
tar -cjvf ../../../../$package_filename *
echo "Build success"

View file

@ -57,7 +57,7 @@ IF %ERRORLEVEL% NEQ 0 (
goto error
)
msbuild src/simplewallet.vcxproj /p:SubSystem="CONSOLE,5.02" /p:Configuration=Release /t:Build
msbuild src/lethean-wallet.vcxproj /p:SubSystem="CONSOLE,5.02" /p:Configuration=Release /t:Build
IF %ERRORLEVEL% NEQ 0 (
goto error
)
@ -85,7 +85,7 @@ cd src\release
mkdir bunch
copy /Y letheand.exe bunch
copy /Y simplewallet.exe bunch
copy /Y lethean-wallet.exe bunch
copy /Y *.pdb bunch
cd bunch

View file

@ -1,132 +0,0 @@
call utils\build\extras\win\configure_local_paths.cmd
;; MSVC version-specific paths
SET LOCAL_BOOST_LIB_PATH=%LOCAL_BOOST_PATH%\lib64-msvc-14.2
SET QT_MSVC_PATH=%QT_PREFIX_PATH%
SET ACHIVE_NAME_PREFIX=lethean-gui-bundle-win-testnet-x64
SET MY_PATH=%~dp0
SET SOURCES_PATH=%MY_PATH:~0,-13%
SET TESTNET_DEF=-D TESTNET=TRUE
SET TESTNET_LABEL=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%
set HUNTER_ROOT=%HOMEPATH%\.hunter
@echo "---------------- BUILDING APPLICATIONS ------------------------"
@echo "---------------------------------------------------------------"
rmdir build /s /q
mkdir build
cd build
cmake %TESTNET_DEF% -D OPENSSL_ROOT_DIR="%OPENSSL_ROOT_DIR%" -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=contrib/cmake/conan_provider.cmake -DCMAKE_CONFIGURATION_TYPES:STRING="Release" -D CMAKE_PREFIX_PATH="%QT_MSVC_PATH%" -D BUILD_GUI=TRUE -D STATIC=FALSE -G "Visual Studio 17 2022" -T host=x64 ..
IF %ERRORLEVEL% NEQ 0 (
goto error
)
if not defined DevEnvDir (
call "C:\Program Files\Microsoft Visual Studio\2022\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/Lethean.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 build_zip_filename=%ACHIVE_NAME_PREFIX%.zip
set build_zip_path=%SOURCES_PATH%\%build_zip_filename%
del /F /Q %build_zip_path%
cd src\release
@echo on
mkdir bunch
copy /Y lethean-gui-server.exe bunch
copy /Y *.pdb bunch
copy /Y "%OPENSSL_ROOT_DIR%\bin\libcrypto-1_1-x64.dll" bunch
copy /Y "%OPENSSL_ROOT_DIR%\bin\libssl-1_1-x64.dll" bunch
windeployqt.exe bunch\lethean-gui-server.exe
cd bunch
zip -r %build_zip_path% *
IF %ERRORLEVEL% NEQ 0 (
goto error
)
cd %SOURCES_PATH%\build
IF %ERRORLEVEL% NEQ 0 (
goto error
)
@echo "---------------------------------------------------------------"
@echo "---------------------------------------------------------------"
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