Skip to content

Add support for modular build structure. #64

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

Open
wants to merge 30 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
5709914
Make the library modular usable.
grafikrobot Mar 11, 2024
aefcd77
Fix to avoid using gcc/clang option in other compilers.
grafikrobot Mar 18, 2024
fab75eb
Switch to library requirements instead of source. As source puts extr…
grafikrobot Mar 30, 2024
354a017
Change global boost refs to local refs.
grafikrobot Apr 13, 2024
75c7ea8
Add requires-b2 check to top-level build file.
grafikrobot May 5, 2024
fc3a435
Add missing test deps.
grafikrobot May 14, 2024
4722332
Fix library name in lib declaration.
grafikrobot Jun 11, 2024
b8322d8
Bump B2 require to 5.2
grafikrobot Jun 14, 2024
53ef07f
Update copyright dates.
grafikrobot Jul 21, 2024
e7af08a
Move inter-lib dependencies to a project variable and into the build …
grafikrobot Jul 24, 2024
d4b1bcc
Adjust self dependencies as inter-lib deps no longer apply globally.
grafikrobot Jul 27, 2024
84de91b
Kludge node20 into containers.
grafikrobot Apr 5, 2025
a5ee8b3
Checkout needs to happen after node20 is set up.
grafikrobot Apr 5, 2025
0ca11f1
Rewrite GHA CI to use alandefreitas/cpp-actions utilities.
grafikrobot Apr 5, 2025
ee74565
Fix GHA CI matrix evaluation value.
grafikrobot Apr 5, 2025
3827439
Need to copy tested lib to boost-root.
grafikrobot Apr 5, 2025
9230513
Tweak copy-library step to work on Windows bash.
grafikrobot Apr 5, 2025
78b8f1b
Move library name to matrix variable instead of env var.
grafikrobot Apr 5, 2025
70797fd
Add test dir to scan to fill missing deps.
grafikrobot Apr 5, 2025
2a3eaac
Clear out library dir to be able to copy in workspace tree.
grafikrobot Apr 5, 2025
764ba7c
Avoid the boost tree cache for testing the scanning.
grafikrobot Apr 5, 2025
0ca43ac
Remove CI debug listing.
grafikrobot Apr 5, 2025
f663e25
Tweak factors to reduce over-builds.
grafikrobot Apr 5, 2025
ad679ee
Try and coax more msvc testing.
grafikrobot Apr 5, 2025
c094c13
Move project global include to target local include.
grafikrobot Apr 7, 2025
bf6da00
Only msvc gets minor version tests.
grafikrobot Apr 10, 2025
c50c5f7
Revert GHA CI changes.
grafikrobot Jun 5, 2025
6ca9244
Less impactful update of CI.
grafikrobot Jun 6, 2025
ead9346
Bump gcc-11 container and be explicit about the exe to try and make i…
grafikrobot Jun 6, 2025
281307a
Be explicit about compiler gcc commands.
grafikrobot Jun 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 65 additions & 33 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,48 +17,63 @@ jobs:
fail-fast: false
matrix:
include:
- toolset: gcc-4.8
- toolset: gcc
compiler: g++-4.8
cxxstd: "11"
os: ubuntu-latest
container: ubuntu:18.04
install: g++-4.8
- toolset: gcc-5
- toolset: gcc
compiler: g++-5
cxxstd: "11,14,1z"
os: ubuntu-latest
container: ubuntu:18.04
install: g++-5
- toolset: gcc-6
- toolset: gcc
compiler: g++-6
cxxstd: "11,14,1z"
os: ubuntu-latest
container: ubuntu:18.04
install: g++-6
- toolset: gcc-7
- toolset: gcc
compiler: g++-7
cxxstd: "11,14,17"
os: ubuntu-20.04
os: ubuntu-latest
container: ubuntu:20.04
install: g++-7
- toolset: gcc-8
- toolset: gcc
compiler: g++-8
cxxstd: "11,14,17,2a"
os: ubuntu-20.04
os: ubuntu-latest
container: ubuntu:20.04
install: g++-8
- toolset: gcc-9
- toolset: gcc
compiler: g++-9
cxxstd: "11,14,17,2a"
os: ubuntu-20.04
- toolset: gcc-10
os: ubuntu-latest
container: ubuntu:20.04
- toolset: gcc
compiler: g++-10
cxxstd: "11,14,17,2a"
os: ubuntu-20.04
os: ubuntu-latest
container: ubuntu:20.04
install: g++-10
- toolset: gcc-11
- toolset: gcc
compiler: g++-11
cxxstd: "11,14,17,2a"
os: ubuntu-20.04
os: ubuntu-latest
container: ubuntu:24.04
install: g++-11
- toolset: gcc-12
- toolset: gcc
compiler: g++-12
cxxstd: "11,14,17,20,2b"
os: ubuntu-22.04
install: g++-12
- toolset: gcc-13
- toolset: gcc
compiler: g++-13
cxxstd: "11,14,17,20,2b"
os: ubuntu-latest
container: ubuntu:23.04
container: ubuntu:24.04
install: g++-13
- toolset: clang
compiler: clang++-3.9
Expand All @@ -81,37 +96,44 @@ jobs:
- toolset: clang
compiler: clang++-6.0
cxxstd: "11,14,17"
os: ubuntu-20.04
os: ubuntu-latest
container: ubuntu:20.04
install: clang-6.0
- toolset: clang
compiler: clang++-7
cxxstd: "11,14,17"
os: ubuntu-20.04
os: ubuntu-latest
container: ubuntu:20.04
install: clang-7
- toolset: clang
compiler: clang++-8
cxxstd: "11,14,17"
os: ubuntu-20.04
os: ubuntu-latest
container: ubuntu:20.04
install: clang-8
- toolset: clang
compiler: clang++-9
cxxstd: "11,14,17"
os: ubuntu-20.04
os: ubuntu-latest
container: ubuntu:20.04
install: clang-9
- toolset: clang
compiler: clang++-10
cxxstd: "11,14,17,2a"
os: ubuntu-20.04
os: ubuntu-latest
container: ubuntu:20.04
install: clang-10
- toolset: clang
compiler: clang++-11
cxxstd: "11,14,17,2a"
os: ubuntu-20.04
os: ubuntu-latest
container: ubuntu:20.04
install: clang-11
- toolset: clang
compiler: clang++-12
cxxstd: "11,14,17,2a"
os: ubuntu-20.04
os: ubuntu-latest
container: ubuntu:20.04
install: clang-12
- toolset: clang
compiler: clang++-13
Expand All @@ -131,39 +153,49 @@ jobs:
- toolset: clang
compiler: clang++-16
cxxstd: "11,14,17,20,2b"
os: ubuntu-latest
container: ubuntu:23.04
os: ubuntu-24.04
install: clang-16
- toolset: clang
cxxstd: "11,14,17,2a"
os: macos-11
cxxstd: "11,14,17,20,2b"
os: macos-13
- toolset: clang
cxxstd: "11,14,17,20,2b"
os: macos-12
os: macos-14
- toolset: clang
cxxstd: "11,14,17,20,2b"
os: macos-13
os: macos-15

runs-on: ${{matrix.os}}
container: ${{matrix.container}}
container:
image: ${{matrix.container}}
volumes:
- /node20217:/node20217:rw,rshared
- ${{ startsWith(matrix.container, 'ubuntu:1') && '/node20217:/__e/node20:ro,rshared' || ' ' }}

defaults:
run:
shell: bash

steps:
- uses: actions/checkout@v3

- name: Setup container environment
if: matrix.container
run: |
apt-get update
apt-get -y install sudo python3 git g++
apt-get -y install sudo python3 git g++ curl xz-utils

- name: Install nodejs20glibc2.17
if: ${{ startsWith( matrix.container, 'ubuntu:1' ) }}
run: |
curl -LO https://archives.boost.io/misc/node/node-v20.9.0-linux-x64-glibc-217.tar.xz
tar -xf node-v20.9.0-linux-x64-glibc-217.tar.xz --strip-components 1 -C /node20217
ldd /__e/node20/bin/node

- name: Install packages
if: matrix.install
run: sudo apt-get -y install ${{matrix.install}}

- uses: actions/checkout@v3

- name: Setup Boost
run: |
echo GITHUB_REPOSITORY: $GITHUB_REPOSITORY
Expand Down
41 changes: 41 additions & 0 deletions build.jam
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Copyright René Ferdinand Rivera Morell 2023-2024
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)

require-b2 5.2 ;

constant boost_dependencies :
/boost/array//boost_array
/boost/assert//boost_assert
/boost/circular_buffer//boost_circular_buffer
/boost/concept_check//boost_concept_check
/boost/config//boost_config
/boost/core//boost_core
/boost/fusion//boost_fusion
/boost/iterator//boost_iterator
/boost/mpl//boost_mpl
/boost/numeric_conversion//boost_numeric_conversion
/boost/ublas//boost_ublas
/boost/parameter//boost_parameter
/boost/preprocessor//boost_preprocessor
/boost/range//boost_range
/boost/serialization//boost_serialization
/boost/static_assert//boost_static_assert
/boost/throw_exception//boost_throw_exception
/boost/tuple//boost_tuple
/boost/type_traits//boost_type_traits
/boost/typeof//boost_typeof ;

project /boost/accumulators
;

explicit
[ alias boost_accumulators : : :
: <include>include <library>$(boost_dependencies) ]
[ alias all : boost_accumulators example test ]
;

call-if : boost-library accumulators
;

28 changes: 14 additions & 14 deletions doc/Jamfile.v2
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ else
# features shows the dependency relationships between them.
doxygen tagfile
:
../../../boost/accumulators/framework/depends_on.hpp
../../../boost/accumulators/framework/extractor.hpp
../include/boost/accumulators/framework/depends_on.hpp
../include/boost/accumulators/framework/extractor.hpp
:
<doxygen:param>MACRO_EXPANSION=YES
<doxygen:param>EXPAND_ONLY_PREDEF=YES
Expand All @@ -68,10 +68,10 @@ doxygen tagfile

doxygen accdoc
:
[ glob ../../../boost/accumulators/accumulators*.hpp ]
[ glob ../../../boost/accumulators/framework/*.hpp ]
[ glob ../../../boost/accumulators/framework/parameters/*.hpp ]
[ glob ../../../boost/accumulators/framework/accumulators/*.hpp ]
[ glob ../include/boost/accumulators/accumulators*.hpp ]
[ glob ../include/boost/accumulators/framework/*.hpp ]
[ glob ../include/boost/accumulators/framework/parameters/*.hpp ]
[ glob ../include/boost/accumulators/framework/accumulators/*.hpp ]
:
<doxygen:param>EXTRACT_ALL=YES
<doxygen:param>"PREDEFINED=\"BOOST_ACCUMULATORS_DOXYGEN_INVOKED=1\" \\
Expand All @@ -97,9 +97,9 @@ doxygen accdoc
# generate .png images for the LaTeX formulas embedded in the doc comments.
doxygen statsdoc.html
:
[ glob ../../../boost/accumulators/statistics*.hpp ]
[ glob ../../../boost/accumulators/statistics/*.hpp ]
[ glob ../../../boost/accumulators/statistics/variates/*.hpp ]
[ glob ../include/boost/accumulators/statistics*.hpp ]
[ glob ../include/boost/accumulators/statistics/*.hpp ]
[ glob ../include/boost/accumulators/statistics/variates/*.hpp ]
:
<dependency>latex.check
<dependency>dvips.check
Expand Down Expand Up @@ -141,9 +141,9 @@ make statsdoclatex.tag

doxygen statsdoc
:
[ glob ../../../boost/accumulators/statistics*.hpp ]
[ glob ../../../boost/accumulators/statistics/*.hpp ]
[ glob ../../../boost/accumulators/statistics/variates/*.hpp ]
[ glob ../include/boost/accumulators/statistics*.hpp ]
[ glob ../include/boost/accumulators/statistics/*.hpp ]
[ glob ../include/boost/accumulators/statistics/variates/*.hpp ]
:
<doxygen:param>EXTRACT_ALL=YES
<doxygen:param>"PREDEFINED=\"BOOST_ACCUMULATORS_DOXYGEN_INVOKED=1\" \\
Expand Down Expand Up @@ -171,8 +171,8 @@ doxygen statsdoc

doxygen opdoc
:
[ glob ../../../boost/accumulators/numeric/functional.hpp ]
[ glob ../../../boost/accumulators/numeric/functional/*.hpp ]
[ glob ../include/boost/accumulators/numeric/functional.hpp ]
[ glob ../include/boost/accumulators/numeric/functional/*.hpp ]
:
<doxygen:param>EXTRACT_ALL=YES
<doxygen:param>"PREDEFINED=\"BOOST_NUMERIC_FUNCTIONAL_DOXYGEN_INVOKED=1\" \\
Expand Down
8 changes: 4 additions & 4 deletions example/Jamfile.v2
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ exe example
:
main.cpp
:
<include>../../..
<include>$(BOOST_ROOT)
<library>/boost/serialization
<cxxflags>"-Wno-deprecated-declarations"
<library>/boost/accumulators//boost_accumulators
<library>/boost/foreach//boost_foreach
<toolset>gcc:<cxxflags>"-Wno-deprecated-declarations"
<toolset>clang:<cxxflags>"-Wno-deprecated-declarations"
;
8 changes: 4 additions & 4 deletions test/Jamfile.v2
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,16 @@ project
: default-build
<link>static
: requirements
<library>/boost/test//boost_unit_test_framework
<include>../../..
<library>/boost/accumulators//boost_accumulators
<library>/boost/test//boost_unit_test_framework/<link>static
<library>/boost/random//boost_random
<toolset>msvc:<define>_SCL_SECURE_NO_DEPRECATE
# MSVC's iterator debugging causes some tests to run forever.
<toolset>msvc:<iterator_debugging>off
<toolset>intel-win:<iterator_debugging>off
<toolset>gcc:<cxxflags>"-Wno-deprecated-declarations"
<toolset>clang:<cxxflags>"-Wno-deprecated-declarations"
<toolset>intel-linux:<cxxflags>"-Wno-deprecated-declarations"
<library>/boost/serialization
;

alias accumulators_regular_tests
Expand Down Expand Up @@ -57,7 +57,7 @@ alias accumulators_regular_tests
[ run skewness.cpp ]
[ run sum.cpp ]
[ run sum_kahan.cpp ]
[ run tail.cpp ]
[ run tail.cpp : : : <library>/boost/foreach//boost_foreach ]
[ run tail_mean.cpp ]
[ run tail_quantile.cpp ]
[ run variance.cpp ]
Expand Down
Loading