From b61b3f33eba0000fe66e8ba69d09c9c56810d257 Mon Sep 17 00:00:00 2001 From: Sunrisepeak Date: Sat, 14 Nov 2026 16:31:53 +0900 Subject: [PATCH 1/2] mcpplibs.mwrap.manifold 3.5.5: manifold-m (Manifold, booleans of solids that stay solid, as a C++23 module) --- .../2026-11-14-add-manifold-mwrap-plan.md | 40 +++++++++++++ .github/workflows/validate.yml | 5 ++ CHANGELOG.md | 7 +++ mcpp.toml | 1 + pkgs/mwrap/manifold.lua | 50 ++++++++++++++++ tests/mwrap/check_installed_template.py | 1 + tests/mwrap/manifold-boolean/mcpp.toml | 11 ++++ .../mwrap/manifold-boolean/tests/behavior.cpp | 57 +++++++++++++++++++ 8 files changed, 172 insertions(+) create mode 100644 .agents/docs/2026-11-14-add-manifold-mwrap-plan.md create mode 100644 pkgs/mwrap/manifold.lua create mode 100644 tests/mwrap/manifold-boolean/mcpp.toml create mode 100644 tests/mwrap/manifold-boolean/tests/behavior.cpp diff --git a/.agents/docs/2026-11-14-add-manifold-mwrap-plan.md b/.agents/docs/2026-11-14-add-manifold-mwrap-plan.md new file mode 100644 index 00000000..dc3cf094 --- /dev/null +++ b/.agents/docs/2026-11-14-add-manifold-mwrap-plan.md @@ -0,0 +1,40 @@ +# Add mcpplibs.mwrap.manifold (manifold-m 3.5.5) + +## Form + +- Third-party upstream [elalish/manifold](https://github.com/elalish/manifold), release v3.5.5, Apache-2.0 (its + `linalg.h` derives from Sterling Orsten's public-domain library). +- Form A external mwrap module repository [mcpplibs/manifold-m](https://github.com/mcpplibs/manifold-m), package + `mcpplibs.mwrap.manifold`, version 3.5.5 (first release of the identity), tag `mwrap-3.5.5`; release asset + `manifold-m-3.5.5.tar.gz` (`87325649…cb85`), CN mirror `gitcode.com/mcpp-res/mwrap-manifold` with identical bytes. +- Implementation ownership: the library has no compat package in this index, so the wrapper vendors `src/*.cpp`, + `src/*.h` and `include/manifold/` from the release archive (checksums in `upstream/documents.json`) and builds them + as upstream's default build does, save two choices: one thread (`MANIFOLD_PAR=-1`, no oneTBB) and no `CrossSection` + (`MANIFOLD_CROSS_SECTION` off: upstream's class needs Clipper2, and the backend without it, + `cross_section_boolean2.cpp`, is a stub in 3.5.5 — every operation gives nothing — so it is not vendored and + `` is not exported). It deploys upstream's README, LICENSE and AUTHORS with its own + LICENSE/NOTICE (`runtime.deploy`). + +## Module + +- `mcpplibs.mwrap.manifold`: every public name of `` and `` by `using` in the + namespace upstream declares it in — `manifold` (36 types, 10 functions, the alias `la`), `manifold::math` (16 + functions), `linalg` (10 types, 116 functions and operators). +- Internal-linkage adaptation: seven `constexpr` objects at namespace scope are not `inline` (`kPi`, `kTwoPi`, + `kHalfPi`, `DEFAULT_SEGMENTS`, `DEFAULT_ANGLE`, `DEFAULT_LENGTH`, `linalg::identity`); a module cannot export + them, so they are declared again under their names, with their types and values, in `mcpplibs::mwrap::manifold`. +- No `.macros` module: the public headers define no object-like constant; `DEBUG_ASSERT` and `ASSERT` are upstream's + own control-flow macros, empty in this configuration. `` names `std::istream` and `std::ostream` + without their header; the module's global fragment includes `` and `` first. +- The export list is derived by `tools/surface.py` from the headers as clang reads them (its JSON AST), recorded in + `tools/surface.json`, and audited in CI: the module is the record on every row, and on the Linux LLVM row the + record is derived again and compared. + +## Verification + +- Wrapper CI (Linux x86_64 GCC 16.1 and LLVM 23.1.3, macOS LLVM, Windows LLVM): the module tests (solids, booleans + and their volumes, the same input giving the same mesh, meshes in and out, hull, decomposition and splitting, + linalg, outlines extruded, revolved, sliced and projected, header mixing), the export audit, and the default + template from an installed copy with a strict build. +- This index: consumer `tests/mwrap/manifold-boolean`; the installed-template check with `--deploy` + (`STATIC_NOTICES`). diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 37297a34..13f62607 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -1728,6 +1728,11 @@ jobs: shell: bash run: python3 tests/mwrap/check_installed_template.py --mcpp "$MCPP" --package mcpplibs.mwrap.cgltf@1.15 --deploy + - name: Installed manifold wrapper archive, actual default boolean template and its relocated notices + if: contains(format(' {0} ', env.MEMBERS), ' manifold-boolean ') && matrix.toolchain == 'default' + shell: bash + run: python3 tests/mwrap/check_installed_template.py --mcpp "$MCPP" --package mcpplibs.mwrap.manifold@3.5.5 --deploy + - name: Installed libarchive wrapper archive, actual default archive template and its relocated notices if: contains(format(' {0} ', env.MEMBERS), ' libarchive-bundle ') && matrix.toolchain == 'default' shell: bash diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c445f85..0b055aa7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,13 @@ ### Added +- **mcpplibs.mwrap.manifold 3.5.5(新包)。** manifold-m:Manifold(始终保持流形的实体几何库)的 C++23 模块,以 `export using` + 在上游的命名空间里导出 `` 与 `` 的全部公开名字(`manifold` 36 个类型、10 个函数, + `manifold::math` 16 个函数,`linalg` 10 个类型、116 个函数与运算符);7 个内部链接的 `constexpr` 常量(`kPi`、 + `DEFAULT_SEGMENTS`、`linalg::identity` 等)以原名位于 `mcpplibs::mwrap::manifold`。导出清单由 clang 读头文件推出并在 CI 中审计。 + 封装仓库从上游发布包取源码并自行构建:单线程(`MANIFOLD_PAR=-1`,不依赖 oneTBB),不含 `CrossSection`(上游实现依赖 + Clipper2,3.5.5 中不依赖它的后端只是占位)。消费者测试 `tests/mwrap/manifold-boolean`,安装后模板检查带 `--deploy`。 + GLOBAL 为 GitHub 发布资产,CN 为 GitCode `mcpp-res/mwrap-manifold` 镜像,sha256 相同。 - **mcpplibs.mwrap.meshoptimizer 1.3、mcpplibs.mwrap.cgltf 1.15(新包)。** 两个 mwrap 包:meshoptimizer-m 以 `export using` 导出 `` 的全部公开名字(9 个类型、20 个枚举值、89 个函数),`MESHOPTIMIZER_VERSION` 在 `.macros` 中为同名常量; cgltf-m 导出 `` 的全部公开名字(72 个类型、102 个枚举值、37 个函数),并再导出 `.write`(``)。 diff --git a/mcpp.toml b/mcpp.toml index 30f75505..de977232 100644 --- a/mcpp.toml +++ b/mcpp.toml @@ -37,6 +37,7 @@ members = [ "tests/mwrap/xxhash-digest", "tests/mwrap/meshoptimizer-simplify", "tests/mwrap/cgltf-inspect", + "tests/mwrap/manifold-boolean", "tests/mwrap/libarchive-bundle", "tests/mwrap/libc-stdio", "tests/mwrap/miniaudio-engine", diff --git a/pkgs/mwrap/manifold.lua b/pkgs/mwrap/manifold.lua new file mode 100644 index 00000000..edeb2299 --- /dev/null +++ b/pkgs/mwrap/manifold.lua @@ -0,0 +1,50 @@ +-- Immutable upstream-aligned mwrap source release (manifold-m mwrap-3.5.5); +-- GLOBAL and CN bytes are identical. +-- +-- The wrapper is Apache-2.0; the library it vendors and links statically, +-- Manifold 3.5.5, is Apache-2.0: the package deploys its README, LICENSE and +-- AUTHORS beside programs (runtime.deploy). +package = { + spec = "1", + namespace = "mcpplibs.mwrap", + name = "manifold", + description = "manifold-m: Manifold 3.5.5 (booleans, hulls, level sets, slices and extrusions of solids that stay solid) as a C++23 module", + licenses = { "Apache-2.0" }, + repo = "https://github.com/mcpplibs/manifold-m", + type = "package", + extensions = { + autoupdate = { + tag = "mwrap-${version}", + url = "https://github.com/mcpplibs/manifold-m/releases/download/${tag}/manifold-m-${version}.tar.gz", + }, + }, + xpm = { + linux = { + ["3.5.5"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/manifold-m/releases/download/mwrap-3.5.5/manifold-m-3.5.5.tar.gz", + CN = "https://gitcode.com/mcpp-res/mwrap-manifold/releases/download/3.5.5/manifold-m-3.5.5.tar.gz", + }, + sha256 = "87325649c4f7f653e7fffd929a030d3fdd252bd2cdabae920d6cb88afdfacb85", + }, + }, + macosx = { + ["3.5.5"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/manifold-m/releases/download/mwrap-3.5.5/manifold-m-3.5.5.tar.gz", + CN = "https://gitcode.com/mcpp-res/mwrap-manifold/releases/download/3.5.5/manifold-m-3.5.5.tar.gz", + }, + sha256 = "87325649c4f7f653e7fffd929a030d3fdd252bd2cdabae920d6cb88afdfacb85", + }, + }, + windows = { + ["3.5.5"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/manifold-m/releases/download/mwrap-3.5.5/manifold-m-3.5.5.tar.gz", + CN = "https://gitcode.com/mcpp-res/mwrap-manifold/releases/download/3.5.5/manifold-m-3.5.5.tar.gz", + }, + sha256 = "87325649c4f7f653e7fffd929a030d3fdd252bd2cdabae920d6cb88afdfacb85", + }, + }, + }, +} diff --git a/tests/mwrap/check_installed_template.py b/tests/mwrap/check_installed_template.py index 329be094..2e843b8b 100644 --- a/tests/mwrap/check_installed_template.py +++ b/tests/mwrap/check_installed_template.py @@ -22,6 +22,7 @@ "mcpplibs.mwrap.libarchive": ("libarchive.cppm", "upstream/libarchive/COPYING", b"Tim Kientzle", b"Tim Kientzle"), "mcpplibs.mwrap.meshoptimizer": ("meshoptimizer.cppm", "upstream/meshoptimizer/LICENSE.md", b"MIT License", b"Arseny Kapoulkine"), "mcpplibs.mwrap.cgltf": ("cgltf.cppm", "upstream/cgltf/LICENSE", b"Permission is hereby granted", b"Kuhlmann"), + "mcpplibs.mwrap.manifold": ("manifold.cppm", "upstream/manifold/LICENSE", b"Apache License", b"The Manifold Authors"), "mcpplibs.mwrap.libc": ("libc.cppm", None, b"", b"ISO/IEC 9899:2018"), } diff --git a/tests/mwrap/manifold-boolean/mcpp.toml b/tests/mwrap/manifold-boolean/mcpp.toml new file mode 100644 index 00000000..a90c5e3b --- /dev/null +++ b/tests/mwrap/manifold-boolean/mcpp.toml @@ -0,0 +1,11 @@ +[package] +name = "manifold-boolean" +version = "3.5.5" +description = "Consume the immutable Manifold wrapper: booleans of solids and their volumes, a mesh in and out, the same mesh twice, an outline extruded and sliced" + +[indices] +# Use the complete candidate built-in index prepared by tests/run_members.sh. +# An explicit empty table overrides the legacy workspace redirect. + +[dependencies] +mcpplibs.mwrap.manifold = "3.5.5" diff --git a/tests/mwrap/manifold-boolean/tests/behavior.cpp b/tests/mwrap/manifold-boolean/tests/behavior.cpp new file mode 100644 index 00000000..dc5dee4e --- /dev/null +++ b/tests/mwrap/manifold-boolean/tests/behavior.cpp @@ -0,0 +1,57 @@ +// The installed Manifold wrapper: booleans of solids and their volumes, a +// mesh in and out, the same input giving the same mesh, an outline extruded +// and sliced, linalg's operators, the adapted constants. +import std; +import mcpplibs.mwrap.manifold; + +using manifold::Manifold; +using manifold::vec3; + +namespace { + +bool near(double one, double other, double within = 1e-9) { return std::abs(one - other) <= within; } + +} // namespace + +int main() { + const Manifold one = Manifold::Cube(vec3(2.0)); + const Manifold other = one.Translate(vec3(1.0, 0.0, 0.0)); + if (one.NumVert() != 8 || one.NumTri() != 12 || !near(one.Volume(), 8.0)) return 1; + if (!near((one + other).Volume(), 12.0) || !near((one - other).Volume(), 4.0) || !near((one ^ other).Volume(), 4.0)) return 2; + if (!near(one.Boolean(other, manifold::OpType::Intersect).Volume(), 4.0)) return 3; + + // A cube with a round hole through it has a handle. + const Manifold drilled = Manifold::Cube(vec3(2.0), true) - Manifold::Cylinder(4.0, 0.5, 0.5, 32, true); + if (drilled.Status() != Manifold::Error::NoError || drilled.Genus() != 1 || !(drilled.Volume() < 8.0)) return 4; + + // The same input, the same mesh. + const auto made = [] { return (Manifold::Sphere(1.0, 24) - Manifold::Cube(vec3(1.0))).GetMeshGL(); }; + const manifold::MeshGL first = made(), second = made(); + if (first.vertProperties.empty() || first.vertProperties != second.vertProperties || first.triVerts != second.triVerts) return 5; + + // A tetrahedron in, a solid out; one triangle short is refused with its reason. + manifold::MeshGL mesh; + mesh.numProp = 3; + mesh.vertProperties = {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1}; + mesh.triVerts = {0, 2, 1, 0, 1, 3, 1, 2, 3, 0, 3, 2}; + if (!near(Manifold(mesh).Volume(), 1.0 / 6.0, 1e-12)) return 6; + mesh.triVerts.resize(9); + if (Manifold(mesh).Status() != Manifold::Error::NotManifold) return 7; + + // An outline raised and cut again. + const manifold::Polygons square{{{-1, -1}, {1, -1}, {1, 1}, {-1, 1}}}; + const Manifold raised = Manifold::Extrude(square, 3.0); + double area = 0; + for (const manifold::SimplePolygon& loop : raised.Slice(1.5)) + for (std::size_t at = 0; at < loop.size(); ++at) area += linalg::cross(loop[at], loop[(at + 1) % loop.size()]) / 2; + if (!near(raised.Volume(), 12.0) || !near(area, 4.0)) return 8; + + // linalg's operators and the constants of internal linkage, adapted. + const vec3 along(1.0, 2.0, 2.0); + if (linalg::length(along) != 3.0 || along * 2.0 - along != along) return 9; + if (manifold::degrees(mcpplibs::mwrap::manifold::kPi) != 180.0 || mcpplibs::mwrap::manifold::DEFAULT_SEGMENTS != 0) return 10; + + std::println("Manifold 3.5.5 through import mcpplibs.mwrap.manifold: a drilled cube of volume {:.4f} and genus {}, {} triangles the same twice", drilled.Volume(), drilled.Genus(), + first.NumTri()); + return 0; +} From 7b9b4620da5773de62a8c6a9f7fb0b389dd15b62 Mon Sep 17 00:00:00 2001 From: Sunrisepeak Date: Sat, 14 Nov 2026 16:48:49 +0900 Subject: [PATCH 2/2] mcpplibs.mwrap.manifold: index wrapper revision 3.5.5.1 (floating-point contraction off, as upstream builds it) instead of 3.5.5 --- .../2026-11-14-add-manifold-mwrap-plan.md | 14 ++++++---- .github/workflows/validate.yml | 2 +- CHANGELOG.md | 5 ++-- pkgs/mwrap/manifold.lua | 26 +++++++++---------- tests/mwrap/manifold-boolean/mcpp.toml | 4 +-- 5 files changed, 28 insertions(+), 23 deletions(-) diff --git a/.agents/docs/2026-11-14-add-manifold-mwrap-plan.md b/.agents/docs/2026-11-14-add-manifold-mwrap-plan.md index dc3cf094..18ee03c0 100644 --- a/.agents/docs/2026-11-14-add-manifold-mwrap-plan.md +++ b/.agents/docs/2026-11-14-add-manifold-mwrap-plan.md @@ -1,15 +1,17 @@ -# Add mcpplibs.mwrap.manifold (manifold-m 3.5.5) +# Add mcpplibs.mwrap.manifold (manifold-m 3.5.5.1) ## Form - Third-party upstream [elalish/manifold](https://github.com/elalish/manifold), release v3.5.5, Apache-2.0 (its `linalg.h` derives from Sterling Orsten's public-domain library). - Form A external mwrap module repository [mcpplibs/manifold-m](https://github.com/mcpplibs/manifold-m), package - `mcpplibs.mwrap.manifold`, version 3.5.5 (first release of the identity), tag `mwrap-3.5.5`; release asset - `manifold-m-3.5.5.tar.gz` (`87325649…cb85`), CN mirror `gitcode.com/mcpp-res/mwrap-manifold` with identical bytes. + `mcpplibs.mwrap.manifold`, version 3.5.5.1 (wrapper revision 1 of upstream 3.5.5; the first indexed release of the + identity), tag `mwrap-3.5.5.1`; release asset `manifold-m-3.5.5.1.tar.gz` (`d80aa82f…7d3a`), CN mirror + `gitcode.com/mcpp-res/mwrap-manifold` with identical bytes. The repository's `mwrap-3.5.5` release is not indexed: + it was built without `-ffp-contract=off`, which upstream's own build sets (a fused multiply-add changes results). - Implementation ownership: the library has no compat package in this index, so the wrapper vendors `src/*.cpp`, `src/*.h` and `include/manifold/` from the release archive (checksums in `upstream/documents.json`) and builds them - as upstream's default build does, save two choices: one thread (`MANIFOLD_PAR=-1`, no oneTBB) and no `CrossSection` + as upstream's default build does (floating-point contraction off), save two choices: one thread (`MANIFOLD_PAR=-1`, no oneTBB) and no `CrossSection` (`MANIFOLD_CROSS_SECTION` off: upstream's class needs Clipper2, and the backend without it, `cross_section_boolean2.cpp`, is a stub in 3.5.5 — every operation gives nothing — so it is not vendored and `` is not exported). It deploys upstream's README, LICENSE and AUTHORS with its own @@ -33,7 +35,9 @@ ## Verification - Wrapper CI (Linux x86_64 GCC 16.1 and LLVM 23.1.3, macOS LLVM, Windows LLVM): the module tests (solids, booleans - and their volumes, the same input giving the same mesh, meshes in and out, hull, decomposition and splitting, + and their volumes, the same input giving the same mesh, the same triangles on every row — every corner bit for bit, + by a pinned hash; the order they come in follows the standard library's sort and differs between libstdc++ and + libc++ — meshes in and out, hull, decomposition and splitting, linalg, outlines extruded, revolved, sliced and projected, header mixing), the export audit, and the default template from an installed copy with a strict build. - This index: consumer `tests/mwrap/manifold-boolean`; the installed-template check with `--deploy` diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 13f62607..fa573aa2 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -1731,7 +1731,7 @@ jobs: - name: Installed manifold wrapper archive, actual default boolean template and its relocated notices if: contains(format(' {0} ', env.MEMBERS), ' manifold-boolean ') && matrix.toolchain == 'default' shell: bash - run: python3 tests/mwrap/check_installed_template.py --mcpp "$MCPP" --package mcpplibs.mwrap.manifold@3.5.5 --deploy + run: python3 tests/mwrap/check_installed_template.py --mcpp "$MCPP" --package mcpplibs.mwrap.manifold@3.5.5.1 --deploy - name: Installed libarchive wrapper archive, actual default archive template and its relocated notices if: contains(format(' {0} ', env.MEMBERS), ' libarchive-bundle ') && matrix.toolchain == 'default' diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b055aa7..55401a66 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,11 +38,12 @@ ### Added -- **mcpplibs.mwrap.manifold 3.5.5(新包)。** manifold-m:Manifold(始终保持流形的实体几何库)的 C++23 模块,以 `export using` +- **mcpplibs.mwrap.manifold 3.5.5.1(新包)。** manifold-m:Manifold(始终保持流形的实体几何库)的 C++23 模块,以 `export using` 在上游的命名空间里导出 `` 与 `` 的全部公开名字(`manifold` 36 个类型、10 个函数, `manifold::math` 16 个函数,`linalg` 10 个类型、116 个函数与运算符);7 个内部链接的 `constexpr` 常量(`kPi`、 `DEFAULT_SEGMENTS`、`linalg::identity` 等)以原名位于 `mcpplibs::mwrap::manifold`。导出清单由 clang 读头文件推出并在 CI 中审计。 - 封装仓库从上游发布包取源码并自行构建:单线程(`MANIFOLD_PAR=-1`,不依赖 oneTBB),不含 `CrossSection`(上游实现依赖 + 封装仓库从上游 3.5.5 发布包取源码并自行构建:与上游一样关闭浮点收缩(封装修订 3.5.5.1 补上,3.5.5 未入索引), + 单线程(`MANIFOLD_PAR=-1`,不依赖 oneTBB),同样的输入在各平台给出逐位相同的三角形(次序随标准库的排序而不同),不含 `CrossSection`(上游实现依赖 Clipper2,3.5.5 中不依赖它的后端只是占位)。消费者测试 `tests/mwrap/manifold-boolean`,安装后模板检查带 `--deploy`。 GLOBAL 为 GitHub 发布资产,CN 为 GitCode `mcpp-res/mwrap-manifold` 镜像,sha256 相同。 - **mcpplibs.mwrap.meshoptimizer 1.3、mcpplibs.mwrap.cgltf 1.15(新包)。** 两个 mwrap 包:meshoptimizer-m 以 `export using` diff --git a/pkgs/mwrap/manifold.lua b/pkgs/mwrap/manifold.lua index edeb2299..b2e0de77 100644 --- a/pkgs/mwrap/manifold.lua +++ b/pkgs/mwrap/manifold.lua @@ -1,4 +1,4 @@ --- Immutable upstream-aligned mwrap source release (manifold-m mwrap-3.5.5); +-- Immutable upstream-aligned mwrap source release (manifold-m mwrap-3.5.5.1, wrapper revision 1 of upstream 3.5.5); -- GLOBAL and CN bytes are identical. -- -- The wrapper is Apache-2.0; the library it vendors and links statically, @@ -20,30 +20,30 @@ package = { }, xpm = { linux = { - ["3.5.5"] = { + ["3.5.5.1"] = { url = { - GLOBAL = "https://github.com/mcpplibs/manifold-m/releases/download/mwrap-3.5.5/manifold-m-3.5.5.tar.gz", - CN = "https://gitcode.com/mcpp-res/mwrap-manifold/releases/download/3.5.5/manifold-m-3.5.5.tar.gz", + GLOBAL = "https://github.com/mcpplibs/manifold-m/releases/download/mwrap-3.5.5.1/manifold-m-3.5.5.1.tar.gz", + CN = "https://gitcode.com/mcpp-res/mwrap-manifold/releases/download/3.5.5.1/manifold-m-3.5.5.1.tar.gz", }, - sha256 = "87325649c4f7f653e7fffd929a030d3fdd252bd2cdabae920d6cb88afdfacb85", + sha256 = "d80aa82f45a6aa10cf4d8611ad5c2140fb837015630f7710ee6ee4e078fd7d3a", }, }, macosx = { - ["3.5.5"] = { + ["3.5.5.1"] = { url = { - GLOBAL = "https://github.com/mcpplibs/manifold-m/releases/download/mwrap-3.5.5/manifold-m-3.5.5.tar.gz", - CN = "https://gitcode.com/mcpp-res/mwrap-manifold/releases/download/3.5.5/manifold-m-3.5.5.tar.gz", + GLOBAL = "https://github.com/mcpplibs/manifold-m/releases/download/mwrap-3.5.5.1/manifold-m-3.5.5.1.tar.gz", + CN = "https://gitcode.com/mcpp-res/mwrap-manifold/releases/download/3.5.5.1/manifold-m-3.5.5.1.tar.gz", }, - sha256 = "87325649c4f7f653e7fffd929a030d3fdd252bd2cdabae920d6cb88afdfacb85", + sha256 = "d80aa82f45a6aa10cf4d8611ad5c2140fb837015630f7710ee6ee4e078fd7d3a", }, }, windows = { - ["3.5.5"] = { + ["3.5.5.1"] = { url = { - GLOBAL = "https://github.com/mcpplibs/manifold-m/releases/download/mwrap-3.5.5/manifold-m-3.5.5.tar.gz", - CN = "https://gitcode.com/mcpp-res/mwrap-manifold/releases/download/3.5.5/manifold-m-3.5.5.tar.gz", + GLOBAL = "https://github.com/mcpplibs/manifold-m/releases/download/mwrap-3.5.5.1/manifold-m-3.5.5.1.tar.gz", + CN = "https://gitcode.com/mcpp-res/mwrap-manifold/releases/download/3.5.5.1/manifold-m-3.5.5.1.tar.gz", }, - sha256 = "87325649c4f7f653e7fffd929a030d3fdd252bd2cdabae920d6cb88afdfacb85", + sha256 = "d80aa82f45a6aa10cf4d8611ad5c2140fb837015630f7710ee6ee4e078fd7d3a", }, }, }, diff --git a/tests/mwrap/manifold-boolean/mcpp.toml b/tests/mwrap/manifold-boolean/mcpp.toml index a90c5e3b..e16ca04f 100644 --- a/tests/mwrap/manifold-boolean/mcpp.toml +++ b/tests/mwrap/manifold-boolean/mcpp.toml @@ -1,6 +1,6 @@ [package] name = "manifold-boolean" -version = "3.5.5" +version = "3.5.5.1" description = "Consume the immutable Manifold wrapper: booleans of solids and their volumes, a mesh in and out, the same mesh twice, an outline extruded and sliced" [indices] @@ -8,4 +8,4 @@ description = "Consume the immutable Manifold wrapper: booleans of solids and th # An explicit empty table overrides the legacy workspace redirect. [dependencies] -mcpplibs.mwrap.manifold = "3.5.5" +mcpplibs.mwrap.manifold = "3.5.5.1"