-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP: Add script that builds and test Boost library with our toolchain #199
base: main
Are you sure you want to change the base?
Conversation
@@ -0,0 +1,71 @@ | |||
#!/bin/bash |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please split the script to a separate ones for the build and test phase so it can be used separately both locally and as a separate job steps on GitHub Actions.
|
||
echo "using gcc : : /home/vejby/cross-aarch64-w64-mingw32-msvcrt/bin/aarch64-w64-mingw32-g++ ;" > "user-config.jam" | ||
|
||
echo "Running Boost bootstrap.." |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please use https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions#grouping-log-lines even when this script cannot be used in GitHub Actions for now for consistency with the rest of the scripts
# a library that defines a set of compiler architecture, operating system, library, and other | ||
# version numbers it can gather from predefined macros | ||
# -> needs to have specified target for MinGW Win ARM 64 as well | ||
time ./b2 --user-config=./user-config.jam --prefix=./build --debug-configuration target-os=windows address-model=64 variant=debug debug-symbols=on install --without-context --without-cobalt --without-coroutine --without-fiber --without-charconv --without-json --without-predef --without-program_options > boost-build.log |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When the script will be split to the build an test phase, please, remote the time command. Locally it can be specified by the user when executing the script, on the GitHub Actions the time of a job is measured anyway.
time ./b2 --user-config=./user-config.jam --prefix=./build --debug-configuration target-os=windows address-model=64 variant=debug debug-symbols=on install --without-context --without-cobalt --without-coroutine --without-fiber --without-charconv --without-json --without-predef --without-program_options > boost-build.log | ||
|
||
echo "Running Boost test.." | ||
cd status |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd prefer to use pusd
/popd
.
# a library that defines a set of compiler architecture, operating system, library, and other | ||
# version numbers it can gather from predefined macros | ||
# -> needs to have specified target for MinGW Win ARM 64 as well | ||
time ./b2 --user-config=./user-config.jam --prefix=./build --debug-configuration target-os=windows address-model=64 variant=debug debug-symbols=on install --without-context --without-cobalt --without-coroutine --without-fiber --without-charconv --without-json --without-predef --without-program_options > boost-build.log |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please, wrap the long lines . I'd suggest to target 100 columns.
@@ -0,0 +1,71 @@ | |||
#!/bin/bash | |||
|
|||
BOOST_BUILD_DIR=$1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Prefer to use sourcing config.sh
so the invocation of the script requires no explicit parameters specification because the reasonable defaults will be defined there which will also ensure the placement of the source, build, test and installation artifacts to be consistent with the other packages.
time cp -r $BOOST_TEMPLATE_DIR/* $BOOST_BUILD_DIR | ||
else | ||
echo "Cloning Boost GitHub repository.." | ||
time git clone --recursive https://github.com/boostorg/boost.git $BOOST_BUILD_DIR |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Currently, we have a specific script for toolchain sources cloning (update-sources.sh
) but nothing like that for individual tested packages and their sources must be either clonned manually or in the GitHub Actions workflow. This would deserve some refactoring but for now, moving the clonning of Boost to a separate script would be enough.
They contain fix for fast_float _umul128 bug.
86d33f4
to
17f50e1
Compare
17f50e1
to
30ecb18
Compare
Adds a script that builds and tests the Boost library with our toolchain. It's not a part of GitHub actions as we currently don't have an ARM Windows runner with WSL.
Build log from building Boost library on Linux x64 for Windows x64: x64_boost_build.log
Test log from quick testsuit of Boost library built on Linux x64 for Windows x64: x64_boost-test.log