From d3c2300fe143b6f8eded353dd881d4709e4431e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Falk?= Date: Tue, 6 Aug 2024 20:33:20 +0200 Subject: [PATCH 1/7] Update 'Boost' to v1.84.0 Release notes: https://www.boost.org/users/history/version_1_84_0.html --- cmake/configs/default.cmake | 2 +- cmake/projects/Boost/hunter.cmake | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/cmake/configs/default.cmake b/cmake/configs/default.cmake index 926ba8c0d9..d3dda9b938 100644 --- a/cmake/configs/default.cmake +++ b/cmake/configs/default.cmake @@ -38,7 +38,7 @@ if(MINGW) # https://github.com/boostorg/build/issues/301 hunter_default_version(Boost VERSION 1.64.0) else() - hunter_default_version(Boost VERSION 1.83.0) + hunter_default_version(Boost VERSION 1.84.0) endif() hunter_default_version(BoostCompute VERSION 0.5-p0) diff --git a/cmake/projects/Boost/hunter.cmake b/cmake/projects/Boost/hunter.cmake index 5b6a31b49c..6e18cc977f 100644 --- a/cmake/projects/Boost/hunter.cmake +++ b/cmake/projects/Boost/hunter.cmake @@ -528,6 +528,17 @@ hunter_add_version( 75b1f569134401d178ad2aaf97a2993898dd7ee3 ) +hunter_add_version( + PACKAGE_NAME + Boost + VERSION + "1.84.0" + URL + "https://archives.boost.io/release/1.84.0/source/boost_1_84_0.tar.bz2" + SHA1 + 734dcfb452380a4d6304060dc2ed983668dd290f +) + if(MSVC) hunter_check_toolchain_definition(NAME "_DLL" DEFINED _hunter_vs_md) hunter_cmake_args( From 01be551ed5c3324822456bc1eccf350777db45b2 Mon Sep 17 00:00:00 2001 From: Dominik Nussbaumer <4436784+tnixeu@users.noreply.github.com> Date: Tue, 18 Feb 2025 17:25:34 +0100 Subject: [PATCH 2/7] Update libraries and tests for Boost v1.84.0 * Add example for boost::conbalt * Add Boost::cobalt to test matrix * Add example for Boost::redis * Add Boost::redis to test matrix --- cmake/modules/hunter_get_boost_libs.cmake | 1 + cmake/projects/Boost/ci/matrix.json | 26 ++++++++++++ cmake/projects/Boost/cobalt/hunter.cmake | 22 ++++++++++ cmake/projects/Boost/generate.sh | 1 + examples/Boost-cobalt/CMakeLists.txt | 21 ++++++++++ examples/Boost-cobalt/foo.cpp | 14 +++++++ examples/Boost-cobalt/toolchain.cmake | 2 + examples/Boost-redis/CMakeLists.txt | 30 +++++++++++++ examples/Boost-redis/foo.cpp | 51 +++++++++++++++++++++++ examples/Boost-redis/toolchain.cmake | 2 + 10 files changed, 170 insertions(+) create mode 100644 cmake/projects/Boost/cobalt/hunter.cmake create mode 100644 examples/Boost-cobalt/CMakeLists.txt create mode 100644 examples/Boost-cobalt/foo.cpp create mode 100644 examples/Boost-cobalt/toolchain.cmake create mode 100644 examples/Boost-redis/CMakeLists.txt create mode 100644 examples/Boost-redis/foo.cpp create mode 100644 examples/Boost-redis/toolchain.cmake diff --git a/cmake/modules/hunter_get_boost_libs.cmake b/cmake/modules/hunter_get_boost_libs.cmake index ec804d17d1..457423f5e8 100644 --- a/cmake/modules/hunter_get_boost_libs.cmake +++ b/cmake/modules/hunter_get_boost_libs.cmake @@ -53,6 +53,7 @@ function(hunter_get_boost_libs) # DOCUMENTATION_START { hunter_append_component(${common_args} COMPONENT atomic SINCE 1.53.0) hunter_append_component(${common_args} COMPONENT chrono SINCE 1.47.0) + hunter_append_component(${common_args} COMPONENT cobalt SINCE 1.84.0) hunter_append_component(${common_args} COMPONENT container SINCE 1.56.0) hunter_append_component(${common_args} COMPONENT context SINCE 1.51.0) hunter_append_component(${common_args} COMPONENT contract SINCE 1.67.0) diff --git a/cmake/projects/Boost/ci/matrix.json b/cmake/projects/Boost/ci/matrix.json index 1f152a18c3..5c78ec0185 100644 --- a/cmake/projects/Boost/ci/matrix.json +++ b/cmake/projects/Boost/ci/matrix.json @@ -46,6 +46,19 @@ { "example": "Boost-chrono-useBoostConfig", "toolchain": "mingw-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, { "example": "Boost-chrono-useBoostConfig", "toolchain": "msys-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +{ "example": "Boost-cobalt", "toolchain": "clang-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +//{ "example": "Boost-cobalt", "toolchain": "gcc-7-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +// { "example": "Boost-cobalt", "toolchain": "gcc-8-cxx17-fpic", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +// { "example": "Boost-cobalt", "toolchain": "gcc-9-cxx17-fpic", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +//{ "example": "Boost-cobalt", "toolchain": "android-ndk-r17-api-24-arm64-v8a-clang-libcxx14", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +// { "example": "Boost-cobalt", "toolchain": "osx-12-3-arch-universal2-cxx17", "os": "macos-12", "python": "3.8", "script": "build.sh" }, +//{ "example": "Boost-cobalt", "toolchain": "ios-nocodesign-15-5-arm64-cxx17", "os": "macos-12", "python": "3.8", "script": "build.sh" }, +// { "example": "Boost-cobalt", "toolchain": "ninja-vs-16-2019-win64-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +//{ "example": "Boost-cobalt", "toolchain": "nmake-vs-16-2019-win64-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +// { "example": "Boost-cobalt", "toolchain": "vs-16-2019-win64-sdk-10-0-18362-0-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +//{ "example": "Boost-cobalt", "toolchain": "mingw-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +//{ "example": "Boost-cobalt", "toolchain": "msys-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, + // { "example": "Boost-container", "toolchain": "clang-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, { "example": "Boost-container", "toolchain": "gcc-7-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, // { "example": "Boost-container", "toolchain": "gcc-8-cxx17-fpic", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, @@ -180,6 +193,19 @@ { "example": "Boost-random", "toolchain": "mingw-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, { "example": "Boost-random", "toolchain": "msys-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +//{ "example": "Boost-redis", "toolchain": "clang-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +// { "example": "Boost-redis", "toolchain": "gcc-7-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +// { "example": "Boost-redis", "toolchain": "gcc-8-cxx17-fpic", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +// { "example": "Boost-redis", "toolchain": "gcc-9-cxx17-fpic", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +//{ "example": "Boost-redis", "toolchain": "android-ndk-r17-api-24-arm64-v8a-clang-libcxx14", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +// { "example": "Boost-redis", "toolchain": "osx-12-3-arch-universal2-cxx17", "os": "macos-12", "python": "3.8", "script": "build.sh" }, +//{ "example": "Boost-redis", "toolchain": "ios-nocodesign-15-5-arm64-cxx17", "os": "macos-12", "python": "3.8", "script": "build.sh" }, +//{ "example": "Boost-redis", "toolchain": "ninja-vs-16-2019-win64-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +// { "example": "Boost-redis", "toolchain": "nmake-vs-16-2019-win64-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +//{ "example": "Boost-redis", "toolchain": "vs-16-2019-win64-sdk-10-0-18362-0-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +//{ "example": "Boost-redis", "toolchain": "mingw-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +//{ "example": "Boost-redis", "toolchain": "msys-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, + // { "example": "Boost-serialization", "toolchain": "clang-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, // { "example": "Boost-serialization", "toolchain": "gcc-7-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, // { "example": "Boost-serialization", "toolchain": "gcc-8-cxx17-fpic", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, diff --git a/cmake/projects/Boost/cobalt/hunter.cmake b/cmake/projects/Boost/cobalt/hunter.cmake new file mode 100644 index 0000000000..306ac0d79a --- /dev/null +++ b/cmake/projects/Boost/cobalt/hunter.cmake @@ -0,0 +1,22 @@ +# Copyright (c) 2013, Ruslan Baratov +# All rights reserved. + +# !!! DO NOT PLACE HEADER GUARDS HERE !!! + +include(hunter_download) +include(hunter_pick_scheme) + +hunter_pick_scheme( + DEFAULT + url_sha1_boost_library + IPHONEOS + url_sha1_boost_ios_library +) + +hunter_download( + PACKAGE_NAME + Boost + PACKAGE_COMPONENT + cobalt + PACKAGE_INTERNAL_DEPS_ID "50" +) diff --git a/cmake/projects/Boost/generate.sh b/cmake/projects/Boost/generate.sh index e46126a480..55ed4226ae 100755 --- a/cmake/projects/Boost/generate.sh +++ b/cmake/projects/Boost/generate.sh @@ -7,6 +7,7 @@ BOOST_LIBS=" atomic chrono + cobalt container context contract diff --git a/examples/Boost-cobalt/CMakeLists.txt b/examples/Boost-cobalt/CMakeLists.txt new file mode 100644 index 0000000000..d04cd92fb7 --- /dev/null +++ b/examples/Boost-cobalt/CMakeLists.txt @@ -0,0 +1,21 @@ +# Copyright (c) 2025, Dominik Nussbaumer +# All rights reserved. + +cmake_minimum_required(VERSION 3.10) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(Boost_DEBUG ON CACHE BOOLEAN "") +set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/../Boost-useBoostConfig/config.cmake) + +set(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/toolchain.cmake" + CACHE FILEPATH "Path to CMake toolchain file") +# Emulate HunterGate: +# * https://github.com/cpp-pm/gate +include("../common.cmake") + +project(download-boost) + +hunter_add_package(Boost COMPONENTS cobalt) +find_package(Boost CONFIG REQUIRED cobalt) + +add_executable(foo foo.cpp) +target_link_libraries(foo PUBLIC Boost::cobalt) diff --git a/examples/Boost-cobalt/foo.cpp b/examples/Boost-cobalt/foo.cpp new file mode 100644 index 0000000000..958936d328 --- /dev/null +++ b/examples/Boost-cobalt/foo.cpp @@ -0,0 +1,14 @@ +// https://www.boost.org/doc/libs/1_87_0/libs/cobalt/doc/html/index.html + +#include +#include +#include + +using namespace boost; + +cobalt::main co_main(int argc, char *argv[]) { + auto exec = co_await cobalt::this_coro::executor; + asio::steady_timer tim{exec, std::chrono::milliseconds(50)}; + co_await tim.async_wait(cobalt::use_op); + co_return 0; +} diff --git a/examples/Boost-cobalt/toolchain.cmake b/examples/Boost-cobalt/toolchain.cmake new file mode 100644 index 0000000000..7a5239cd9b --- /dev/null +++ b/examples/Boost-cobalt/toolchain.cmake @@ -0,0 +1,2 @@ +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/examples/Boost-redis/CMakeLists.txt b/examples/Boost-redis/CMakeLists.txt new file mode 100644 index 0000000000..2bfddf5151 --- /dev/null +++ b/examples/Boost-redis/CMakeLists.txt @@ -0,0 +1,30 @@ +# Copyright (c) 2025, Dominik Nussbaumer +# All rights reserved. + +cmake_minimum_required(VERSION 3.10) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(Boost_DEBUG ON CACHE BOOLEAN "") +set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/../Boost-useBoostConfig/config.cmake) + +set(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/toolchain.cmake" + CACHE FILEPATH "Path to CMake toolchain file") +# Emulate HunterGate: +# * https://github.com/cpp-pm/gate +include("../common.cmake") + +project(download-boost) + +hunter_add_package(Boost) +find_package(Boost CONFIG REQUIRED) + +add_executable(foo foo.cpp) +target_link_libraries(foo PUBLIC Boost::boost) + +find_package(Threads REQUIRED) +find_package(OpenSSL REQUIRED) +target_link_libraries(foo + PUBLIC + Threads::Threads + OpenSSL::Crypto + OpenSSL::SSL +) diff --git a/examples/Boost-redis/foo.cpp b/examples/Boost-redis/foo.cpp new file mode 100644 index 0000000000..9d484d2453 --- /dev/null +++ b/examples/Boost-redis/foo.cpp @@ -0,0 +1,51 @@ +#include +#include +#include +#include +#include +#include + +#include + +namespace asio = boost::asio; +using boost::redis::config; +using boost::redis::connection; +using boost::redis::logger; +using boost::redis::request; +using boost::redis::response; + +auto co_main(config cfg) -> asio::awaitable { + auto conn = std::make_shared(co_await asio::this_coro::executor); + conn->async_run(cfg, {logger::level::debug}, + asio::consign(asio::detached, conn)); + + // A request containing only a ping command. + request req; + req.push("PING", "Hello world"); + + // Response where the PONG response will be stored. + response resp; + + // Executes the request. + co_await conn->async_exec(req, resp, asio::deferred); + conn->cancel(); + + std::cout << "PING: " << std::get<0>(resp).value() << std::endl; +} + +auto main(int argc, char *argv[]) -> int { + try { + config cfg; + + asio::io_context ioc; + asio::co_spawn(ioc, co_main(cfg), [](std::exception_ptr p) { + if (p) + std::rethrow_exception(p); + }); + ioc.run(); + + } catch (std::exception const &e) { + std::cerr << "(main) " << e.what() << std::endl; + return 1; + } +} diff --git a/examples/Boost-redis/toolchain.cmake b/examples/Boost-redis/toolchain.cmake new file mode 100644 index 0000000000..7a5239cd9b --- /dev/null +++ b/examples/Boost-redis/toolchain.cmake @@ -0,0 +1,2 @@ +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) From d81462729c2b373fca33088ebea74329c6426bbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Falk?= Date: Tue, 6 Aug 2024 20:35:49 +0200 Subject: [PATCH 3/7] Update 'Boost' to v1.85.0 Release notes: https://www.boost.org/users/history/version_1_85_0.html --- cmake/configs/default.cmake | 2 +- cmake/projects/Boost/hunter.cmake | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/cmake/configs/default.cmake b/cmake/configs/default.cmake index d3dda9b938..034b1a8aec 100644 --- a/cmake/configs/default.cmake +++ b/cmake/configs/default.cmake @@ -38,7 +38,7 @@ if(MINGW) # https://github.com/boostorg/build/issues/301 hunter_default_version(Boost VERSION 1.64.0) else() - hunter_default_version(Boost VERSION 1.84.0) + hunter_default_version(Boost VERSION 1.85.0) endif() hunter_default_version(BoostCompute VERSION 0.5-p0) diff --git a/cmake/projects/Boost/hunter.cmake b/cmake/projects/Boost/hunter.cmake index 6e18cc977f..273e4c0b4c 100644 --- a/cmake/projects/Boost/hunter.cmake +++ b/cmake/projects/Boost/hunter.cmake @@ -539,6 +539,17 @@ hunter_add_version( 734dcfb452380a4d6304060dc2ed983668dd290f ) +hunter_add_version( + PACKAGE_NAME + Boost + VERSION + "1.85.0" + URL + "https://archives.boost.io/release/1.85.0/source/boost_1_85_0.tar.bz2" + SHA1 + ed58c632befe0d299b39f9e23de1fc20d03870d7 +) + if(MSVC) hunter_check_toolchain_definition(NAME "_DLL" DEFINED _hunter_vs_md) hunter_cmake_args( From e3db3688625f4660ed921bf5d7739924b332a5fc Mon Sep 17 00:00:00 2001 From: Dominik Nussbaumer <4436784+tnixeu@users.noreply.github.com> Date: Wed, 19 Feb 2025 17:38:49 +0100 Subject: [PATCH 4/7] Update libraries and tests for Boost v1.85.0 * Add example for Boost::charconv * Add Boost::charconv to test matrix --- cmake/modules/hunter_get_boost_libs.cmake | 1 + cmake/projects/Boost/charconv/hunter.cmake | 22 ++++++++++++++++++++++ cmake/projects/Boost/ci/matrix.json | 13 +++++++++++++ cmake/projects/Boost/generate.sh | 1 + examples/Boost-charconv/CMakeLists.txt | 18 ++++++++++++++++++ examples/Boost-charconv/foo.cpp | 21 +++++++++++++++++++++ 6 files changed, 76 insertions(+) create mode 100644 cmake/projects/Boost/charconv/hunter.cmake create mode 100644 examples/Boost-charconv/CMakeLists.txt create mode 100644 examples/Boost-charconv/foo.cpp diff --git a/cmake/modules/hunter_get_boost_libs.cmake b/cmake/modules/hunter_get_boost_libs.cmake index 457423f5e8..a8566563a5 100644 --- a/cmake/modules/hunter_get_boost_libs.cmake +++ b/cmake/modules/hunter_get_boost_libs.cmake @@ -53,6 +53,7 @@ function(hunter_get_boost_libs) # DOCUMENTATION_START { hunter_append_component(${common_args} COMPONENT atomic SINCE 1.53.0) hunter_append_component(${common_args} COMPONENT chrono SINCE 1.47.0) + hunter_append_component(${common_args} COMPONENT charconv SINCE 1.85.0) hunter_append_component(${common_args} COMPONENT cobalt SINCE 1.84.0) hunter_append_component(${common_args} COMPONENT container SINCE 1.56.0) hunter_append_component(${common_args} COMPONENT context SINCE 1.51.0) diff --git a/cmake/projects/Boost/charconv/hunter.cmake b/cmake/projects/Boost/charconv/hunter.cmake new file mode 100644 index 0000000000..3b05609a3b --- /dev/null +++ b/cmake/projects/Boost/charconv/hunter.cmake @@ -0,0 +1,22 @@ +# Copyright (c) 2013, Ruslan Baratov +# All rights reserved. + +# !!! DO NOT PLACE HEADER GUARDS HERE !!! + +include(hunter_download) +include(hunter_pick_scheme) + +hunter_pick_scheme( + DEFAULT + url_sha1_boost_library + IPHONEOS + url_sha1_boost_ios_library +) + +hunter_download( + PACKAGE_NAME + Boost + PACKAGE_COMPONENT + charconv + PACKAGE_INTERNAL_DEPS_ID "50" +) diff --git a/cmake/projects/Boost/ci/matrix.json b/cmake/projects/Boost/ci/matrix.json index 5c78ec0185..55cb0c8123 100644 --- a/cmake/projects/Boost/ci/matrix.json +++ b/cmake/projects/Boost/ci/matrix.json @@ -46,6 +46,19 @@ { "example": "Boost-chrono-useBoostConfig", "toolchain": "mingw-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, { "example": "Boost-chrono-useBoostConfig", "toolchain": "msys-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +// { "example": "Boost-charconv", "toolchain": "clang-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +{ "example": "Boost-charconv", "toolchain": "gcc-7-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +// { "example": "Boost-charconv", "toolchain": "gcc-8-cxx17-fpic", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +// { "example": "Boost-charconv", "toolchain": "gcc-9-cxx17-fpic", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +{ "example": "Boost-charconv", "toolchain": "android-ndk-r17-api-24-arm64-v8a-clang-libcxx14", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +// { "example": "Boost-charconv", "toolchain": "osx-12-3-arch-universal2-cxx17", "os": "macos-12", "python": "3.8", "script": "build.sh" }, +{ "example": "Boost-charconv", "toolchain": "ios-nocodesign-15-5-arm64-cxx17", "os": "macos-12", "python": "3.8", "script": "build.sh" }, +// { "example": "Boost-charconv", "toolchain": "ninja-vs-16-2019-win64-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +//{ "example": "Boost-charconv", "toolchain": "nmake-vs-16-2019-win64-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +// { "example": "Boost-charconv", "toolchain": "vs-16-2019-win64-sdk-10-0-18362-0-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +//{ "example": "Boost-charconv", "toolchain": "mingw-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +//{ "example": "Boost-charconv", "toolchain": "msys-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, + { "example": "Boost-cobalt", "toolchain": "clang-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, //{ "example": "Boost-cobalt", "toolchain": "gcc-7-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, // { "example": "Boost-cobalt", "toolchain": "gcc-8-cxx17-fpic", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, diff --git a/cmake/projects/Boost/generate.sh b/cmake/projects/Boost/generate.sh index 55ed4226ae..44873b7c4d 100755 --- a/cmake/projects/Boost/generate.sh +++ b/cmake/projects/Boost/generate.sh @@ -7,6 +7,7 @@ BOOST_LIBS=" atomic chrono + charconv cobalt container context diff --git a/examples/Boost-charconv/CMakeLists.txt b/examples/Boost-charconv/CMakeLists.txt new file mode 100644 index 0000000000..bae0b90020 --- /dev/null +++ b/examples/Boost-charconv/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2025, Dominik Nussbaumer +# All rights reserved. + +cmake_minimum_required(VERSION 3.10) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(Boost_DEBUG ON CACHE BOOLEAN "") +set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/../Boost-useBoostConfig/config.cmake) + +# Emulate HunterGate: +# * https://github.com/cpp-pm/gate +include("../common.cmake") + +project(download-boost) +hunter_add_package(Boost COMPONENTS charconv) +find_package(Boost CONFIG REQUIRED charconv) + +add_executable(foo foo.cpp) +target_link_libraries(foo PUBLIC Boost::charconv) diff --git a/examples/Boost-charconv/foo.cpp b/examples/Boost-charconv/foo.cpp new file mode 100644 index 0000000000..14fd39c076 --- /dev/null +++ b/examples/Boost-charconv/foo.cpp @@ -0,0 +1,21 @@ +// Copyright 2022 Peter Dimov +// Distributed under the Boost Software License, Version 1.0. +// https://www.boost.org/LICENSE_1_0.txt + +// https://github.com/boostorg/charconv/blob/develop/test/quick.cpp + +#if defined(__GNUC__) && __GNUC__ == 11 +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif + +#include + +int main() +{ + char buffer[ 32 ]; + auto r = boost::charconv::to_chars( buffer, buffer + sizeof( buffer ), 1048576 ); + + int v = 0; + boost::charconv::from_chars( buffer, r.ptr, v ); +} From cf20cdb6a7d1a36efc5683b9a52707c1c2e5cfc1 Mon Sep 17 00:00:00 2001 From: Dominik Nussbaumer <4436784+tnixeu@users.noreply.github.com> Date: Wed, 19 Feb 2025 15:46:27 +0100 Subject: [PATCH 5/7] refactor: move example for BoostProcess from Boost-process to BoostProcess Renaming because the Boost::process lib in Boost became a lib for v2 --- cmake/projects/Boost/ci/matrix.json | 24 +++++++++---------- .../CMakeLists.txt | 2 +- .../{Boost-process => BoostProcess}/foo.cpp | 0 3 files changed, 13 insertions(+), 13 deletions(-) rename examples/{Boost-process => BoostProcess}/CMakeLists.txt (88%) rename examples/{Boost-process => BoostProcess}/foo.cpp (100%) diff --git a/cmake/projects/Boost/ci/matrix.json b/cmake/projects/Boost/ci/matrix.json index 55cb0c8123..5d037aa663 100644 --- a/cmake/projects/Boost/ci/matrix.json +++ b/cmake/projects/Boost/ci/matrix.json @@ -167,18 +167,18 @@ { "example": "Boost-math", "toolchain": "mingw-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, { "example": "Boost-math", "toolchain": "msys-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, -{ "example": "Boost-process", "toolchain": "clang-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, -// { "example": "Boost-process", "toolchain": "gcc-7-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, -// { "example": "Boost-process", "toolchain": "gcc-8-cxx17-fpic", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, -// { "example": "Boost-process", "toolchain": "gcc-9-cxx17-fpic", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, -{ "example": "Boost-process", "toolchain": "android-ndk-r17-api-24-arm64-v8a-clang-libcxx14", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, -// { "example": "Boost-process", "toolchain": "osx-12-3-arch-universal2-cxx17", "os": "macos-12", "python": "3.8", "script": "build.sh" }, -{ "example": "Boost-process", "toolchain": "ios-nocodesign-15-5-arm64-cxx17", "os": "macos-12", "python": "3.8", "script": "build.sh" }, -{ "example": "Boost-process", "toolchain": "ninja-vs-16-2019-win64-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, -// { "example": "Boost-process", "toolchain": "nmake-vs-16-2019-win64-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, -// { "example": "Boost-process", "toolchain": "vs-16-2019-win64-sdk-10-0-18362-0-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, -{ "example": "Boost-process", "toolchain": "mingw-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, -{ "example": "Boost-process", "toolchain": "msys-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +{ "example": "BoostProcess", "toolchain": "clang-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +// { "example": "BoostProcess", "toolchain": "gcc-7-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +// { "example": "BoostProcess", "toolchain": "gcc-8-cxx17-fpic", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +// { "example": "BoostProcess", "toolchain": "gcc-9-cxx17-fpic", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +{ "example": "BoostProcess", "toolchain": "android-ndk-r17-api-24-arm64-v8a-clang-libcxx14", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +// { "example": "BoostProcess", "toolchain": "osx-12-3-arch-universal2-cxx17", "os": "macos-12", "python": "3.8", "script": "build.sh" }, +{ "example": "BoostProcess", "toolchain": "ios-nocodesign-15-5-arm64-cxx17", "os": "macos-12", "python": "3.8", "script": "build.sh" }, +{ "example": "BoostProcess", "toolchain": "ninja-vs-16-2019-win64-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +// { "example": "BoostProcess", "toolchain": "nmake-vs-16-2019-win64-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +// { "example": "BoostProcess", "toolchain": "vs-16-2019-win64-sdk-10-0-18362-0-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +{ "example": "BoostProcess", "toolchain": "mingw-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +{ "example": "BoostProcess", "toolchain": "msys-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, // { "example": "Boost-program-options", "toolchain": "clang-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, { "example": "Boost-program-options", "toolchain": "gcc-7-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, diff --git a/examples/Boost-process/CMakeLists.txt b/examples/BoostProcess/CMakeLists.txt similarity index 88% rename from examples/Boost-process/CMakeLists.txt rename to examples/BoostProcess/CMakeLists.txt index a6a8cd0665..78764154a5 100644 --- a/examples/Boost-process/CMakeLists.txt +++ b/examples/BoostProcess/CMakeLists.txt @@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 3.10) # Emulate HunterGate: -# * https://github.com/hunter-packages/gate +# * https://github.com/cpp-pm/gate include("../common.cmake") project(example-boost-process) diff --git a/examples/Boost-process/foo.cpp b/examples/BoostProcess/foo.cpp similarity index 100% rename from examples/Boost-process/foo.cpp rename to examples/BoostProcess/foo.cpp From 1c0d77f02cb2f8329c9018c7dac98b7f6c4f7803 Mon Sep 17 00:00:00 2001 From: simbahebinbo Date: Thu, 29 Aug 2024 12:46:44 +0800 Subject: [PATCH 6/7] Update 'Boost' to v1.86.0 Release notes: https://www.boost.org/users/history/version_1_86_0.html --- cmake/configs/default.cmake | 2 +- cmake/projects/Boost/hunter.cmake | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/cmake/configs/default.cmake b/cmake/configs/default.cmake index 034b1a8aec..632d2a9d59 100644 --- a/cmake/configs/default.cmake +++ b/cmake/configs/default.cmake @@ -38,7 +38,7 @@ if(MINGW) # https://github.com/boostorg/build/issues/301 hunter_default_version(Boost VERSION 1.64.0) else() - hunter_default_version(Boost VERSION 1.85.0) + hunter_default_version(Boost VERSION 1.86.0) endif() hunter_default_version(BoostCompute VERSION 0.5-p0) diff --git a/cmake/projects/Boost/hunter.cmake b/cmake/projects/Boost/hunter.cmake index 273e4c0b4c..5724ed43a8 100644 --- a/cmake/projects/Boost/hunter.cmake +++ b/cmake/projects/Boost/hunter.cmake @@ -550,6 +550,17 @@ hunter_add_version( ed58c632befe0d299b39f9e23de1fc20d03870d7 ) +hunter_add_version( + PACKAGE_NAME + Boost + VERSION + "1.86.0" + URL + "https://archives.boost.io/release/1.86.0/source/boost_1_86_0.tar.bz2" + SHA1 + fd0d26a7d5eadf454896942124544120e3b7a38f +) + if(MSVC) hunter_check_toolchain_definition(NAME "_DLL" DEFINED _hunter_vs_md) hunter_cmake_args( From 340e5d99c2dd9d1dd87f4effb7ccb34ebc727a4d Mon Sep 17 00:00:00 2001 From: Dominik Nussbaumer <4436784+tnixeu@users.noreply.github.com> Date: Wed, 19 Feb 2025 17:15:15 +0100 Subject: [PATCH 7/7] Update libraries and tests for Boost v1.86.0 * Add example for Boost::predef * It seems something changed about Boost::predef in 1.86.0. It is listed as a lib but not build as a lib. * Add Boost::predef to test matrix * Add Boost::process to test matrix * Add example for v2 of Boost::process * Boost::process changed in the 1.86.0 release. * v1 is header only * v2 is a library --- cmake/modules/hunter_get_boost_libs.cmake | 2 ++ cmake/projects/Boost/ci/matrix.json | 26 +++++++++++++++ cmake/projects/Boost/generate.sh | 2 ++ cmake/projects/Boost/predef/hunter.cmake | 22 +++++++++++++ cmake/projects/Boost/process/hunter.cmake | 22 +++++++++++++ examples/Boost-predef/CMakeLists.txt | 19 +++++++++++ examples/Boost-predef/foo.cpp | 12 +++++++ examples/Boost-process/CMakeLists.txt | 18 +++++++++++ examples/Boost-process/foo.cpp | 39 +++++++++++++++++++++++ 9 files changed, 162 insertions(+) create mode 100644 cmake/projects/Boost/predef/hunter.cmake create mode 100644 cmake/projects/Boost/process/hunter.cmake create mode 100644 examples/Boost-predef/CMakeLists.txt create mode 100644 examples/Boost-predef/foo.cpp create mode 100644 examples/Boost-process/CMakeLists.txt create mode 100644 examples/Boost-process/foo.cpp diff --git a/cmake/modules/hunter_get_boost_libs.cmake b/cmake/modules/hunter_get_boost_libs.cmake index a8566563a5..f08c5474f7 100644 --- a/cmake/modules/hunter_get_boost_libs.cmake +++ b/cmake/modules/hunter_get_boost_libs.cmake @@ -74,6 +74,8 @@ function(hunter_get_boost_libs) hunter_append_component(${common_args} COMPONENT metaparse SINCE 1.61.0 UNTIL 1.66.0) hunter_append_component(${common_args} COMPONENT mpi SINCE 1.35.0) hunter_append_component(${common_args} COMPONENT nowide SINCE 1.74.0) + hunter_append_component(${common_args} COMPONENT predef SINCE 1.86.0) # is listed as a lib since 1.86.0, but can not be built as one + hunter_append_component(${common_args} COMPONENT process SINCE 1.86.0) # was header only until 1.86.0 hunter_append_component(${common_args} COMPONENT program_options SINCE 1.32.0) hunter_append_component(${common_args} COMPONENT python SINCE 1.19.0) hunter_append_component(${common_args} COMPONENT random SINCE 1.15.0) diff --git a/cmake/projects/Boost/ci/matrix.json b/cmake/projects/Boost/ci/matrix.json index 5d037aa663..7dae762b83 100644 --- a/cmake/projects/Boost/ci/matrix.json +++ b/cmake/projects/Boost/ci/matrix.json @@ -167,6 +167,32 @@ { "example": "Boost-math", "toolchain": "mingw-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, { "example": "Boost-math", "toolchain": "msys-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +{ "example": "Boost-predef", "toolchain": "clang-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +// { "example": "Boost-predef", "toolchain": "gcc-7-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +// { "example": "Boost-predef", "toolchain": "gcc-8-cxx17-fpic", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +// { "example": "Boost-predef", "toolchain": "gcc-9-cxx17-fpic", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +{ "example": "Boost-predef", "toolchain": "android-ndk-r17-api-24-arm64-v8a-clang-libcxx14", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +// { "example": "Boost-predef", "toolchain": "osx-12-3-arch-universal2-cxx17", "os": "macos-12", "python": "3.8", "script": "build.sh" }, +{ "example": "Boost-predef", "toolchain": "ios-nocodesign-15-5-arm64-cxx17", "os": "macos-12", "python": "3.8", "script": "build.sh" }, +// { "example": "Boost-predef", "toolchain": "ninja-vs-16-2019-win64-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +// { "example": "Boost-predef", "toolchain": "nmake-vs-16-2019-win64-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +// { "example": "Boost-predef", "toolchain": "vs-16-2019-win64-sdk-10-0-18362-0-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +{ "example": "Boost-predef", "toolchain": "mingw-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +{ "example": "Boost-predef", "toolchain": "msys-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, + +//{ "example": "Boost-process", "toolchain": "clang-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +// { "example": "Boost-process", "toolchain": "gcc-7-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +// { "example": "Boost-process", "toolchain": "gcc-8-cxx17-fpic", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +// { "example": "Boost-process", "toolchain": "gcc-9-cxx17-fpic", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +//{ "example": "Boost-process", "toolchain": "android-ndk-r17-api-24-arm64-v8a-clang-libcxx14", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, +// { "example": "Boost-process", "toolchain": "osx-12-3-arch-universal2-cxx17", "os": "macos-12", "python": "3.8", "script": "build.sh" }, +//{ "example": "Boost-process", "toolchain": "ios-nocodesign-15-5-arm64-cxx17", "os": "macos-12", "python": "3.8", "script": "build.sh" }, +//{ "example": "Boost-process", "toolchain": "ninja-vs-16-2019-win64-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +// { "example": "Boost-process", "toolchain": "nmake-vs-16-2019-win64-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +// { "example": "Boost-process", "toolchain": "vs-16-2019-win64-sdk-10-0-18362-0-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +//{ "example": "Boost-process", "toolchain": "mingw-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, +//{ "example": "Boost-process", "toolchain": "msys-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, + { "example": "BoostProcess", "toolchain": "clang-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, // { "example": "BoostProcess", "toolchain": "gcc-7-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, // { "example": "BoostProcess", "toolchain": "gcc-8-cxx17-fpic", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, diff --git a/cmake/projects/Boost/generate.sh b/cmake/projects/Boost/generate.sh index 44873b7c4d..018f411ea8 100755 --- a/cmake/projects/Boost/generate.sh +++ b/cmake/projects/Boost/generate.sh @@ -26,6 +26,8 @@ BOOST_LIBS=" math mpi nowide + predef + process program_options python random diff --git a/cmake/projects/Boost/predef/hunter.cmake b/cmake/projects/Boost/predef/hunter.cmake new file mode 100644 index 0000000000..068bbd0e40 --- /dev/null +++ b/cmake/projects/Boost/predef/hunter.cmake @@ -0,0 +1,22 @@ +# Copyright (c) 2013, Ruslan Baratov +# All rights reserved. + +# !!! DO NOT PLACE HEADER GUARDS HERE !!! + +include(hunter_download) +include(hunter_pick_scheme) + +hunter_pick_scheme( + DEFAULT + url_sha1_boost_library + IPHONEOS + url_sha1_boost_ios_library +) + +hunter_download( + PACKAGE_NAME + Boost + PACKAGE_COMPONENT + predef + PACKAGE_INTERNAL_DEPS_ID "50" +) diff --git a/cmake/projects/Boost/process/hunter.cmake b/cmake/projects/Boost/process/hunter.cmake new file mode 100644 index 0000000000..a9af2de762 --- /dev/null +++ b/cmake/projects/Boost/process/hunter.cmake @@ -0,0 +1,22 @@ +# Copyright (c) 2013, Ruslan Baratov +# All rights reserved. + +# !!! DO NOT PLACE HEADER GUARDS HERE !!! + +include(hunter_download) +include(hunter_pick_scheme) + +hunter_pick_scheme( + DEFAULT + url_sha1_boost_library + IPHONEOS + url_sha1_boost_ios_library +) + +hunter_download( + PACKAGE_NAME + Boost + PACKAGE_COMPONENT + process + PACKAGE_INTERNAL_DEPS_ID "50" +) diff --git a/examples/Boost-predef/CMakeLists.txt b/examples/Boost-predef/CMakeLists.txt new file mode 100644 index 0000000000..139e35c6d1 --- /dev/null +++ b/examples/Boost-predef/CMakeLists.txt @@ -0,0 +1,19 @@ +# Copyright (c) 2025, Dominik Nussbaumer +# All rights reserved. + +cmake_minimum_required(VERSION 3.10) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(Boost_DEBUG ON CACHE BOOLEAN "") +set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/../Boost-useBoostConfig/config.cmake) + +# Emulate HunterGate: +# * https://github.com/cpp-pm/gate +include("../common.cmake") + +project(download-boost) + +hunter_add_package(Boost) +find_package(Boost CONFIG) + +add_executable(foo foo.cpp) +target_link_libraries(foo PUBLIC Boost::boost) diff --git a/examples/Boost-predef/foo.cpp b/examples/Boost-predef/foo.cpp new file mode 100644 index 0000000000..1d040a5ee0 --- /dev/null +++ b/examples/Boost-predef/foo.cpp @@ -0,0 +1,12 @@ +// https://www.boost.org/doc/libs/1_83_0/libs/predef/doc/index.html#_using_the_predefs +#include +#include + +int main() +{ + if (BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(4,0,0)) + std::cout << "GCC compiler is at least version 4.0.0" << std::endl; + else + std::cout << "GCC compiler is at older than version 4.0.0, or not a GCC compiler" << std::endl; + return 0; +} diff --git a/examples/Boost-process/CMakeLists.txt b/examples/Boost-process/CMakeLists.txt new file mode 100644 index 0000000000..19f243335d --- /dev/null +++ b/examples/Boost-process/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2025, Dominik Nussbaumer +# All rights reserved. + +cmake_minimum_required(VERSION 3.10) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(Boost_DEBUG ON CACHE BOOLEAN "") +set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/../Boost-useBoostConfig/config.cmake) + +# Emulate HunterGate: +# * https://github.com/cpp-pm/gate +include("../common.cmake") + +project(download-boost) +hunter_add_package(Boost COMPONENTS process) +find_package(Boost CONFIG REQUIRED process) + +add_executable(foo foo.cpp) +target_link_libraries(foo PUBLIC Boost::process) diff --git a/examples/Boost-process/foo.cpp b/examples/Boost-process/foo.cpp new file mode 100644 index 0000000000..2e0f2363d6 --- /dev/null +++ b/examples/Boost-process/foo.cpp @@ -0,0 +1,39 @@ +// Copyright (c) 2022 Klemens Morgenstern +// +// 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) + +//[intro +#include + +#include +#include +#include + +#include +#include + +namespace proc = boost::process::v2; +namespace asio = boost::asio; + + +int main() +{ + asio::io_context ctx; + asio::readable_pipe p{ctx}; + + const auto exe = proc::environment::find_executable("gcc"); + + proc::process c{ctx, exe, {"--version"}, proc::process_stdio{nullptr, p}}; + + std::string line; + boost::system::error_code ec; + + auto sz = asio::read(p, asio::dynamic_buffer(line), ec); + assert(ec == asio::error::eof); + + std::cout << "Gcc version: '" << line << "'" << std::endl; + + c.wait(); +} +//]