From f0d9bd6bfb555d0d288fd95168ca1b83008e54a7 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sat, 23 Mar 2024 22:25:30 -0500 Subject: [PATCH 01/20] Fix compile errors from abandonment and adjust for modular build. --- Jamfile.v2 | 36 ++++++++++++++++++++++++++++-------- add_dependent_lib.cpp | 5 +++-- add_path.cpp | 37 ++++++++++++++++++------------------- copy_path.cpp | 6 +++--- file_types.cpp | 2 +- 5 files changed, 53 insertions(+), 33 deletions(-) diff --git a/Jamfile.v2 b/Jamfile.v2 index b89a153..6ff414e 100644 --- a/Jamfile.v2 +++ b/Jamfile.v2 @@ -2,7 +2,22 @@ # Distributed under the Boost Software License, Version 1.0. # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) -exe bcp +import option ; +import path ; + +project /boost/bcp + ; + +local DIST_DIR = [ option.get distdir ] ; +DIST_DIR ?= [ option.get build-dir ] ; +DIST_DIR ?= [ path.join $(BOOST_ROOT) dist ] ; +DIST_DIR ?= dist ; +DIST_DIR = [ path.root [ path.make $(DIST_DIR) ] [ path.pwd ] ] ; + +explicit + + [ + exe bcp : add_dependent_lib.cpp add_path.cpp bcp_imp.cpp copy_path.cpp file_types.cpp fileview.cpp main.cpp path_operations.cpp scan_cvs_path.cpp @@ -12,25 +27,30 @@ exe bcp : : release - ; + ] -install dist-bin + [ + install dist-bin : bcp : EXE - ../../dist/bin + $(DIST_DIR)/bin : release - ; + ] -install dist-lib + [ + install dist-lib : bcp : LIB - ../../dist/lib + $(DIST_DIR)/lib : release - ; + ] + [ alias dist : dist-bin dist-lib ] + [ alias all : bcp test dist ] + ; diff --git a/add_dependent_lib.cpp b/add_dependent_lib.cpp index 4852914..521b70d 100644 --- a/add_dependent_lib.cpp +++ b/add_dependent_lib.cpp @@ -15,6 +15,7 @@ #include "bcp_imp.hpp" #include "fileview.hpp" #include +#include #include #include #include @@ -43,12 +44,12 @@ static void init_library_scanner(const fs::path& p, bool cvs_mode, const std::st // // Don't add files created by build system: // - if((p.leaf() == "bin") || (p.leaf() == "bin-stage")) + if((p.filename() == "bin") || (p.filename() == "bin-stage")) return; // // Don't add version control directories: // - if((p.leaf() == "CVS") || (p.leaf() == ".svn")) + if((p.filename() == "CVS") || (p.filename() == ".svn")) return; // // don't add directories not under version control: diff --git a/add_path.cpp b/add_path.cpp index 8a1fee3..a59cffc 100644 --- a/add_path.cpp +++ b/add_path.cpp @@ -15,6 +15,7 @@ #include "bcp_imp.hpp" #include "fileview.hpp" #include +#include #include #include #include @@ -24,14 +25,12 @@ void bcp_implementation::add_path(const fs::path& p) { if (m_excluded.find(p) != m_excluded.end()) return; - fs::path normalized_path = p; - normalized_path.normalize(); - if(fs::exists(m_boost_path / normalized_path)) + if(fs::exists(m_boost_path / p)) { - if(fs::is_directory(m_boost_path / normalized_path)) - add_directory(normalized_path); + if(fs::is_directory(m_boost_path / p)) + add_directory(p); else - add_file(normalized_path); + add_file(p); } else { @@ -45,12 +44,12 @@ void bcp_implementation::add_directory(const fs::path& p) // // Don't add files created by build system: // - if((p.leaf() == "bin") || (p.leaf() == "bin-stage")) + if((p.filename() == "bin") || (p.filename() == "bin-stage")) return; // // Don't add version control directories: // - if((p.leaf() == "CVS") || (p.leaf() == ".svn")) + if((p.filename() == "CVS") || (p.filename() == ".svn")) return; // // don't add directories not under version control: @@ -180,7 +179,7 @@ void bcp_implementation::add_file(const fs::path& p) { // only concatonate if it's a relative path // rather than a URL: - fs::path dep(p.branch_path() / s); + fs::path dep(p.parent_path() / s); if(!m_dependencies.count(dep)) { m_dependencies[dep] = p; // set up dependency tree @@ -355,13 +354,13 @@ void bcp_implementation::add_file_dependencies(const fs::path& p, bool scanfile) continue; } include_file = i->str(); - fs::path test_file(m_boost_path / p.branch_path() / include_file); - if(fs::exists(test_file) && !fs::is_directory(test_file) && (p.branch_path().string() != "boost")) + fs::path test_file(m_boost_path / p.parent_path() / include_file); + if(fs::exists(test_file) && !fs::is_directory(test_file) && (p.parent_path().string() != "boost")) { - if(!m_dependencies.count(p.branch_path() / include_file)) + if(!m_dependencies.count(p.parent_path() / include_file)) { - m_dependencies[p.branch_path() / include_file] = p; - add_pending_path(p.branch_path() / include_file); + m_dependencies[p.parent_path() / include_file] = p; + add_pending_path(p.parent_path() / include_file); } } else if(fs::exists(m_boost_path / include_file)) @@ -405,13 +404,13 @@ void bcp_implementation::add_file_dependencies(const fs::path& p, bool scanfile) ++i; continue; } - fs::path test_file(m_boost_path / p.branch_path() / include_file); - if(fs::exists(test_file) && !fs::is_directory(test_file) && (p.branch_path().string() != "boost")) + fs::path test_file(m_boost_path / p.parent_path() / include_file); + if(fs::exists(test_file) && !fs::is_directory(test_file) && (p.parent_path().string() != "boost")) { - if(!m_dependencies.count(p.branch_path() / include_file)) + if(!m_dependencies.count(p.parent_path() / include_file)) { - m_dependencies[p.branch_path() / include_file] = p; - add_pending_path(p.branch_path() / include_file); + m_dependencies[p.parent_path() / include_file] = p; + add_pending_path(p.parent_path() / include_file); } } else if(fs::exists(m_boost_path / include_file)) diff --git a/copy_path.cpp b/copy_path.cpp index 4143c79..bed68d9 100644 --- a/copy_path.cpp +++ b/copy_path.cpp @@ -56,11 +56,11 @@ void bcp_implementation::copy_path(const fs::path& p) // // create the path to the new file if it doesn't already exist: // - create_path(p.branch_path()); + create_path(p.parent_path()); // // do text based copy if requested: // - if((p.leaf() == "Jamroot") && m_namespace_name.size()) + if((p.filename() == "Jamroot") && m_namespace_name.size()) { static std::vector v1, v2; v1.clear(); @@ -240,7 +240,7 @@ void bcp_implementation::create_path(const fs::path& p) if(!fs::exists(m_dest_path / p)) { // recurse then create the path: - create_path(p.branch_path()); + create_path(p.parent_path()); fs::create_directory(m_dest_path / p); } } diff --git a/file_types.cpp b/file_types.cpp index 297d304..69f6027 100644 --- a/file_types.cpp +++ b/file_types.cpp @@ -52,7 +52,7 @@ bool bcp_implementation::is_binary_file(const fs::path& p) "|" "(Jamfile|makefile|configure)", boost::regex::perl | boost::regex::icase); - return !boost::regex_match(p.leaf().generic_string(), e); + return !boost::regex_match(p.filename().generic_string(), e); } From 6bd3ff81b73152119360c2dc75120a82e68a1df1 Mon Sep 17 00:00:00 2001 From: Andrey Semashev Date: Sun, 24 Mar 2024 15:43:33 +0300 Subject: [PATCH 02/20] Updated list of special dependencies. --- add_path.cpp | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/add_path.cpp b/add_path.cpp index 747bb8c..12d8215 100644 --- a/add_path.cpp +++ b/add_path.cpp @@ -196,12 +196,6 @@ void bcp_implementation::add_file(const fs::path& p) // static const std::pair specials[] = { - std::pair("tools/build/src/kernel/modules.jam", "libs/predef/check"), - std::pair("tools/build/src/kernel/modules.jam", "libs/predef/tools"), - std::pair("tools/build/src/kernel/modules.jam", "tools/boost_install/boost-install.jam"), - std::pair("tools/build/src/kernel/modules.jam", "tools/boost_install/boost-install-dirs.jam"), - std::pair("tools/build/src/kernel/modules.jam", "tools/boost_install/Jamfile"), - std::pair("tools/build/src/kernel/modules.jam", "libs/headers"), std::pair("libs/test/build/Jamfile.v2", "libs/timer/src"), std::pair("libs/test/build/Jamfile.v2", "libs/timer/build"), std::pair("boost/atomic/capabilities.hpp", "boost/atomic/detail"), @@ -226,14 +220,14 @@ static const std::pair std::pair("libs/thread/build", "boost/system"), std::pair("libs/thread/build", "boost/cerrno.hpp"), std::pair("libs/thread/build", "boost/chrono"), - std::pair("boost/filesystem/convenience.hpp", "boost/filesystem.hpp"), + std::pair("boost/filesystem/cstdio.hpp", "boost/filesystem.hpp"), + std::pair("boost/filesystem/directory.hpp", "boost/filesystem.hpp"), std::pair("boost/filesystem/exception.hpp", "boost/filesystem.hpp"), std::pair("boost/filesystem/fstream.hpp", "boost/filesystem.hpp"), std::pair("boost/filesystem/operations.hpp", "boost/filesystem.hpp"), + std::pair("boost/filesystem/file_status.hpp", "boost/filesystem.hpp"), std::pair("boost/filesystem/path.hpp", "boost/filesystem.hpp"), std::pair("boost/filesystem.hpp", "libs/filesystem/build"), - std::pair("boost/filesystem.hpp", "libs/filesystem/v2"), - std::pair("boost/filesystem.hpp", "libs/filesystem/v3"), std::pair("boost/config.hpp", "boost/config"), std::pair("tools/build/bootstrap.sh", "libs/config/checks"), std::pair("tools/build/bootstrap.sh", "libs/config/test"), @@ -242,6 +236,7 @@ static const std::pair std::pair("tools/build/bootstrap.sh", "tools/boost_install/BoostDetectToolset.cmake"), std::pair("tools/build/bootstrap.sh", "tools/boost_install/boost-install.jam"), std::pair("tools/build/bootstrap.sh", "tools/boost_install/boost-install-dirs.jam"), + std::pair("tools/build/bootstrap.sh", "tools/boost_install/Jamfile"), std::pair("tools/build/bootstrap.sh", "boostcpp.jam"), std::pair("tools/build/bootstrap.sh", "project-config.jam"), std::pair("tools/build/bootstrap.sh", "bootstrap.bat"), From 8e5375cb416829a61081e86d17210e0b9a8bdca2 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sun, 24 Mar 2024 18:22:35 -0500 Subject: [PATCH 03/20] Tweaks to normalize tool modular building. --- Jamfile.v2 | 58 +++++++++++++++++------------------------------------- 1 file changed, 18 insertions(+), 40 deletions(-) diff --git a/Jamfile.v2 b/Jamfile.v2 index 6ff414e..61b1379 100644 --- a/Jamfile.v2 +++ b/Jamfile.v2 @@ -1,56 +1,34 @@ # (C) Copyright John Maddock 2006. +# Copyright René Ferdinand Rivera Morell 2024 # Distributed under the Boost Software License, Version 1.0. # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) import option ; import path ; -project /boost/bcp - ; - local DIST_DIR = [ option.get distdir ] ; DIST_DIR ?= [ option.get build-dir ] ; DIST_DIR ?= [ path.join $(BOOST_ROOT) dist ] ; DIST_DIR ?= dist ; DIST_DIR = [ path.root [ path.make $(DIST_DIR) ] [ path.pwd ] ] ; -explicit - - [ - exe bcp - : - add_dependent_lib.cpp add_path.cpp bcp_imp.cpp copy_path.cpp file_types.cpp - fileview.cpp main.cpp path_operations.cpp scan_cvs_path.cpp - licence_info.cpp scan_licence.cpp output_licence_info.cpp - /boost/filesystem//boost_filesystem - /boost/regex//boost_regex - : - : - release - ] - - [ - install dist-bin - : - bcp - : - EXE - $(DIST_DIR)/bin - : - release - ] - - [ - install dist-lib - : - bcp - : - LIB - $(DIST_DIR)/lib - : - release - ] +project /boost/bcp + ; - [ alias dist : dist-bin dist-lib ] +explicit + [ exe bcp + : + add_dependent_lib.cpp add_path.cpp bcp_imp.cpp copy_path.cpp file_types.cpp + fileview.cpp main.cpp path_operations.cpp scan_cvs_path.cpp + licence_info.cpp scan_licence.cpp output_licence_info.cpp + /boost/filesystem//boost_filesystem + /boost/regex//boost_regex + : + : release ] + [ install dist-bin + : bcp/static + : EXE $(DIST_DIR)/bin + : release ] + [ alias dist : dist-bin ] [ alias all : bcp test dist ] ; From f6ece64973613a6aea999eaa28edb5d6fff82c36 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sun, 24 Mar 2024 22:15:43 -0500 Subject: [PATCH 04/20] Tweak CI to partially work with cloned repos. --- .github/workflows/ci.yml | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6663599..ceb8d09 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,6 +1,7 @@ # Copyright 2020 Evan Miller # Copyright 2020 Matt Borland # Copyright 2021 John Maddock +# 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://boost.org/LICENSE_1_0.txt) @@ -10,18 +11,22 @@ on: branches: - master - develop + - modular pull_request: release: types: [published, created, edited] jobs: ubuntu-jammy: - runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: - compiler: [ g++-12 ] + include: + - compiler: g++-12 + toolset: gcc + os: ubuntu-latest + runs-on: ${{matrix.os}} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@main with: fetch-depth: '0' - uses: mstachniuk/ci-skip@v1 @@ -29,14 +34,12 @@ jobs: 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++-12 git xsltproc docbook-xsl docbook-xml - name: Checkout main boost - run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root + run: git clone -b develop --depth 1 https://github.com/${GITHUB_REPOSITORY/bcp/boost}.git ../boost-root - name: Update tools/boostdep run: git submodule update --init working-directory: ../boost-root @@ -50,7 +53,7 @@ jobs: run: ./b2 headers working-directory: ../boost-root - name: Generate user config - run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} ;" > ~/user-config.jam' + run: 'echo "using ${{ matrix.toolset }} : : ${{ matrix.compiler }} ;" > ~/user-config.jam' working-directory: ../boost-root - name: Config info run: ./b2 libs/config/test//print_config_info From 2e600044c832c2bd9c1237f9c2f557fa8b5cd564 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sun, 24 Mar 2024 23:09:24 -0500 Subject: [PATCH 05/20] Check on Boost git repo reference. --- .github/workflows/ci.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ceb8d09..5d36c19 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,7 +39,10 @@ jobs: - name: Install packages run: sudo apt install g++-12 git xsltproc docbook-xsl docbook-xml - name: Checkout main boost - run: git clone -b develop --depth 1 https://github.com/${GITHUB_REPOSITORY/bcp/boost}.git ../boost-root + run: | + BOOST_GIT=https://github.com/${GITHUB_REPOSITORY/bcp/boost}.git + echo "BOOST_GIT: ${BOOST_GIT}" + git clone -b develop --depth 1 "${BOOST_GIT}" ../boost-root - name: Update tools/boostdep run: git submodule update --init working-directory: ../boost-root From 0e680dd38dbdd394554e198f6c1e01ae4beeeac8 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sun, 24 Mar 2024 23:35:37 -0500 Subject: [PATCH 06/20] Also set the branch of boost to clone to match our base branch. --- .github/workflows/ci.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5d36c19..f97413b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,14 +7,13 @@ name: CI on: + pull_request: push: branches: - master - develop + - feature/** - modular - pull_request: - release: - types: [published, created, edited] jobs: ubuntu-jammy: strategy: @@ -41,8 +40,10 @@ jobs: - name: Checkout main boost run: | BOOST_GIT=https://github.com/${GITHUB_REPOSITORY/bcp/boost}.git + BOOST_BRANCH=develop && ( test "${GITHUB_REF_NAME}" == "master" || test "${GITHUB_REF_NAME}" == "modular" ) && BOOST_BRANCH=${GITHUB_REF_NAME} || true echo "BOOST_GIT: ${BOOST_GIT}" - git clone -b develop --depth 1 "${BOOST_GIT}" ../boost-root + echo "BRANCH/TAG: ${BOOST_BRANCH}" + git clone -b "${BOOST_BRANCH}" --depth 1 "${BOOST_GIT}" '../boost-root' - name: Update tools/boostdep run: git submodule update --init working-directory: ../boost-root From 2ad23d8e75281161d87629cdf453380999837285 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sun, 24 Mar 2024 23:52:51 -0500 Subject: [PATCH 07/20] Tweak CI to clean copy bcp files to boost location and adjust for modular build. --- .github/workflows/ci.yml | 4 +++- test/ci_script.sh | 10 +++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f97413b..b145548 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,7 +48,9 @@ jobs: run: git submodule update --init working-directory: ../boost-root - name: Copy files - run: cp -r $GITHUB_WORKSPACE/* tools/bcp + run: | + rm -rf tools/bcp/* + cp -rv $GITHUB_WORKSPACE/* tools/bcp working-directory: ../boost-root - name: Bootstrap run: ./bootstrap.sh diff --git a/test/ci_script.sh b/test/ci_script.sh index f2cb1a0..1ed1126 100755 --- a/test/ci_script.sh +++ b/test/ci_script.sh @@ -8,7 +8,7 @@ # boost-root: cd ../../.. -./b2 -j3 tools/bcp || { echo './b2 -j3 tools/bcp failed' ; exit 1; } +./b2 -j3 tools/bcp//dist || { echo './b2 -j3 tools/bcp failed' ; exit 1; } rm -rf ../bcp-output mkdir ../bcp-output || { echo 'mkdir failed' ; exit 1; } ./dist/bin/bcp program_options build ../bcp-output || { echo './dist/bin/bcp program_options build ../bcp-output failed' ; exit 1; } @@ -26,9 +26,9 @@ cd ../boost-root echo "using xsltproc ;" | tee -a $HOME/user-config.jam echo "using boostbook : /usr/share/xml/docbook/stylesheet/docbook-xsl : /usr/share/sgml/docbook/dtd/xml/4.2 ;" | tee -a $HOME/user-config.jam cd tools/inspect/build -../../../b2 -j2 address-model=64 architecture=x86 toolset=gcc cxxflags="-std=gnu++14" release dist-bin || { echo 'building inspect failed' ; exit 1; } -cd ../../bcp/doc -rm -rf html -../../../b2 -j2 address-model=64 architecture=x86 toolset=gcc cxxflags="-std=gnu++14" release || { echo 'building docs failed' ; exit 1; } +../../../b2 -j2 address-model=64 architecture=x86 toolset=gcc cxxstd=14 release dist-bin || { echo 'building inspect failed' ; exit 1; } +cd ../../bcp/doc +rm -rf html +../../../b2 -j2 address-model=64 architecture=x86 toolset=gcc cxxstd=14 release || { echo 'building docs failed' ; exit 1; } ../../../dist/bin/inspect -text || { echo 'inspect failed' ; exit 1; } From 33d115f548e08ff8ca6be4aaee711a99fe84bbb6 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Mon, 25 Mar 2024 20:42:50 -0500 Subject: [PATCH 08/20] Fix compile errors from abandonment and adjust for modular build. --- Jamfile.v2 | 36 ++++++++++++++++++++++++++++-------- add_path.cpp | 30 +++++++++++++++--------------- 2 files changed, 43 insertions(+), 23 deletions(-) diff --git a/Jamfile.v2 b/Jamfile.v2 index b89a153..6ff414e 100644 --- a/Jamfile.v2 +++ b/Jamfile.v2 @@ -2,7 +2,22 @@ # Distributed under the Boost Software License, Version 1.0. # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) -exe bcp +import option ; +import path ; + +project /boost/bcp + ; + +local DIST_DIR = [ option.get distdir ] ; +DIST_DIR ?= [ option.get build-dir ] ; +DIST_DIR ?= [ path.join $(BOOST_ROOT) dist ] ; +DIST_DIR ?= dist ; +DIST_DIR = [ path.root [ path.make $(DIST_DIR) ] [ path.pwd ] ] ; + +explicit + + [ + exe bcp : add_dependent_lib.cpp add_path.cpp bcp_imp.cpp copy_path.cpp file_types.cpp fileview.cpp main.cpp path_operations.cpp scan_cvs_path.cpp @@ -12,25 +27,30 @@ exe bcp : : release - ; + ] -install dist-bin + [ + install dist-bin : bcp : EXE - ../../dist/bin + $(DIST_DIR)/bin : release - ; + ] -install dist-lib + [ + install dist-lib : bcp : LIB - ../../dist/lib + $(DIST_DIR)/lib : release - ; + ] + [ alias dist : dist-bin dist-lib ] + [ alias all : bcp test dist ] + ; diff --git a/add_path.cpp b/add_path.cpp index 12d8215..b4dc0d2 100644 --- a/add_path.cpp +++ b/add_path.cpp @@ -1,8 +1,8 @@ /* * * Copyright (c) 2003 Dr John Maddock - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying file + * Use, modification and distribution is subject to 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) * * This file implements the following: @@ -46,12 +46,12 @@ void bcp_implementation::add_directory(const fs::path& p) // Don't add files created by build system: // if((p.filename() == "bin") || (p.filename() == "bin-stage")) - return; + return; // // Don't add version control directories: // if((p.filename() == "CVS") || (p.filename() == ".svn")) - return; + return; // // don't add directories not under version control: // @@ -74,7 +74,7 @@ void bcp_implementation::add_directory(const fs::path& p) if(m_boost_path.string().size()) s.erase(0, m_boost_path.string().size() + 1); fs::path np = s; - if(!m_dependencies.count(np)) + if(!m_dependencies.count(np)) { m_dependencies[np] = p; // set up dependency tree if (m_excluded.find(np) == m_excluded.end()) @@ -181,7 +181,7 @@ void bcp_implementation::add_file(const fs::path& p) // only concatonate if it's a relative path // rather than a URL: fs::path dep(p.parent_path() / s); - if(!m_dependencies.count(dep)) + if(!m_dependencies.count(dep)) { m_dependencies[dep] = p; // set up dependency tree add_pending_path(dep); @@ -300,7 +300,7 @@ static const std::pair { if(0 == compare_paths(specials[n].first, p)) { - if(!m_dependencies.count(specials[n].second)) + if(!m_dependencies.count(specials[n].second)) { m_dependencies[specials[n].second] = p; // set up dependency tree add_pending_path(specials[n].second); @@ -316,7 +316,7 @@ void bcp_implementation::add_file_dependencies(const fs::path& p, bool scanfile) "^[[:blank:]]*(?://@bcp[[:blank:]]+([^\\n]*)\n)?#[[:blank:]]*include[[:blank:]]*[\"<]([^\">]+)[\">]" ); - if(!m_dependencies.count(p)) + if(!m_dependencies.count(p)) m_dependencies[p] = p; // set terminal dependency fileview view; @@ -353,7 +353,7 @@ void bcp_implementation::add_file_dependencies(const fs::path& p, bool scanfile) fs::path test_file(m_boost_path / p.parent_path() / include_file); if(fs::exists(test_file) && !fs::is_directory(test_file) && (p.parent_path().string() != "boost")) { - if(!m_dependencies.count(p.parent_path() / include_file)) + if(!m_dependencies.count(p.parent_path() / include_file)) { m_dependencies[p.parent_path() / include_file] = p; add_pending_path(p.parent_path() / include_file); @@ -361,7 +361,7 @@ void bcp_implementation::add_file_dependencies(const fs::path& p, bool scanfile) } else if(fs::exists(m_boost_path / include_file)) { - if(!m_dependencies.count(include_file)) + if(!m_dependencies.count(include_file)) { m_dependencies[include_file] = p; add_pending_path(include_file); @@ -403,7 +403,7 @@ void bcp_implementation::add_file_dependencies(const fs::path& p, bool scanfile) fs::path test_file(m_boost_path / p.parent_path() / include_file); if(fs::exists(test_file) && !fs::is_directory(test_file) && (p.parent_path().string() != "boost")) { - if(!m_dependencies.count(p.parent_path() / include_file)) + if(!m_dependencies.count(p.parent_path() / include_file)) { m_dependencies[p.parent_path() / include_file] = p; add_pending_path(p.parent_path() / include_file); @@ -411,7 +411,7 @@ void bcp_implementation::add_file_dependencies(const fs::path& p, bool scanfile) } else if(fs::exists(m_boost_path / include_file)) { - if(!m_dependencies.count(include_file)) + if(!m_dependencies.count(include_file)) { m_dependencies[include_file] = p; add_pending_path(include_file); @@ -427,7 +427,7 @@ void bcp_implementation::add_file_dependencies(const fs::path& p, bool scanfile) // // Scan for any #include MACRO includes that we don't recognise. // - // Begin by declaring all of the macros that get #included that + // Begin by declaring all of the macros that get #included that // we know about and are correctly handled as special cases: // static const std::string known_macros[] = { @@ -535,7 +535,7 @@ void bcp_implementation::add_file_dependencies(const fs::path& p, bool scanfile) if(!scanfile) { // - // grab the name of the library to which the header belongs, + // grab the name of the library to which the header belongs, // and if that library has source then add the source to our // list: // @@ -577,4 +577,4 @@ void bcp_implementation::add_file_dependencies(const fs::path& p, bool scanfile) ++i; } } -} +} \ No newline at end of file From 947878911365ac4ee26da4de484210d131323ba5 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Mon, 25 Mar 2024 23:22:05 -0500 Subject: [PATCH 09/20] Add special predef checks dependencies. --- add_path.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/add_path.cpp b/add_path.cpp index b4dc0d2..ef82b75 100644 --- a/add_path.cpp +++ b/add_path.cpp @@ -294,6 +294,8 @@ static const std::pair std::pair("boost/graph/rmat_graph_generator.hpp", "boost/graph/distributed/rmat_graph_generator.hpp"), std::pair("boost/graph/strong_components.hpp", "boost/graph/distributed/strong_components.hpp"), std::pair("boost/graph/two_bit_color_map.hpp", "boost/graph/distributed/two_bit_color_map.hpp"), + std::pair("libs/context/build.jam", "libs/predef/tools/check/predef.jam"), + std::pair("libs/test/build/Jamfile.v2", "libs/predef/tools/check/predef.jam"), }; for(unsigned int n = 0; n < (sizeof(specials)/sizeof(specials[0])); ++n) From 82afcd3675cbf996b4ccb968ce6b6ea326326fd7 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Mon, 25 Mar 2024 23:26:35 -0500 Subject: [PATCH 10/20] Check on Boost git repo reference. --- .github/workflows/ci.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b145548..d7422d7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,10 +40,15 @@ jobs: - name: Checkout main boost run: | BOOST_GIT=https://github.com/${GITHUB_REPOSITORY/bcp/boost}.git +<<<<<<< HEAD BOOST_BRANCH=develop && ( test "${GITHUB_REF_NAME}" == "master" || test "${GITHUB_REF_NAME}" == "modular" ) && BOOST_BRANCH=${GITHUB_REF_NAME} || true echo "BOOST_GIT: ${BOOST_GIT}" echo "BRANCH/TAG: ${BOOST_BRANCH}" git clone -b "${BOOST_BRANCH}" --depth 1 "${BOOST_GIT}" '../boost-root' +======= + echo "BOOST_GIT: ${BOOST_GIT}" + git clone -b develop --depth 1 "${BOOST_GIT}" ../boost-root +>>>>>>> 2e60004 (Check on Boost git repo reference.) - name: Update tools/boostdep run: git submodule update --init working-directory: ../boost-root From c270a4024b24e191319f9990500e168694e7b921 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Mon, 25 Mar 2024 23:27:58 -0500 Subject: [PATCH 11/20] Also set the branch of boost to clone to match our base branch. --- .github/workflows/ci.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d7422d7..fb0c54c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,6 +40,7 @@ jobs: - name: Checkout main boost run: | BOOST_GIT=https://github.com/${GITHUB_REPOSITORY/bcp/boost}.git +<<<<<<< HEAD <<<<<<< HEAD BOOST_BRANCH=develop && ( test "${GITHUB_REF_NAME}" == "master" || test "${GITHUB_REF_NAME}" == "modular" ) && BOOST_BRANCH=${GITHUB_REF_NAME} || true echo "BOOST_GIT: ${BOOST_GIT}" @@ -49,6 +50,12 @@ jobs: echo "BOOST_GIT: ${BOOST_GIT}" git clone -b develop --depth 1 "${BOOST_GIT}" ../boost-root >>>>>>> 2e60004 (Check on Boost git repo reference.) +======= + BOOST_BRANCH=develop && ( test "${GITHUB_REF_NAME}" == "master" || test "${GITHUB_REF_NAME}" == "modular" ) && BOOST_BRANCH=${GITHUB_REF_NAME} || true + echo "BOOST_GIT: ${BOOST_GIT}" + echo "BRANCH/TAG: ${BOOST_BRANCH}" + git clone -b "${BOOST_BRANCH}" --depth 1 "${BOOST_GIT}" '../boost-root' +>>>>>>> 0e680dd (Also set the branch of boost to clone to match our base branch.) - name: Update tools/boostdep run: git submodule update --init working-directory: ../boost-root From 6384f9078d8982c99d914af55285a1ae7692a4ac Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Mon, 25 Mar 2024 23:35:59 -0500 Subject: [PATCH 12/20] Fix munged merge markers. --- .github/workflows/ci.yml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fb0c54c..b145548 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,22 +40,10 @@ jobs: - name: Checkout main boost run: | BOOST_GIT=https://github.com/${GITHUB_REPOSITORY/bcp/boost}.git -<<<<<<< HEAD -<<<<<<< HEAD BOOST_BRANCH=develop && ( test "${GITHUB_REF_NAME}" == "master" || test "${GITHUB_REF_NAME}" == "modular" ) && BOOST_BRANCH=${GITHUB_REF_NAME} || true echo "BOOST_GIT: ${BOOST_GIT}" echo "BRANCH/TAG: ${BOOST_BRANCH}" git clone -b "${BOOST_BRANCH}" --depth 1 "${BOOST_GIT}" '../boost-root' -======= - echo "BOOST_GIT: ${BOOST_GIT}" - git clone -b develop --depth 1 "${BOOST_GIT}" ../boost-root ->>>>>>> 2e60004 (Check on Boost git repo reference.) -======= - BOOST_BRANCH=develop && ( test "${GITHUB_REF_NAME}" == "master" || test "${GITHUB_REF_NAME}" == "modular" ) && BOOST_BRANCH=${GITHUB_REF_NAME} || true - echo "BOOST_GIT: ${BOOST_GIT}" - echo "BRANCH/TAG: ${BOOST_BRANCH}" - git clone -b "${BOOST_BRANCH}" --depth 1 "${BOOST_GIT}" '../boost-root' ->>>>>>> 0e680dd (Also set the branch of boost to clone to match our base branch.) - name: Update tools/boostdep run: git submodule update --init working-directory: ../boost-root From 56f4d37e2c898bce8b54acc92a59b636f7f3be45 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Wed, 27 Mar 2024 00:55:52 -0500 Subject: [PATCH 13/20] Add dep scanning for modular top lib jamfile. --- add_path.cpp | 19 ++++++++++++++++++- file_types.cpp | 8 ++++---- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/add_path.cpp b/add_path.cpp index ef82b75..a69a2ef 100644 --- a/add_path.cpp +++ b/add_path.cpp @@ -1,6 +1,7 @@ /* * * Copyright (c) 2003 Dr John Maddock + * Copyright René Ferdinand Rivera Morell 2023 * Use, modification and distribution is subject to 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) @@ -107,7 +108,23 @@ void bcp_implementation::add_file(const fs::path& p) { add_file_dependencies(p, false); } - if(is_jam_file(p) && m_namespace_name.size() && ((std::distance(p.begin(), p.end()) < 3) || (*p.begin() != "tools") || (*++p.begin() != "build"))) + if(is_jam_file(p) && *p.begin() == "libs" && (std::distance(p.begin(), p.end()) == 3)) + { + // + // Modular libs top jamfile has references to all the user level + // dependent libraries to also include. + // + static const boost::regex e(">/boost/([a-zA-Z_]+)"); + fileview view(m_boost_path / p); + boost::regex_token_iterator i(view.begin(), view.end(), e, 1); + boost::regex_token_iterator j; + while(i != j) + { + m_lib_names.insert(*i); + ++i; + } + } + else if(is_jam_file(p) && m_namespace_name.size() && ((std::distance(p.begin(), p.end()) < 3) || (*p.begin() != "tools") || (*++p.begin() != "build"))) { // // We're doing a rename of namespaces and library names diff --git a/file_types.cpp b/file_types.cpp index 69f6027..179b953 100644 --- a/file_types.cpp +++ b/file_types.cpp @@ -1,8 +1,8 @@ /* * * Copyright (c) 2003 Dr John Maddock - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying file + * Use, modification and distribution is subject to 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) * * This file implements the following: @@ -20,7 +20,7 @@ bool bcp_implementation::is_source_file(const fs::path& p) ".*\\." "(?:" "c|cxx|h|hxx|inc|inl|.?pp|yy?" - ")", + ")", boost::regex::perl | boost::regex::icase ); return boost::regex_match(p.filename().generic_string(), e); @@ -64,7 +64,7 @@ bool bcp_implementation::is_jam_file(const fs::path& p) "jam|v2" ")" "|" - "(Jamfile|Jamroot)\\.?", + "(Jamfile|Jamroot)\\.?", boost::regex::perl | boost::regex::icase ); return boost::regex_match(p.filename().generic_string(), e); From 44c37bc07408c9014a483007ea612e88f04aadf6 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Thu, 28 Mar 2024 00:55:42 -0500 Subject: [PATCH 14/20] Add modular lib directory dependencies. --- add_path.cpp | 62 ++++++++++++++++++++++++++++++++++------------------ bcp_imp.cpp | 18 +++++++-------- 2 files changed, 50 insertions(+), 30 deletions(-) diff --git a/add_path.cpp b/add_path.cpp index a69a2ef..cb89756 100644 --- a/add_path.cpp +++ b/add_path.cpp @@ -43,25 +43,45 @@ void bcp_implementation::add_path(const fs::path& p) void bcp_implementation::add_directory(const fs::path& p) { + auto is_good_path = [this](const fs::path& p) + { + // + // Don't add files created by build system: + // + if((p.filename() == "bin") || (p.filename() == "bin-stage")) + return false; + // + // Don't add version control directories: + // + if((p.filename() == "CVS") || (p.filename() == ".svn") || (p.filename() == ".git")) + return false; + // + // Don't add CI directories: + // + if((p.filename() == ".github") || (p.filename() == ".drone") + || (p.filename() == ".circleci") || (p.filename() == ".ci")) + return false; + // + // Don't add CI files: + // + if((p.filename() == ".travis.yml") || (p.filename() == "appveyor.yml") + || (p.filename() == ".drone.star") + || (p.filename() == ".drone.jsonnet") + || (p.filename() == ".cirrus.yml") + || (p.filename() == "azure-pipelines.yml")) + return false; + // + // don't add directories not under version control: + // + if(m_cvs_mode && !fs::exists(m_boost_path / p / "CVS/Entries")) + return false; + if(m_svn_mode && !fs::exists(m_boost_path / p / ".svn/entries")) + return false; + return true; + }; + if (!is_good_path(p)) return; // - // Don't add files created by build system: - // - if((p.filename() == "bin") || (p.filename() == "bin-stage")) - return; - // - // Don't add version control directories: - // - if((p.filename() == "CVS") || (p.filename() == ".svn")) - return; - // - // don't add directories not under version control: - // - if(m_cvs_mode && !fs::exists(m_boost_path / p / "CVS/Entries")) - return; - if(m_svn_mode && !fs::exists(m_boost_path / p / ".svn/entries")) - return; - // - // enermerate files and directories: + // enumerate files and directories: // fs::directory_iterator i(m_boost_path / p); fs::directory_iterator j; @@ -75,7 +95,7 @@ void bcp_implementation::add_directory(const fs::path& p) if(m_boost_path.string().size()) s.erase(0, m_boost_path.string().size() + 1); fs::path np = s; - if(!m_dependencies.count(np)) + if(is_good_path(np) && !m_dependencies.count(np)) { m_dependencies[np] = p; // set up dependency tree if (m_excluded.find(np) == m_excluded.end()) @@ -114,13 +134,13 @@ void bcp_implementation::add_file(const fs::path& p) // Modular libs top jamfile has references to all the user level // dependent libraries to also include. // - static const boost::regex e(">/boost/([a-zA-Z_]+)"); + static const boost::regex e(">/boost/([a-zA-Z0-9_]+)"); fileview view(m_boost_path / p); boost::regex_token_iterator i(view.begin(), view.end(), e, 1); boost::regex_token_iterator j; while(i != j) { - m_lib_names.insert(*i); + add_path(m_boost_path / "libs" / *i); ++i; } } diff --git a/bcp_imp.cpp b/bcp_imp.cpp index 88f3a32..189d7c4 100644 --- a/bcp_imp.cpp +++ b/bcp_imp.cpp @@ -1,8 +1,8 @@ /* * * Copyright (c) 2003 Dr John Maddock - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying file + * Use, modification and distribution is subject to 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) * * This file implements the bcp_implementation virtuals. @@ -18,8 +18,8 @@ #include bcp_implementation::bcp_implementation() - : m_list_mode(false), m_list_summary_mode(false), m_license_mode(false), m_cvs_mode(false), - m_svn_mode(false), m_unix_lines(false), m_scan_mode(false), m_bsl_convert_mode(false), + : m_list_mode(false), m_list_summary_mode(false), m_license_mode(false), m_cvs_mode(false), + m_svn_mode(false), m_unix_lines(false), m_scan_mode(false), m_bsl_convert_mode(false), m_bsl_summary_mode(false), m_namespace_alias(false), m_list_namespaces(false) { } @@ -80,8 +80,8 @@ void bcp_implementation::enable_unix_lines() void bcp_implementation::set_boost_path(const char* p) { - // Hack to strip trailing slashes from the path - m_boost_path = (fs::path(p) / "boost").parent_path(); + // Hack to strip trailing slashes from the path + m_boost_path = (fs::path(p) / "boost").parent_path(); fs::path check = m_boost_path / "boost" / "version.hpp"; if(!fs::exists(check)) { @@ -124,8 +124,8 @@ void bcp_implementation::add_excluded(const char* p) { std::cerr << "CAUTION: excluded path " << p << " does not exist." << std::endl; return; - } - m_excluded.insert(p); + } + m_excluded.insert(p); } fs::path get_short_path(const fs::path& p) @@ -202,7 +202,7 @@ int bcp_implementation::run() fs::path exmodule; module = fs::path(*i); exmodule = fs::path(*i + ".hpp"); - + if(m_scan_mode) { // in scan mode each module must be a real file: From 22d33a10797ce898b419c8af7b95a6a1c1cb8a73 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Wed, 3 Apr 2024 20:58:43 -0500 Subject: [PATCH 15/20] Look for lib references in all build files in a lib dir. --- add_path.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/add_path.cpp b/add_path.cpp index cb89756..c4d071a 100644 --- a/add_path.cpp +++ b/add_path.cpp @@ -128,7 +128,7 @@ void bcp_implementation::add_file(const fs::path& p) { add_file_dependencies(p, false); } - if(is_jam_file(p) && *p.begin() == "libs" && (std::distance(p.begin(), p.end()) == 3)) + if(is_jam_file(p) && *p.begin() == "libs" && (std::distance(p.begin(), p.end()) >= 3)) { // // Modular libs top jamfile has references to all the user level @@ -140,7 +140,11 @@ void bcp_implementation::add_file(const fs::path& p) boost::regex_token_iterator j; while(i != j) { - add_path(m_boost_path / "libs" / *i); + if (*i == "numeric_conversion") add_path(m_boost_path / "libs/numeric/conversion"); + else if (*i == "interval") add_path(m_boost_path / "libs/numeric/interval"); + else if (*i == "odeint") add_path(m_boost_path / "libs/numeric/odeint"); + else if (*i == "ublas") add_path(m_boost_path / "libs/numeric/ublas"); + else add_path(m_boost_path / "libs" / *i); ++i; } } From 3d7141d204793a582076f4e37a0a0e8be05ab388 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Thu, 4 Apr 2024 08:58:28 -0500 Subject: [PATCH 16/20] Add some debug logs. --- add_path.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/add_path.cpp b/add_path.cpp index c4d071a..49dd050 100644 --- a/add_path.cpp +++ b/add_path.cpp @@ -134,12 +134,14 @@ void bcp_implementation::add_file(const fs::path& p) // Modular libs top jamfile has references to all the user level // dependent libraries to also include. // + auto lib = *(++p.begin()); static const boost::regex e(">/boost/([a-zA-Z0-9_]+)"); fileview view(m_boost_path / p); boost::regex_token_iterator i(view.begin(), view.end(), e, 1); boost::regex_token_iterator j; while(i != j) { + std::cout << "INFO: Adding modular lib reference from: " << lib << " to: " << *i << "\n"; if (*i == "numeric_conversion") add_path(m_boost_path / "libs/numeric/conversion"); else if (*i == "interval") add_path(m_boost_path / "libs/numeric/interval"); else if (*i == "odeint") add_path(m_boost_path / "libs/numeric/odeint"); From 079be8c10e5684b9cb268bf3a48de5dd8c8dde3f Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Fri, 5 Apr 2024 09:11:51 -0500 Subject: [PATCH 17/20] Add self reference of modular libs. --- add_path.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/add_path.cpp b/add_path.cpp index 49dd050..3eac960 100644 --- a/add_path.cpp +++ b/add_path.cpp @@ -131,7 +131,7 @@ void bcp_implementation::add_file(const fs::path& p) if(is_jam_file(p) && *p.begin() == "libs" && (std::distance(p.begin(), p.end()) >= 3)) { // - // Modular libs top jamfile has references to all the user level + // Modular libs jamfile(s) have references to all the user level // dependent libraries to also include. // auto lib = *(++p.begin()); @@ -149,6 +149,7 @@ void bcp_implementation::add_file(const fs::path& p) else add_path(m_boost_path / "libs" / *i); ++i; } + add_path(m_boost_path / "libs" / lib); } else if(is_jam_file(p) && m_namespace_name.size() && ((std::distance(p.begin(), p.end()) < 3) || (*p.begin() != "tools") || (*++p.begin() != "build"))) { From c06add0b1d365e3bdcbce08e70ac266489111dff Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Tue, 23 Apr 2024 22:51:03 -0500 Subject: [PATCH 18/20] Build the dist target for tools by default. --- Jamfile.v2 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Jamfile.v2 b/Jamfile.v2 index 61b1379..3de6fd6 100644 --- a/Jamfile.v2 +++ b/Jamfile.v2 @@ -12,8 +12,7 @@ DIST_DIR ?= [ path.join $(BOOST_ROOT) dist ] ; DIST_DIR ?= dist ; DIST_DIR = [ path.root [ path.make $(DIST_DIR) ] [ path.pwd ] ] ; -project /boost/bcp - ; +project /boost/bcp ; explicit [ exe bcp @@ -29,6 +28,8 @@ explicit : bcp/static : EXE $(DIST_DIR)/bin : release ] - [ alias dist : dist-bin ] - [ alias all : bcp test dist ] + [ alias all : bcp test dist-bin ] ; + +# Install distribution files/execs by default. +alias dist : dist-bin ; From f2dddf0fccadca0f44ce137e2e8fb74cb5662145 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sun, 5 May 2024 09:00:58 -0500 Subject: [PATCH 19/20] Add requires-b2 check to top-level build file. --- Jamfile.v2 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Jamfile.v2 b/Jamfile.v2 index 3de6fd6..a0a5179 100644 --- a/Jamfile.v2 +++ b/Jamfile.v2 @@ -3,6 +3,8 @@ # Distributed under the Boost Software License, Version 1.0. # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) +require-b2 5.1 ; + import option ; import path ; From eea22944d932222870c6b18d67e94e299e76e051 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sun, 16 Jun 2024 14:28:05 -0500 Subject: [PATCH 20/20] Increment b2 version require. --- Jamfile.v2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jamfile.v2 b/Jamfile.v2 index a0a5179..86de9fe 100644 --- a/Jamfile.v2 +++ b/Jamfile.v2 @@ -3,7 +3,7 @@ # Distributed under the Boost Software License, Version 1.0. # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) -require-b2 5.1 ; +require-b2 5.2 ; import option ; import path ;