EOSIO / eosio.contracts

Smart contracts that provide some of the basic functions of the EOSIO blockchain
https://eosio.github.io/eosio.contracts/latest
MIT License
325 stars 574 forks source link

Change build.sh and CMakeLists.txt to support pinned test on CentOS 8/7, Ubuntu 16/18/20, Amazon Linux 2, MacOS 10.15 #511

Closed softprofe closed 4 years ago

softprofe commented 4 years ago

Change Description

Start 511 description ...... In this pull, I solve the link errors which happened on pinned build, per my test, It works on CentOS8, CentOS7, Ubuntu 16, Ubuntu 18, Ubuntu20, Amazon Linux 2, MacOs 10.15 . The eosio.contracts/tests has problem of tool chain mismatch with eos so the error happen. The way to solve it is to set a falg in build.sh to let CMakeLists.txt know currently is building pinned tests, so include the pinned tool chain file.

This pull won't change anything if not pinned build.

Currently Don't support install directory of eos like $HOME/eosio/2.1, only support build directory something like $HOME/work/eos/build, the reason is pinned_toolchain.cmake can't be found under $HOME/eosio/2.1; it doesn't sound perfect but at least this pull can build tests without a lot of link errors.

Please note that per my test this pull solve but only solve link error caused by tool chain mismatch with eos, if other problem such as some package can't found by cmake, some CMAKE flag is missing, that is not related to this pull. if some error happen before run import pinned_toolchain.cmake or after that but no any relation with it, just solve them other where, this pull only solve one problem and I test it on upper platform it works.

End 511 description...

Change Type

Select ONE

Consensus Changes

API Changes

Documentation Additions

spoonincode commented 4 years ago

Why limit such a change to centos? Why not support pinned compilers no matter the platform?

softprofe commented 4 years ago

Why limit such a change to centos? Why not support pinned compilers no matter the platform?

Other platform not yet tested, I'm sure it work or not. As my EPE is supporting Centos 8, and Jingjun said his passed build using my way, So, Centos 8 and 7 can be taken as tested.

spoonincode commented 4 years ago

Any idea what the unit test failures are about? Due to this change or were the failures preexisting?

jeffreyssmith2nd commented 4 years ago

The build failures are due to abi generation. It seems a regression was introduced at some point in develop. This will need to be address in CDT.

softprofe commented 4 years ago

The build failures are due to abi generation. It seems a regression was introduced at some point in develop. This will need to be address in CDT.

Thank Jeff so much for figure out the build problem.