diff --git a/.github/workflows/check_quick.yml b/.github/workflows/check_quick.yml index ace8585..0bcae63 100644 --- a/.github/workflows/check_quick.yml +++ b/.github/workflows/check_quick.yml @@ -19,6 +19,7 @@ jobs: - ubuntu:22.04 - ubuntu:24.04 - ubuntu:25.04 + - ubuntu:25.10 shared: [ ON, OFF ] container: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1b9060d..6ab259e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -45,7 +45,9 @@ jobs: python: ON mpi: OFF - os: ubuntu-latest - shared: ON + shared: OFF + # shared: ON doesn't work for Range and Xpressive tests + # static is forced in test/Jamfile there testing: ON layout: system python: OFF @@ -507,7 +509,7 @@ jobs: cd .. git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root cd boost-root - git submodule update --init libs/core libs/assert libs/config libs/static_assert libs/throw_exception + git submodule update --init libs/core libs/assert libs/config libs/throw_exception rm -rf tools/cmake/* cp -r $GITHUB_WORKSPACE/* tools/cmake @@ -540,7 +542,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ ubuntu-22.04, ubuntu-24.04, macos-13, macos-14, macos-15 ] + os: [ ubuntu-22.04, ubuntu-24.04, macos-14, macos-15, macos-26 ] shared: [ ON, OFF ] runs-on: ${{matrix.os}} @@ -623,15 +625,15 @@ jobs: - os: ubuntu-24.04 include: timer shared: ON - - os: macos-13 - include: timer - shared: ON - os: macos-14 include: timer shared: ON - os: macos-15 include: timer shared: ON + - os: macos-26 + include: timer + shared: ON runs-on: ${{matrix.os}} @@ -669,7 +671,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ ubuntu-22.04, ubuntu-24.04, macos-13, macos-14, macos-15 ] + os: [ ubuntu-22.04, ubuntu-24.04, macos-14, macos-15, macos-26 ] shared: [ ON, OFF ] runs-on: ${{matrix.os}} diff --git a/.github/workflows/cmake_versions.yml b/.github/workflows/cmake_versions.yml index 6c8235a..31c0fe5 100644 --- a/.github/workflows/cmake_versions.yml +++ b/.github/workflows/cmake_versions.yml @@ -52,6 +52,7 @@ jobs: - 3.31.9 - 4.0.4 - 4.1.2 + - 4.2.3 runs-on: ubuntu-latest @@ -82,7 +83,9 @@ jobs: key: ${{ runner.os }}-cmake-${{matrix.cmake_version}} - name: Install CMake dependencies - run: sudo apt-get -o Acquire::Retries=3 -y -q --no-install-suggests --no-install-recommends install curl libcurl4-openssl-dev libarchive-dev + run: | + sudo apt-get update + sudo apt-get -o Acquire::Retries=3 -y -q --no-install-suggests --no-install-recommends install curl libcurl4-openssl-dev libarchive-dev - name: Build CMake if: steps.cache-cmake.outputs.cache-hit != 'true' @@ -118,7 +121,6 @@ jobs: fi done # Libraries that don't declare their correct minimal required CMake version or where dependencies require higher version - version_greater_equal ${{matrix.cmake_version}} 3.12.0 || excluded+=("msm") - version_greater_equal ${{matrix.cmake_version}} 3.14.0 || excluded+=("pfr" "mysql") # mysql depends on pfr + # Example: version_greater_equal ${{matrix.cmake_version}} 3.12.0 || excluded+=("name") /tmp/cmake/bin/cmake --version /tmp/cmake/bin/cmake -DBUILD_TESTING=${{matrix.enable_test}} -DBOOST_EXCLUDE_LIBRARIES="$(IFS=';'; echo "${excluded[*]}")" -B "__build_cmake-$version" . diff --git a/.github/workflows/include_library.yml b/.github/workflows/include_library.yml index 29a09df..a8cb9d7 100644 --- a/.github/workflows/include_library.yml +++ b/.github/workflows/include_library.yml @@ -48,6 +48,7 @@ jobs: - coroutine2 - crc - date_time + - decimal - describe - detail - dll @@ -136,6 +137,7 @@ jobs: - numeric/interval - numeric/odeint - numeric/ublas + - openmethod - optional - outcome - parameter diff --git a/README.md b/README.md index 5b86569..8f6ce3f 100644 --- a/README.md +++ b/README.md @@ -293,6 +293,14 @@ are given below. When ON, enables the Windows API backend. Defaults to ON under Windows, OFF otherwise. +### Math + +* `BOOST_MATH_BUILD_WITH_LEGACY_FUNCTIONS` + + When ON, builds the C99/TR1 targets as: `boost_math_c99f` `boost_math_c99`, `boost_math_c99l` (if your platform has long double support), + `boost_math_tr1f`, `boost_math_tr1`, and `boost_math_tr1l` (if your platform has long double support). + With CMake Version >= 3.13 these 4-6 targets can be linked with the single target `boost_math_legacy_targets`. Defaults to OFF. + ### Stacktrace * `BOOST_STACKTRACE_ENABLE_NOOP` diff --git a/include/BoostRoot.cmake b/include/BoostRoot.cmake index c7897a3..25bcbc4 100644 --- a/include/BoostRoot.cmake +++ b/include/BoostRoot.cmake @@ -248,7 +248,7 @@ function(__boost_scan_dependencies lib var sub_folder) if(dep STREQUAL "headers" OR dep STREQUAL "boost" OR dep MATCHES "linking") continue() endif() - if(dep MATCHES "unit_test_framework|prg_exec_monitor|test_exec_monitor") + if(dep MATCHES "(included_)?(unit_test_framework|prg_exec_monitor|test_exec_monitor)") set(dep "test") elseif(dep STREQUAL "numpy") set(dep "python") @@ -407,11 +407,11 @@ foreach(__boost_lib_cml IN LISTS __boost_libraries) if(__boost_lib IN_LIST BOOST_INCOMPATIBLE_LIBRARIES) - boost_message(DEBUG "Skipping incompatible Boost library ${__boost_lib}") + boost_message(DEBUG "Skipping incompatible Boost library '${__boost_lib}'") elseif(__boost_lib IN_LIST BOOST_EXCLUDE_LIBRARIES) - boost_message(DEBUG "Skipping excluded Boost library ${__boost_lib}") + boost_message(DEBUG "Skipping excluded Boost library '${__boost_lib}'") elseif(NOT BOOST_ENABLE_MPI AND __boost_lib IN_LIST __boost_mpi_libs) @@ -421,11 +421,11 @@ foreach(__boost_lib_cml IN LISTS __boost_libraries) elseif(NOT BOOST_INCLUDE_LIBRARIES) - message(STATUS "Skipping Boost library ${__boost_lib}, BOOST_ENABLE_MPI is OFF") + message(STATUS "Skipping Boost library '${__boost_lib}', BOOST_ENABLE_MPI is OFF") else() - boost_message(DEBUG "Skipping Boost library ${__boost_lib}, BOOST_ENABLE_MPI is OFF") + boost_message(DEBUG "Skipping Boost library '${__boost_lib}', BOOST_ENABLE_MPI is OFF") endif() @@ -437,17 +437,17 @@ foreach(__boost_lib_cml IN LISTS __boost_libraries) elseif(NOT BOOST_INCLUDE_LIBRARIES) - message(STATUS "Skipping Boost library ${__boost_lib}, BOOST_ENABLE_PYTHON is OFF") + message(STATUS "Skipping Boost library '${__boost_lib}', BOOST_ENABLE_PYTHON is OFF") else() - boost_message(DEBUG "Skipping Boost library ${__boost_lib}, BOOST_ENABLE_PYTHON is OFF") + boost_message(DEBUG "Skipping Boost library '${__boost_lib}', BOOST_ENABLE_PYTHON is OFF") endif() elseif(NOT BOOST_INCLUDE_LIBRARIES OR __boost_lib IN_LIST BOOST_INCLUDE_LIBRARIES) - boost_message(VERBOSE "Adding Boost library ${__boost_lib}") + boost_message(VERBOSE "Adding Boost library '${__boost_lib}'") add_subdirectory(libs/${__boost_lib}) __boost_auto_install(${__boost_lib}) @@ -466,7 +466,7 @@ foreach(__boost_lib_cml IN LISTS __boost_libraries) set(CMAKE_FOLDER "Dependencies") endif() - boost_message(VERBOSE "Adding Boost dependency ${__boost_lib}") + boost_message(VERBOSE "Adding Boost dependency '${__boost_lib}'") add_subdirectory(libs/${__boost_lib}) __boost_auto_install(${__boost_lib}) @@ -491,7 +491,7 @@ foreach(__boost_lib_cml IN LISTS __boost_libraries) set(CMAKE_FOLDER "Test Dependencies") endif() - boost_message(DEBUG "Adding Boost test dependency ${__boost_lib} with EXCLUDE_FROM_ALL") + boost_message(DEBUG "Adding Boost test dependency '${__boost_lib}' with EXCLUDE_FROM_ALL") add_subdirectory(libs/${__boost_lib} EXCLUDE_FROM_ALL) set(BUILD_TESTING ${__boost_build_testing}) diff --git a/test/boost_fetch/CMakeLists.txt b/test/boost_fetch/CMakeLists.txt index ab8ad73..05bd925 100644 --- a/test/boost_fetch/CMakeLists.txt +++ b/test/boost_fetch/CMakeLists.txt @@ -16,7 +16,6 @@ set(BUILD_TESTING OFF) # hide cache variable boost_fetch(boostorg/assert TAG develop EXCLUDE_FROM_ALL) boost_fetch(boostorg/config TAG develop EXCLUDE_FROM_ALL) boost_fetch(boostorg/core TAG develop EXCLUDE_FROM_ALL) -boost_fetch(boostorg/static_assert TAG develop EXCLUDE_FROM_ALL) boost_fetch(boostorg/throw_exception TAG develop EXCLUDE_FROM_ALL) unset(BUILD_TESTING) diff --git a/test/boost_test/CMakeLists.txt b/test/boost_test/CMakeLists.txt index f08927d..d862215 100644 --- a/test/boost_test/CMakeLists.txt +++ b/test/boost_test/CMakeLists.txt @@ -13,7 +13,6 @@ set(BUILD_TESTING OFF) # hide cache variable add_subdirectory(../../../../libs/assert EXCLUDE_FROM_ALL boostorg/assert) add_subdirectory(../../../../libs/config EXCLUDE_FROM_ALL boostorg/config) add_subdirectory(../../../../libs/core EXCLUDE_FROM_ALL boostorg/core) -add_subdirectory(../../../../libs/static_assert EXCLUDE_FROM_ALL boostorg/static_assert) add_subdirectory(../../../../libs/throw_exception EXCLUDE_FROM_ALL boostorg/throw_exception) unset(BUILD_TESTING)