diff --git a/3rd/archives/range-v3-0.12.0.tar.gz b/3rd/archives/range-v3-0.12.0.tar.gz new file mode 100644 index 0000000..7d1eb5a Binary files /dev/null and b/3rd/archives/range-v3-0.12.0.tar.gz differ diff --git a/cmake/deps/core_runtime.cmake b/cmake/deps/core_runtime.cmake index 8a163ea..e62c6f9 100644 --- a/cmake/deps/core_runtime.cmake +++ b/cmake/deps/core_runtime.cmake @@ -41,7 +41,8 @@ set(CPP_TEMPLATE_CORE_RUNTIME_DEFAULT_DEPS hash-library::hash-library CRCpp::CRCpp hex::hex - base64::base64) + base64::base64 + range-v3::range-v3) set(CPP_TEMPLATE_CORE_RUNTIME_DEFAULT_DEPS ${CPP_TEMPLATE_CORE_RUNTIME_DEFAULT_DEPS} PARENT_SCOPE) @@ -152,6 +153,22 @@ if(NOT TARGET nonstd::expected-lite) target_include_directories(nonstd::expected-lite INTERFACE "${expected-lite_SOURCE_DIR}/include") endif() +# --- range-v3 (Ranges library) --- +_cpp_template_core_archive_path("${CPP_TEMPLATE_RANGE_V3_ARCHIVE}" _range_v3_archive_path) +CPMAddPackage( + NAME range-v3 + VERSION ${CPP_TEMPLATE_RANGE_V3_VERSION} + URL ${_range_v3_archive_path} + URL_HASH SHA256=${CPP_TEMPLATE_RANGE_V3_SHA256} + DOWNLOAD_ONLY YES +) +if(NOT TARGET range-v3::range-v3) + add_library(range-v3::range-v3 INTERFACE IMPORTED) + target_include_directories(range-v3::range-v3 INTERFACE + "${range-v3_SOURCE_DIR}/include") + target_compile_features(range-v3::range-v3 INTERFACE cxx_std_14) +endif() + _cpp_template_core_archive_path("${CPP_TEMPLATE_CPP_HTTPLIB_ARCHIVE}" _cpp_httplib_archive_path) CPMAddPackage( diff --git a/cmake/deps/versions.cmake b/cmake/deps/versions.cmake index 20df77f..464d899 100644 --- a/cmake/deps/versions.cmake +++ b/cmake/deps/versions.cmake @@ -130,6 +130,17 @@ set(CPP_TEMPLATE_EXPECTED_LITE_CPM_OPTIONS "EXPECTED_LITE_BUILD_TESTS OFF" "EXPECTED_LITE_BUILD_EXAMPLES OFF") +# --- range-v3 (Ranges library, C++14+) --- +set(CPP_TEMPLATE_RANGE_V3_VERSION "0.12.0") +set(CPP_TEMPLATE_RANGE_V3_URL "https://github.com/ericniebler/range-v3/archive/refs/tags/0.12.0.tar.gz") +set(CPP_TEMPLATE_RANGE_V3_ARCHIVE "range-v3-0.12.0.tar.gz") +set(CPP_TEMPLATE_RANGE_V3_SHA256 "015adb2300a98edfceaf0725beec3337f542af4915cec4d0b89fa0886f4ba9cb") +set(CPP_TEMPLATE_RANGE_V3_CXX_STANDARD 14) +set(CPP_TEMPLATE_RANGE_V3_TARGETS "range-v3::range-v3") +set(CPP_TEMPLATE_RANGE_V3_PRESETS "debug;release;fuzz") +set(CPP_TEMPLATE_RANGE_V3_CPM_OPTIONS "") +# Note: header-only, no CMake options needed; CPM module wraps as INTERFACE target. + # --- cpp-httplib (HTTP server/client baseline) --- set(CPP_TEMPLATE_CPP_HTTPLIB_VERSION "0.18.3") set(CPP_TEMPLATE_CPP_HTTPLIB_URL "https://github.com/yhirose/cpp-httplib/archive/refs/tags/v0.18.3.tar.gz")