diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6663599..b145548 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,27 +1,31 @@ # 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) name: CI on: + pull_request: push: branches: - master - develop - pull_request: - release: - types: [published, created, edited] + - feature/** + - modular 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,19 +33,24 @@ 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: | + 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}" + 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 - 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 @@ -50,7 +59,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 diff --git a/Jamfile.v2 b/Jamfile.v2 index b89a153..86de9fe 100644 --- a/Jamfile.v2 +++ b/Jamfile.v2 @@ -1,36 +1,37 @@ # (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) -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 - ; +require-b2 5.2 ; -install dist-bin - : - bcp - : - EXE - ../../dist/bin - : - release - ; +import option ; +import path ; + +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 ] ] ; + +project /boost/bcp ; -install dist-lib - : - bcp - : - LIB - ../../dist/lib - : - release +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 all : bcp test dist-bin ] ; +# Install distribution files/execs by default. +alias dist : dist-bin ; 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..6c0b730 100644 --- a/add_path.cpp +++ b/add_path.cpp @@ -1,8 +1,9 @@ /* * * Copyright (c) 2003 Dr John Maddock - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying file + * 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) * * This file implements the following: @@ -15,6 +16,7 @@ #include "bcp_imp.hpp" #include "fileview.hpp" #include +#include #include #include #include @@ -24,8 +26,7 @@ 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(); + fs::path normalized_path = p.lexically_normal(); if(fs::exists(m_boost_path / normalized_path)) { if(fs::is_directory(m_boost_path / normalized_path)) @@ -42,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.leaf() == "bin") || (p.leaf() == "bin-stage")) - return; - // - // Don't add version control directories: - // - if((p.leaf() == "CVS") || (p.leaf() == ".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; @@ -74,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()) @@ -107,7 +128,30 @@ 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 jamfile(s) have 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"); + else if (*i == "ublas") add_path(m_boost_path / "libs/numeric/ublas"); + 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"))) { // // We're doing a rename of namespaces and library names @@ -180,8 +224,8 @@ 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); - if(!m_dependencies.count(dep)) + fs::path dep(p.parent_path() / s); + if(!m_dependencies.count(dep)) { m_dependencies[dep] = p; // set up dependency tree add_pending_path(dep); @@ -196,12 +240,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 +264,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 +280,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"), @@ -271,7 +310,8 @@ static const std::pair std::pair("boost/test/detail/config.hpp", "libs/test/src"), std::pair("boost/test/detail/config.hpp", "libs/test/build"), std::pair("boost/test/detail/config.hpp", "libs/predef/build.jam"), - std::pair("boost/test/detail/config.hpp", "libs/predef/check"), + std::pair("boost/test/detail/config.hpp", "libs/predef/tools/check"), + std::pair("boost/test/detail/config.hpp", "libs/predef/check"), // libs/predef/check if obsolete, but may still be used std::pair("boost/typeof.hpp", "boost/typeof/incr_registration_group.hpp"), std::pair("boost/function_types/detail/pp_loop.hpp", "boost/function_types/detail/pp_cc_loop"), std::pair("boost/function_types/components.hpp", "boost/function_types/detail/components_impl"), @@ -299,13 +339,15 @@ 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) { 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); @@ -321,7 +363,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; @@ -355,18 +397,18 @@ 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)) { - if(!m_dependencies.count(include_file)) + if(!m_dependencies.count(include_file)) { m_dependencies[include_file] = p; add_pending_path(include_file); @@ -405,18 +447,18 @@ 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)) { - if(!m_dependencies.count(include_file)) + if(!m_dependencies.count(include_file)) { m_dependencies[include_file] = p; add_pending_path(include_file); @@ -432,7 +474,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[] = { @@ -540,7 +582,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: // @@ -582,4 +624,4 @@ void bcp_implementation::add_file_dependencies(const fs::path& p, bool scanfile) ++i; } } -} +} \ No newline at end of file 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: diff --git a/bcp_imp.hpp b/bcp_imp.hpp index e515581..51c85ba 100644 --- a/bcp_imp.hpp +++ b/bcp_imp.hpp @@ -14,6 +14,7 @@ #include #include #include +#include #include namespace fs = boost::filesystem; diff --git a/copy_path.cpp b/copy_path.cpp index 4143c79..6b7a370 100644 --- a/copy_path.cpp +++ b/copy_path.cpp @@ -49,18 +49,18 @@ void bcp_implementation::copy_path(const fs::path& p) if(fs::exists(m_dest_path / p)) { std::cout << "Copying (and overwriting) file: " << p.string() << "\n"; - fs::remove(m_dest_path / p); + fs::remove(m_dest_path / p); } else std::cout << "Copying file: " << p.string() << "\n"; // // 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..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); @@ -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); } @@ -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); 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; }