diff --git a/cad/Makefile b/cad/Makefile index ecbb755f78c0..83fb879f5e67 100644 --- a/cad/Makefile +++ b/cad/Makefile @@ -1,172 +1,173 @@ COMMENT = CAD tools SUBDIR += Clipper2 SUBDIR += OrcaSlicer SUBDIR += PrusaSlicer SUBDIR += abc SUBDIR += admesh SUBDIR += adms SUBDIR += alliance SUBDIR += antimony SUBDIR += apio SUBDIR += appcsxcad SUBDIR += archimedes SUBDIR += astk-client SUBDIR += astk-serveur SUBDIR += atlc SUBDIR += brlcad SUBDIR += calculix SUBDIR += calculix-ccx SUBDIR += camotics SUBDIR += camv-rnd SUBDIR += caneda SUBDIR += cascade SUBDIR += cascade-compiler SUBDIR += chipvault SUBDIR += csxcad SUBDIR += cura-engine SUBDIR += digital SUBDIR += dinotrace SUBDIR += ecpprog SUBDIR += electric SUBDIR += electric-ng SUBDIR += fasm SUBDIR += fdm_materials SUBDIR += feappv SUBDIR += fidocadj SUBDIR += freecad SUBDIR += freecad-devel SUBDIR += freehdl SUBDIR += fritzing SUBDIR += gds3d SUBDIR += gdscpp SUBDIR += gdsreader SUBDIR += gdstk SUBDIR += gdt SUBDIR += geda SUBDIR += gerbv SUBDIR += ghdl SUBDIR += gmsh SUBDIR += gnucap SUBDIR += gplcver SUBDIR += graywolf SUBDIR += gspiceui SUBDIR += gtkwave SUBDIR += horizon-eda SUBDIR += hs-verismith SUBDIR += ifcopenshell SUBDIR += irsim SUBDIR += iverilog SUBDIR += k40-whisperer SUBDIR += kicad SUBDIR += kicad-devel SUBDIR += kicad-doc SUBDIR += kicad-library-footprints SUBDIR += kicad-library-footprints-devel SUBDIR += kicad-library-packages3d SUBDIR += kicad-library-packages3d-devel SUBDIR += kicad-library-symbols SUBDIR += kicad-library-symbols-devel SUBDIR += kicad-library-templates SUBDIR += kicad-library-templates-devel SUBDIR += klayout SUBDIR += ktechlab SUBDIR += ldraw SUBDIR += ldview SUBDIR += leocad SUBDIR += lepton-eda SUBDIR += lib3mf SUBDIR += libbgcode + SUBDIR += libfive SUBDIR += libgdsii SUBDIR += libopencad SUBDIR += librecad SUBDIR += libredwg SUBDIR += librepcb SUBDIR += librnd SUBDIR += logisim SUBDIR += magic SUBDIR += meshdev SUBDIR += netgen SUBDIR += netgen-lvs SUBDIR += ngspice_rework SUBDIR += nvc SUBDIR += opencascade SUBDIR += opencascade740 SUBDIR += openctm SUBDIR += openfpgaloader SUBDIR += openroad SUBDIR += openscad SUBDIR += openscad-devel SUBDIR += opentimer SUBDIR += openvsp SUBDIR += oregano SUBDIR += p5-GDS2 SUBDIR += p5-Verilog-Perl SUBDIR += padring SUBDIR += pcb SUBDIR += pcb-rnd SUBDIR += pdnmesh SUBDIR += py-amaranth SUBDIR += py-cocotb SUBDIR += py-csxcad SUBDIR += py-edalize SUBDIR += py-ezdxf SUBDIR += py-gdspy SUBDIR += py-gdstk SUBDIR += py-gmsh SUBDIR += py-lcapy SUBDIR += py-phidl SUBDIR += py-pyfda SUBDIR += py-pygmsh SUBDIR += py-pymtl SUBDIR += py-pyvcd SUBDIR += py-verilog-parser SUBDIR += py-vunit-hdl SUBDIR += python-gdsii SUBDIR += pythonocc-core SUBDIR += qcad SUBDIR += qcadjsapi SUBDIR += qcsxcad SUBDIR += qelectrotech SUBDIR += qflow SUBDIR += qmls SUBDIR += qrouter SUBDIR += qspeakers SUBDIR += qtjsapi SUBDIR += qucs-s SUBDIR += qucsator SUBDIR += repsnapper SUBDIR += route-rnd SUBDIR += rubygem-gdsii SUBDIR += sch-rnd SUBDIR += scotch SUBDIR += silice SUBDIR += solvespace SUBDIR += sp2sp SUBDIR += spice SUBDIR += stepcode SUBDIR += stm32flash SUBDIR += sumo SUBDIR += surelog SUBDIR += surfer SUBDIR += svlint SUBDIR += svls SUBDIR += sweethome3d SUBDIR += symbiyosys SUBDIR += tochnog SUBDIR += uhdm SUBDIR += uranium SUBDIR += verilator SUBDIR += verilog-mode.el SUBDIR += veroroute SUBDIR += veryl SUBDIR += xcircuit SUBDIR += xschem SUBDIR += xyce SUBDIR += yosys SUBDIR += yosys-ghdl-plugin SUBDIR += yosys-systemverilog SUBDIR += z88 SUBDIR += zcad .include diff --git a/cad/libfive/Makefile b/cad/libfive/Makefile new file mode 100644 index 000000000000..0e9a38948d3b --- /dev/null +++ b/cad/libfive/Makefile @@ -0,0 +1,52 @@ +PORTNAME= libfive +DISTVERSION= g20251112 +CATEGORIES= cad + +MAINTAINER= hiroo.ono+freebsd@gmail.com +COMMENT= Infrastructure for solid modeling +WWW= https://libfive.com/ + +LICENSE= GPLv2+ MPL20 +LICENSE_COMB= multi +LICENSE_FILE= ${WRKSRC}/README.md + +BUILD_DEPENDS= ${LOCALBASE}/include/eigen3/Eigen/Core:math/eigen3 \ + ${LOCALBASE}/include/vulkan/vulkan.h:graphics/vulkan-headers +LIB_DEPENDS= libboost_container.so:devel/boost-libs \ + libpng16.so:graphics/png + +USES= cmake gl pkgconfig +USE_GITHUB= yes +GH_TAGNAME= c9e97343e0af998cd1696e85583eccba95532b96 +USE_GL= opengl +USE_QT= 3d base + +CMAKE_ARGS= -DCMAKE_INSTALL_LIBDIR:STRING=lib +CMAKE_ON= ${WITH_DEBUG:DENABLE_DEBUG} + +OPTIONS_DEFINE= GUILE PYTHON STUDIO +OPTIONS_DEFAULT= GUILE PYTHON STUDIO +OPTIONS_SUB= + +STUDIO_DESC= Build Studio Application + +GUILE_USES= guile:3.0 +GUILE_CMAKE_ON= -DBUILD_GUILE_BINDINGS:BOOL=ON +GUILE_CMAKE_OFF= -DBUILD_GUILE_BINDINGS:BOOL=OFF +GUILE_BINARY_ALIAS= guild=guild3 guile=guile3 +PYTHON_USES= python +PYTHON_CMAKE_ON= -DBUILD_PYTHON_BINDINGS:BOOL=ON \ + -DPYTHON_SITE_PACKAGES_DIR:STRING=${PYTHON_SITELIBDIR} +PYTHON_CMAKE_OFF= -DBUILD_PYTHON_BINDINGS:BOOL=OFF +STUDIO_USES= qt:6 +STUDIO_CMAKE_ON= -DBUILD_STUDIO_APP:BOOL=ON +STUDIO_CMAKE_OFF= -DBUILD_STUDIO_APP:BOOL=OFF + +.include + +.if ${PORT_OPTIONS:MSTUDIO} && !(${PORT_OPTIONS:MGUILE} || \ + ${PORT_OPTIONS:MPYTHON}) +IGNORE= STUDIO option needs either GUILE or PYTHON option +.endif + +.include diff --git a/cad/libfive/distinfo b/cad/libfive/distinfo new file mode 100644 index 000000000000..465417e981a4 --- /dev/null +++ b/cad/libfive/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1789270800 +SHA256 (libfive-libfive-0.0.0-20251112-c9e97343e0af998cd1696e85583eccba95532b96_GH0.tar.gz) = 022849a9ccbac740ad16866df626f2e6a0ad07602521e25fb984e74461a66247 +SIZE (libfive-libfive-0.0.0-20251112-c9e97343e0af998cd1696e85583eccba95532b96_GH0.tar.gz) = 917986 diff --git a/cad/libfive/files/patch-CMakeLists.txt b/cad/libfive/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..342a3353890b --- /dev/null +++ b/cad/libfive/files/patch-CMakeLists.txt @@ -0,0 +1,20 @@ +--- CMakeLists.txt.orig 2025-11-12 13:52:17 UTC ++++ CMakeLists.txt +@@ -64,7 +64,7 @@ if(NOT MSVC) + endif() + + set(CMAKE_CXX_FLAGS_DEBUG "-O0") +- set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -DEIGEN_NO_DEBUG") ++ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DEIGEN_NO_DEBUG") + else() + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + set(CMAKE_CXX_FLAGS "/EHsc /WX /D_USE_MATH_DEFINES /D_SCL_SECURE_NO_WARNINGS") +@@ -124,7 +124,7 @@ if (UNIX AND NOT(APPLE)) + + if (UNIX AND NOT(APPLE)) + find_package(Threads REQUIRED) +- set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -latomic") ++ # set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -latomic") + endif(UNIX AND NOT(APPLE)) + + ################################################################################ diff --git a/cad/libfive/files/patch-studio_include_studio_camera.hpp b/cad/libfive/files/patch-studio_include_studio_camera.hpp new file mode 100644 index 000000000000..4dd3362a7538 --- /dev/null +++ b/cad/libfive/files/patch-studio_include_studio_camera.hpp @@ -0,0 +1,10 @@ +--- studio/include/studio/camera.hpp.orig 2026-08-26 03:38:22 UTC ++++ studio/include/studio/camera.hpp +@@ -21,6 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Bos + #include + #include + #include ++#include + + namespace Studio { + class Camera : public QObject diff --git a/cad/libfive/files/patch-studio_include_studio_view.hpp b/cad/libfive/files/patch-studio_include_studio_view.hpp new file mode 100644 index 000000000000..a646b85887d6 --- /dev/null +++ b/cad/libfive/files/patch-studio_include_studio_view.hpp @@ -0,0 +1,11 @@ +--- studio/include/studio/view.hpp.orig 2025-11-12 13:52:17 UTC ++++ studio/include/studio/view.hpp +@@ -110,7 +110,7 @@ protected slots: + void varsDragged(QMap vs); + + protected slots: +- void update() { QOpenGLWidget::update(); } ++ void update() { QWidget::update(); } + void redrawPicker(); + + protected: diff --git a/cad/libfive/files/patch-studio_src_bbox.cpp b/cad/libfive/files/patch-studio_src_bbox.cpp new file mode 100644 index 000000000000..1bf2303d7c2d --- /dev/null +++ b/cad/libfive/files/patch-studio_src_bbox.cpp @@ -0,0 +1,10 @@ +--- studio/src/bbox.cpp.orig 2026-08-26 03:29:16 UTC ++++ studio/src/bbox.cpp +@@ -18,6 +18,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Bos + */ + #include + #include ++#include + + #include "studio/bbox.hpp" + #include "studio/camera.hpp" diff --git a/cad/libfive/files/patch-studio_src_camera.cpp b/cad/libfive/files/patch-studio_src_camera.cpp new file mode 100644 index 000000000000..e87129e97752 --- /dev/null +++ b/cad/libfive/files/patch-studio_src_camera.cpp @@ -0,0 +1,11 @@ +--- studio/src/camera.cpp.orig 2026-08-26 03:28:33 UTC ++++ studio/src/camera.cpp +@@ -18,6 +18,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Bos + */ + #include + ++#include ++ + #include "studio/camera.hpp" + + namespace Studio { diff --git a/cad/libfive/files/patch-studio_src_view.cpp b/cad/libfive/files/patch-studio_src_view.cpp new file mode 100644 index 000000000000..a39f6681d8a9 --- /dev/null +++ b/cad/libfive/files/patch-studio_src_view.cpp @@ -0,0 +1,10 @@ +--- studio/src/view.cpp.orig 2025-11-12 13:52:17 UTC ++++ studio/src/view.cpp +@@ -19,6 +19,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Bos + #include + #include + #include ++#include + + #include "studio/color.hpp" + #include "studio/view.hpp" diff --git a/cad/libfive/pkg-descr b/cad/libfive/pkg-descr new file mode 100644 index 000000000000..c7d51c2e28e2 --- /dev/null +++ b/cad/libfive/pkg-descr @@ -0,0 +1,4 @@ +libfive is a software library and set of tools for solid modeling, +especially suited for parametric and procedural design. It is +infrastructure for generative design, mass customization, and +domain-specific CAD tools. diff --git a/cad/libfive/pkg-plist b/cad/libfive/pkg-plist new file mode 100644 index 000000000000..3bff3e48a9e7 --- /dev/null +++ b/cad/libfive/pkg-plist @@ -0,0 +1,97 @@ +%%STUDIO%%bin/ONStudio +include/libfive.h +include/libfive/eval/base.hpp +include/libfive/eval/clause.hpp +include/libfive/eval/deck.hpp +include/libfive/eval/eval_array.hpp +include/libfive/eval/eval_array_size.hpp +include/libfive/eval/eval_deriv_array.hpp +include/libfive/eval/eval_feature.hpp +include/libfive/eval/eval_interval.hpp +include/libfive/eval/eval_jacobian.hpp +include/libfive/eval/evaluator.hpp +include/libfive/eval/feature.hpp +include/libfive/eval/interval.hpp +include/libfive/eval/tape.hpp +include/libfive/oracle/oracle.hpp +include/libfive/oracle/oracle_clause.hpp +include/libfive/oracle/oracle_context.hpp +include/libfive/oracle/oracle_storage.hpp +include/libfive/oracle/transformed_oracle.hpp +include/libfive/oracle/transformed_oracle_clause.hpp +include/libfive/render/axes.hpp +include/libfive/render/brep/brep.hpp +include/libfive/render/brep/contours.hpp +include/libfive/render/brep/dc/dc_contourer.hpp +include/libfive/render/brep/dc/dc_flags.hpp +include/libfive/render/brep/dc/dc_mesher.hpp +include/libfive/render/brep/dc/dc_neighbors.hpp +include/libfive/render/brep/dc/dc_tree.hpp +include/libfive/render/brep/dc/dc_worker_pool.hpp +include/libfive/render/brep/dc/intersection.hpp +include/libfive/render/brep/dc/marching.hpp +include/libfive/render/brep/default_new_delete.hpp +include/libfive/render/brep/dual.hpp +include/libfive/render/brep/edge_tables.hpp +include/libfive/render/brep/free_thread_handler.hpp +include/libfive/render/brep/hybrid/hybrid_debug.hpp +include/libfive/render/brep/hybrid/hybrid_mesher.hpp +include/libfive/render/brep/hybrid/hybrid_neighbors.hpp +include/libfive/render/brep/hybrid/hybrid_tree.hpp +include/libfive/render/brep/hybrid/hybrid_worker_pool.hpp +include/libfive/render/brep/indexes.hpp +include/libfive/render/brep/manifold_tables.hpp +include/libfive/render/brep/mesh.hpp +include/libfive/render/brep/neighbor_tables.hpp +include/libfive/render/brep/neighbors.hpp +include/libfive/render/brep/object_pool.hpp +include/libfive/render/brep/per_thread_brep.hpp +include/libfive/render/brep/progress.hpp +include/libfive/render/brep/region.hpp +include/libfive/render/brep/root.hpp +include/libfive/render/brep/settings.hpp +include/libfive/render/brep/simplex/qef.hpp +include/libfive/render/brep/simplex/simplex_debug.hpp +include/libfive/render/brep/simplex/simplex_mesher.hpp +include/libfive/render/brep/simplex/simplex_neighbors.hpp +include/libfive/render/brep/simplex/simplex_tree.hpp +include/libfive/render/brep/simplex/simplex_worker_pool.hpp +include/libfive/render/brep/simplex/surface_edge_map.hpp +include/libfive/render/brep/util.hpp +include/libfive/render/brep/vol/vol_neighbors.hpp +include/libfive/render/brep/vol/vol_tree.hpp +include/libfive/render/brep/vol/vol_worker_pool.hpp +include/libfive/render/brep/worker_pool.hpp +include/libfive/render/brep/xtree.hpp +include/libfive/render/discrete/heightmap.hpp +include/libfive/render/discrete/voxels.hpp +include/libfive/solve/solver.hpp +include/libfive/tree/archive.hpp +include/libfive/tree/data.hpp +include/libfive/tree/deserializer.hpp +include/libfive/tree/key.hpp +include/libfive/tree/opcode.hpp +include/libfive/tree/operations.hpp +include/libfive/tree/serializer.hpp +include/libfive/tree/tree.hpp +%%GUILE%%%%GUILE_SITE_CCACHE%%/libfive/kernel.go +%%GUILE%%%%GUILE_SITE_CCACHE%%/libfive/lib.go +%%GUILE%%%%GUILE_SITE_CCACHE%%/libfive/sandbox.go +%%GUILE%%%%GUILE_SITE_CCACHE%%/libfive/stdlib/csg.go +%%GUILE%%%%GUILE_SITE_CCACHE%%/libfive/stdlib/shapes.go +%%GUILE%%%%GUILE_SITE_CCACHE%%/libfive/stdlib/text.go +%%GUILE%%%%GUILE_SITE_CCACHE%%/libfive/stdlib/transforms.go +%%GUILE%%%%GUILE_SITE_CCACHE%%/libfive/util.go +%%GUILE%%%%GUILE_SITE_CCACHE%%/libfive/vec.go +lib/libfive-stdlib.so +lib/libfive.so +%%PYTHON%%%%PYTHON_SITELIBDIR%%/libfive/__init__.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/libfive/ffi.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/libfive/runner.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/libfive/shape.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/libfive/stdlib/__init__.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/libfive/stdlib/csg.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/libfive/stdlib/shapes.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/libfive/stdlib/text.py +%%PYTHON%%%%PYTHON_SITELIBDIR%%/libfive/stdlib/transforms.py +libdata/pkgconfig/libfive.pc