Skip to content

Pull lib3mf from VCPKG#37

Open
vijaiaeroastro wants to merge 14 commits intojschobben:masterfrom
vijaiaeroastro:master
Open

Pull lib3mf from VCPKG#37
vijaiaeroastro wants to merge 14 commits intojschobben:masterfrom
vijaiaeroastro:master

Conversation

@vijaiaeroastro
Copy link
Copy Markdown

@vijaiaeroastro vijaiaeroastro commented May 24, 2025

This PR updates colorscad to use lib3mf from vcpkg (see 3MFConsortium/lib3mf#424). I’ve verified that tests pass on all supported platforms.

Dependency update
colorscad was using a very old lib3mf. I initially upgraded to 2.4.1, but the existing test .3mf files do not include newer specs (2.4.1 adds trianglesets and volumetric/implicit specs) and the tests will fail otherwise. To maintain compatibility, this PR pins lib3mf to 2.3.2 in vcpkg.json.

Future upgrade
I recommend regenerating the test .3mf files with lib3mf 2.4.1 to take advantage of the new features. The next lib3mf release will include a static library, so upgrading then will simply require bumping the version in vcpkg.json (and a minor CI tweak).

Please review and merge if this meets your needs.

@jschobben
Copy link
Copy Markdown
Owner

jschobben commented May 25, 2025

This is great, thanks for this PR.
I'm new to VCPKG still, but not sure we can fully replace the usage of pkgconfig/fetchcontent. I'd like to use a preinstalled version of lib3mf when available (that might also be a requirement from Fedora, which has both lib3mf and colorscad packaged).
As for fetchcontent, I need to support exotic platforms (Termux on Android because I use that myself); I wasn't able to get vcpkg working there out-of-the-box with this PR's changes + a submodule fetch, it's also not a supported triplet so that's probably not a surprise.
Maybe VCPKG can be added to the existing setup; first try locating lib3mf via pkgconfig, if that fails use VCPKG, with ultimate fallback fetchcontent.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants