1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-03-09 15:40:10 +00:00

Create ccpp-linux.yaml

Taken from https://github.com/akme/ton/blob/master/.github/workflows/ccpp-linux.yml

Fixing error LNK2019: unresolved external symbol _GetProcessMemoryInfo@12 when building windows desktop client

Fixes compilation error of lite-client on windows

Fixes compilation error:
error C2664: 'std::pair<td::int64,td::int64> std::make_pair<td::int64,td::int64>(_Ty1 &&,_Ty2 &&) noexcept (<expr>)': cannot convert argument 1 from 'const td::uint64' to '_Ty1 &&'

make_pair() has been changed in VS2012 to support a new C++11 feature called move semantics and I suspect that explicitly specifying the types for make_pair() is getting in the way.

The fix should be safe for linux distro as well.

Adding Github action - Win64 ton compile (#14)

* Add github action win64 compile
* manager.cpp - Strange though, but due to this kind of type usage win64 compilation fails. Let's make it more generic.
This commit is contained in:
AleksejMelman 2021-02-09 11:15:47 +01:00 committed by main
parent f60694e67f
commit b22611a123
5 changed files with 127 additions and 2 deletions

46
.github/workflows/ccpp-linux.yml vendored Normal file
View file

@ -0,0 +1,46 @@
name: C/C++ CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v2
with:
depth: 1
submodules: 'recursive'
- name: Run Cppcheck
uses: Bedzior/run-cppcheck@master
with:
enabled checks: all
enable inconclusive: true
generate report: true
- name: Upload report
uses: actions/upload-artifact@v1
with:
name: report
path: output
- name: mkdir
run: |
mkdir build
- name: cmake
run: |
cd build
cmake ..
- name: make -j4
run: |
cd build
make -j4
- name: find & copy binaries
run: |
mkdir artifacts
cp --parents build/crypto/fift build/crypto/adjust-block build/crypto/dump-block build/crypto/tlbc build/crypto/func build/crypto/create-state build/validator-engine-console/validator-engine-console build/tonlib/tonlib-cli build/tonlib/libtonlibjson.so.0.5 build/tddb/io-bench build/http/http-proxy build/tdnet/udp_ping_pong build/tdnet/tcp_ping_pong build/rldp-http-proxy/rldp-http-proxy build/dht-server/dht-server build/lite-client/lite-client build/validator-engine/validator-engine build/utils/generate-random-id build/utils/pack-viewer build/utils/json2tlo build/adnl/adnl-proxy build/adnl/adnl-pong artifacts
- name: Upload artifacts
uses: actions/upload-artifact@master
with:
name: ton-binaries
path: artifacts

77
.github/workflows/ccpp-win64.yml vendored Normal file
View file

@ -0,0 +1,77 @@
name: C/C++ CI Win64 Compile
on: [push]
defaults:
run:
shell: cmd
jobs:
build:
runs-on: windows-latest
steps:
- name: Get Current OS version
run: |
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
- name: Check out current repository
uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Check out zlib repository
uses: actions/checkout@v2
with:
repository: desktop-app/zlib
path: zlib
- name: Setup msbuild.exe
uses: microsoft/setup-msbuild@v1.0.2
- name: Compile zlib Win64
run: |
cd zlib\contrib\vstudio\vc14
msbuild zlibstat.vcxproj /p:Configuration=Debug /p:platform=x64
msbuild zlibstat.vcxproj /p:Configuration=ReleaseWithoutAsm /p:platform=x64
- name: Install OpenSSL Win64
run: |
curl -o openssl.msi https://slproweb.com/download/Win64OpenSSL-1_1_1i.msi
msiexec /i openssl.msi /quiet /qn /norestart
- name: Build ton
run: |
set root=%cd%
echo %root%
mkdir build
cd build
cmake -DZLIB_FOUND=1 -DZLIB_INCLUDE_DIR=%root%\zlib -DZLIB_LIBRARY=%root%\zlib\contrib\vstudio\vc14\x64\ZlibStatReleaseWithoutAsm\zlibstat.lib -DCMAKE_CXX_FLAGS="/DTD_WINDOWS=1 /EHsc /bigobj /W0" -DCMAKE_BUILD_TYPE=Release ..
- name: Compile ton
run: |
cd build
cmake --build .
continue-on-error: true
- name: Show executables
run: |
cd build
dir *.exe /a-D /S /B
- name: Check if validator-engine.exe exists
run: |
set root=%cd%
copy %root%\build\validator-engine\Debug\validator-engine.exe test
- name: Find & copy binaries
run: |
mkdir artifacts
for /f %%a in ('dir *.exe /b /a /s') do copy /Y %%a artifacts
- name: Upload artifacts
uses: actions/upload-artifact@master
with:
name: ton-win64-binaries
path: artifacts

View file

@ -3461,7 +3461,7 @@ bool TestNode::ValidatorLoadInfo::store_record(const td::Bits256& key, const blo
if (it == vset_map.end()) {
return false;
}
created.at(it->second) = std::make_pair<td::int64, td::int64>(mc_cnt.total, shard_cnt.total);
created.at(it->second) = std::make_pair(mc_cnt.total, shard_cnt.total);
return true;
}

View file

@ -58,6 +58,8 @@
#define PSAPI_VERSION 1
#endif
#include <psapi.h>
#pragma comment( lib, "psapi.lib" )
#endif

View file

@ -1692,7 +1692,7 @@ void ValidatorManagerImpl::update_shards() {
auto exp_vec = last_masterchain_state_->get_shards();
auto config = last_masterchain_state_->get_consensus_config();
validatorsession::ValidatorSessionOptions opts{config};
uint threshold = 9407194;
td::uint32 threshold = 9407194;
bool force_group_id_upgrade = last_masterchain_seqno_ == threshold;
auto legacy_opts_hash = opts.get_hash();
if(last_masterchain_seqno_ >= threshold) { //TODO move to get_consensus_config()