From 1e61bc8db4de9010e899038ef7bd7ccf302ea3dc Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Mon, 11 Mar 2024 08:38:17 -0500 Subject: [PATCH 1/9] Make the library modular usable. --- build.jam | 46 ++++++++++++++++++++++++++++++++++++++++++++++ build/Jamfile.v2 | 14 ++++++++------ example/Jamfile.v2 | 7 ++++--- test/Jamfile.v2 | 11 ++++++----- 4 files changed, 64 insertions(+), 14 deletions(-) create mode 100644 build.jam diff --git a/build.jam b/build.jam new file mode 100644 index 00000000..46937d5f --- /dev/null +++ b/build.jam @@ -0,0 +1,46 @@ +# Copyright René Ferdinand Rivera Morell 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) + +import project ; + +project /boost/graph_parallel + : common-requirements + /boost/algorithm//boost_algorithm + /boost/assert//boost_assert + /boost/concept_check//boost_concept_check + /boost/config//boost_config + /boost/container_hash//boost_container_hash + /boost/core//boost_core + /boost/detail//boost_detail + /boost/dynamic_bitset//boost_dynamic_bitset + /boost/filesystem//boost_filesystem + /boost/foreach//boost_foreach + /boost/function//boost_function + /boost/graph//boost_graph + /boost/iterator//boost_iterator + /boost/lexical_cast//boost_lexical_cast + /boost/mpi//boost_mpi + /boost/mpl//boost_mpl + /boost/optional//boost_optional + /boost/property_map//boost_property_map + /boost/property_map_parallel//boost_property_map_parallel + /boost/random//boost_random + /boost/serialization//boost_serialization + /boost/smart_ptr//boost_smart_ptr + /boost/static_assert//boost_static_assert + /boost/tuple//boost_tuple + /boost/type_traits//boost_type_traits + /boost/variant//boost_variant + include + ; + +explicit + [ alias boost_graph_parallel : build//boost_graph_parallel ] + [ alias all : boost_graph_parallel example test ] + ; + +call-if : boost-library graph_parallel + : install boost_graph_parallel + ; diff --git a/build/Jamfile.v2 b/build/Jamfile.v2 index 5256fa78..5e491847 100644 --- a/build/Jamfile.v2 +++ b/build/Jamfile.v2 @@ -6,7 +6,7 @@ import mpi ; -project boost/graph_parallel +project : requirements ../src : source-location ../src ; @@ -15,10 +15,10 @@ local optional_sources ; local optional_reqs ; if [ mpi.configured ] -{ +{ lib boost_graph_parallel : mpi_process_group.cpp tag_allocator.cpp - : ../../mpi/build//boost_mpi + : /boost/mpi//boost_mpi /mpi//mpi [ mpi.extra-requirements ] BOOST_GRAPH_NO_LIB=1 shared:BOOST_GRAPH_DYN_LINK=1 @@ -33,11 +33,13 @@ if [ mpi.configured ] } else { - message boost_graph_parallel + alias boost_graph_parallel ; + if ! ( --without-graph_parallel in [ modules.peek : ARGV ] ) + { + message boost_graph_parallel : "warning: Graph library does not contain MPI-based parallel components." : "note: to enable them, add \"using mpi ;\" to your user-config.jam." : "note: to suppress this message, pass \"--without-graph_parallel\" to bjam." ; + } } - -boost-install boost_graph_parallel ; diff --git a/example/Jamfile.v2 b/example/Jamfile.v2 index e8877757..012c6491 100644 --- a/example/Jamfile.v2 +++ b/example/Jamfile.v2 @@ -5,9 +5,10 @@ # http://www.boost.org/LICENSE_1_0.txt) -project : requirements ../build//boost_graph_parallel - ../../system/build//boost_system - ../../mpi/build//boost_mpi +project : requirements /boost/graph_parallel//boost_graph_parallel + /boost/system//boost_system + /boost/mpi//boost_mpi + /python//python ; exe breadth_first_search : breadth_first_search.cpp ; diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index b3e062e4..d5671e87 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -6,11 +6,13 @@ # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.) -# use-project /boost/mpi : ../build ; - project /boost/graph_parallel/test - : requirements ../build//boost_graph_parallel ../../system/build//boost_system ; - + : requirements + /boost/graph_parallel//boost_graph_parallel + /boost/system//boost_system + /python//python + ; + import mpi : mpi-test ; if [ mpi.configured ] @@ -46,4 +48,3 @@ test-suite graph_parallel } build-project ../example ; - From f85d0486ea14af5ff2fd5ddbc3ff27eb5ad46b38 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Fri, 29 Mar 2024 21:15:59 -0500 Subject: [PATCH 2/9] Switch to library requirements instead of source. As source puts extra source in install targets. --- build.jam | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/build.jam b/build.jam index 46937d5f..0615ec2e 100644 --- a/build.jam +++ b/build.jam @@ -7,32 +7,32 @@ import project ; project /boost/graph_parallel : common-requirements - /boost/algorithm//boost_algorithm - /boost/assert//boost_assert - /boost/concept_check//boost_concept_check - /boost/config//boost_config - /boost/container_hash//boost_container_hash - /boost/core//boost_core - /boost/detail//boost_detail - /boost/dynamic_bitset//boost_dynamic_bitset - /boost/filesystem//boost_filesystem - /boost/foreach//boost_foreach - /boost/function//boost_function - /boost/graph//boost_graph - /boost/iterator//boost_iterator - /boost/lexical_cast//boost_lexical_cast - /boost/mpi//boost_mpi - /boost/mpl//boost_mpl - /boost/optional//boost_optional - /boost/property_map//boost_property_map - /boost/property_map_parallel//boost_property_map_parallel - /boost/random//boost_random - /boost/serialization//boost_serialization - /boost/smart_ptr//boost_smart_ptr - /boost/static_assert//boost_static_assert - /boost/tuple//boost_tuple - /boost/type_traits//boost_type_traits - /boost/variant//boost_variant + /boost/algorithm//boost_algorithm + /boost/assert//boost_assert + /boost/concept_check//boost_concept_check + /boost/config//boost_config + /boost/container_hash//boost_container_hash + /boost/core//boost_core + /boost/detail//boost_detail + /boost/dynamic_bitset//boost_dynamic_bitset + /boost/filesystem//boost_filesystem + /boost/foreach//boost_foreach + /boost/function//boost_function + /boost/graph//boost_graph + /boost/iterator//boost_iterator + /boost/lexical_cast//boost_lexical_cast + /boost/mpi//boost_mpi + /boost/mpl//boost_mpl + /boost/optional//boost_optional + /boost/property_map//boost_property_map + /boost/property_map_parallel//boost_property_map_parallel + /boost/random//boost_random + /boost/serialization//boost_serialization + /boost/smart_ptr//boost_smart_ptr + /boost/static_assert//boost_static_assert + /boost/tuple//boost_tuple + /boost/type_traits//boost_type_traits + /boost/variant//boost_variant include ; From ce155b133b5c513e12c957e49f0c76cc5bb7a10b Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sun, 28 Apr 2024 20:15:28 -0500 Subject: [PATCH 3/9] Add missing NO_LIB usage requirements. --- build/Jamfile.v2 | 1 + 1 file changed, 1 insertion(+) diff --git a/build/Jamfile.v2 b/build/Jamfile.v2 index 5e491847..85197f44 100644 --- a/build/Jamfile.v2 +++ b/build/Jamfile.v2 @@ -9,6 +9,7 @@ import mpi ; project : requirements ../src : source-location ../src + : usage-requirements BOOST_GRAPH_PARALLEL_NO_LIB=1 ; local optional_sources ; From a36ae0f7142a90f2446fdbdb6c229e960a9161de Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sun, 5 May 2024 09:00:01 -0500 Subject: [PATCH 4/9] Add requires-b2 check to top-level build file. --- build.jam | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build.jam b/build.jam index 0615ec2e..5958ea84 100644 --- a/build.jam +++ b/build.jam @@ -3,6 +3,8 @@ # (See accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt) +require-b2 5.1 ; + import project ; project /boost/graph_parallel From 926be2b8f66ed4759a97515fb57e28fd3d527468 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Fri, 14 Jun 2024 11:33:55 -0500 Subject: [PATCH 5/9] Bump B2 require to 5.2 --- build.jam | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/build.jam b/build.jam index 5958ea84..9c70f2ad 100644 --- a/build.jam +++ b/build.jam @@ -3,9 +3,7 @@ # (See accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt) -require-b2 5.1 ; - -import project ; +require-b2 5.2 ; project /boost/graph_parallel : common-requirements From 72a60073d4cc9fb158fb1a37674678974f8ba576 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Tue, 23 Jul 2024 22:34:23 -0500 Subject: [PATCH 6/9] Move inter-lib dependencies to a project variable and into the build targets. --- build.jam | 55 +++++++++++++++++++++++++----------------------- build/Jamfile.v2 | 1 + 2 files changed, 30 insertions(+), 26 deletions(-) diff --git a/build.jam b/build.jam index 9c70f2ad..de62b610 100644 --- a/build.jam +++ b/build.jam @@ -5,34 +5,36 @@ require-b2 5.2 ; +constant boost_dependencies : + /boost/algorithm//boost_algorithm + /boost/assert//boost_assert + /boost/concept_check//boost_concept_check + /boost/config//boost_config + /boost/container_hash//boost_container_hash + /boost/core//boost_core + /boost/detail//boost_detail + /boost/dynamic_bitset//boost_dynamic_bitset + /boost/filesystem//boost_filesystem + /boost/foreach//boost_foreach + /boost/function//boost_function + /boost/graph//boost_graph + /boost/iterator//boost_iterator + /boost/lexical_cast//boost_lexical_cast + /boost/mpi//boost_mpi + /boost/mpl//boost_mpl + /boost/optional//boost_optional + /boost/property_map//boost_property_map + /boost/property_map_parallel//boost_property_map_parallel + /boost/random//boost_random + /boost/serialization//boost_serialization + /boost/smart_ptr//boost_smart_ptr + /boost/static_assert//boost_static_assert + /boost/tuple//boost_tuple + /boost/type_traits//boost_type_traits + /boost/variant//boost_variant ; + project /boost/graph_parallel : common-requirements - /boost/algorithm//boost_algorithm - /boost/assert//boost_assert - /boost/concept_check//boost_concept_check - /boost/config//boost_config - /boost/container_hash//boost_container_hash - /boost/core//boost_core - /boost/detail//boost_detail - /boost/dynamic_bitset//boost_dynamic_bitset - /boost/filesystem//boost_filesystem - /boost/foreach//boost_foreach - /boost/function//boost_function - /boost/graph//boost_graph - /boost/iterator//boost_iterator - /boost/lexical_cast//boost_lexical_cast - /boost/mpi//boost_mpi - /boost/mpl//boost_mpl - /boost/optional//boost_optional - /boost/property_map//boost_property_map - /boost/property_map_parallel//boost_property_map_parallel - /boost/random//boost_random - /boost/serialization//boost_serialization - /boost/smart_ptr//boost_smart_ptr - /boost/static_assert//boost_static_assert - /boost/tuple//boost_tuple - /boost/type_traits//boost_type_traits - /boost/variant//boost_variant include ; @@ -44,3 +46,4 @@ explicit call-if : boost-library graph_parallel : install boost_graph_parallel ; + diff --git a/build/Jamfile.v2 b/build/Jamfile.v2 index 85197f44..4999dc53 100644 --- a/build/Jamfile.v2 +++ b/build/Jamfile.v2 @@ -7,6 +7,7 @@ import mpi ; project + : common-requirements $(boost_dependencies) : requirements ../src : source-location ../src : usage-requirements BOOST_GRAPH_PARALLEL_NO_LIB=1 From 3e59d3a7ce7c8fc69ea1abf86f4c0c9dc0fa280b Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sat, 3 Aug 2024 12:31:40 -0500 Subject: [PATCH 7/9] Add python build setup. --- example/Jamfile.v2 | 4 +++- test/Jamfile.v2 | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/example/Jamfile.v2 b/example/Jamfile.v2 index 012c6491..17c6d7dc 100644 --- a/example/Jamfile.v2 +++ b/example/Jamfile.v2 @@ -5,7 +5,9 @@ # http://www.boost.org/LICENSE_1_0.txt) -project : requirements /boost/graph_parallel//boost_graph_parallel +using python ; + +project : requirements /boost/graph_parallel//boost_graph_parallel /boost/system//boost_system /boost/mpi//boost_mpi /python//python diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index d5671e87..37bfdaca 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -2,11 +2,12 @@ # (C) Copyright 2005, 2006 Trustees of Indiana University # (C) Copyright 2005 Douglas Gregor # -# Distributed under the Boost Software License, Version 1.0. (See accompanying +# 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.) +using python ; -project /boost/graph_parallel/test +project /boost/graph_parallel/test : requirements /boost/graph_parallel//boost_graph_parallel /boost/system//boost_system From c1e750e4c0f0dfd694875eddfff1c53d0c74bced Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sat, 12 Apr 2025 23:19:14 -0500 Subject: [PATCH 8/9] Use latest ubuntu/compilers on GHA. --- .github/workflows/ci.yml | 57 +++------------------------------------- 1 file changed, 4 insertions(+), 53 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a4f3ef76..c9f44f45 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,12 +7,12 @@ name: CI on: [ push, pull_request ] jobs: - ubuntu-focal: - runs-on: ubuntu-20.04 + ubuntu: + runs-on: ubuntu-latest strategy: fail-fast: false matrix: - compiler: [ g++-9, g++-10, clang++-10 ] + compiler: [ g++-13, g++-14, clang++-19 ] steps: - uses: actions/checkout@v2 with: @@ -24,10 +24,8 @@ jobs: fail-fast: true - name: Set TOOLSET run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV - - name: Add repository - run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" - name: Install packages - run: sudo apt install g++-9 g++-10 clang-10 mpich + run: sudo apt install g++-13 g++-14 clang-19 mpich - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - name: Update tools/boostdep @@ -54,53 +52,6 @@ jobs: - name: Test run: ../../../b2 toolset=$TOOLSET cxxstd=03,11,14,17,2a working-directory: ../boost-root/libs/graph_parallel/test - ubuntu-bionic: - runs-on: ubuntu-18.04 - strategy: - fail-fast: false - matrix: - compiler: [ g++-7, g++-8, clang++-7, clang++-8 ] - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: '0' - - uses: mstachniuk/ci-skip@v1 - with: - commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]' - commit-filter-separator: ';' - fail-fast: true - - name: Set TOOLSET - run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV - - name: Add repository - run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" - - name: Install packages - run: sudo apt install g++-7 g++-8 clang-7 clang-8 mpich - - name: Checkout main boost - run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - - name: Update tools/boostdep - run: git submodule update --init tools/boostdep - working-directory: ../boost-root - - name: Copy files - run: cp -r $GITHUB_WORKSPACE/* libs/graph_parallel - working-directory: ../boost-root - - name: Install deps - run: python tools/boostdep/depinst/depinst.py graph_parallel - working-directory: ../boost-root - - name: Bootstrap - run: ./bootstrap.sh - working-directory: ../boost-root - - name: Generate headers - run: ./b2 headers - working-directory: ../boost-root - - name: Generate user config - run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} ;" > ~/user-config.jam && echo "using mpi ;" >> ~/user-config.jam' - working-directory: ../boost-root - - name: Config info install - run: ../../../b2 print_config_info toolset=$TOOLSET cxxstd=03,11,14,17 - working-directory: ../boost-root/libs/config/test - - name: Test - run: ../../../b2 toolset=$TOOLSET cxxstd=03,11,14,17 - working-directory: ../boost-root/libs/graph_parallel/test macos: runs-on: macos-latest strategy: From 48cb0600884ad4d2ac0634a5b98999d30b1aa134 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Thu, 17 Apr 2025 08:52:51 -0500 Subject: [PATCH 9/9] Move include to target. --- build.jam | 2 -- build/Jamfile.v2 | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/build.jam b/build.jam index de62b610..ce35ca77 100644 --- a/build.jam +++ b/build.jam @@ -34,8 +34,6 @@ constant boost_dependencies : /boost/variant//boost_variant ; project /boost/graph_parallel - : common-requirements - include ; explicit diff --git a/build/Jamfile.v2 b/build/Jamfile.v2 index 4999dc53..b0874a33 100644 --- a/build/Jamfile.v2 +++ b/build/Jamfile.v2 @@ -7,7 +7,7 @@ import mpi ; project - : common-requirements $(boost_dependencies) + : common-requirements ../include $(boost_dependencies) : requirements ../src : source-location ../src : usage-requirements BOOST_GRAPH_PARALLEL_NO_LIB=1