The option -export-dynamic is a linker option not (no longer?)
understood by the compiler; pass -rdynamic to the compiler to have it
pass -export-dynamic to the linker instead.
Use xdg-open as BROWSER instead of firefox.
Use freeglut instead of bundled library.
Merge two OPSYS==FreeBSD into one.
Add LICENSE_FILE.
Switch to DISTVERSION.
PR: 282050
Approved by: submitter is maintainer
It will be used by openscad.
Clipper2:
The Clipper2 library performs intersection, union, difference and
XOR boolean operations on both simple and complex polygons.
It also performs polygon offsetting.
This is a major update of my original Clipper library
that was written over 10 years ago.
That library I'm now calling Clipper1,
and while it still works very well,
Clipper2 is better in just about every way.
Update to the latest revicion.
While there integrate fix for the Makefile comments by @emaste
Differential Revision: https://reviews.freebsd.org/D47033
As noted in the libc++ 19 release notes [1], std::char_traits<> is now
only provided for char, char8_t, char16_t, char32_t and wchar_t, and any
instantiation for other types will fail.
This causes cad/kicad to fail to compile with clang 19 and libc++ 19,
resulting in errors similar to:
/wrkdirs/usr/ports/cad/kicad/work/kicad-7.0.2/thirdparty/nanodbc/nanodbc/nanodbc.cpp:261:25: error: implicit instantiation of undefined template 'std::char_traits<unsigned short>'
261 | auto const n = std::char_traits<NANODBC_SQLCHAR>::length(array);
| ^
/usr/include/c++/v1/__string/char_traits.h:45:8: note: template is declared here
45 | struct char_traits;
| ^
/wrkdirs/usr/ports/cad/kicad/work/kicad-7.0.2/thirdparty/nanodbc/nanodbc/nanodbc.cpp:3576:52: error: implicit instantiation of undefined template 'std::char_traits<unsigned short>'
3576 | dsn.name = string(&name[0], &name[std::char_traits<NANODBC_SQLCHAR>::length(name)]);
| ^
/usr/include/c++/v1/__string/char_traits.h:45:8: note: template is declared here
45 | struct char_traits;
| ^
/wrkdirs/usr/ports/cad/kicad/work/kicad-7.0.2/thirdparty/nanodbc/nanodbc/nanodbc.cpp:3578:49: error: implicit instantiation of undefined template 'std::char_traits<unsigned short>'
3578 | string(&driver[0], &driver[std::char_traits<NANODBC_SQLCHAR>::length(driver)]);
| ^
/usr/include/c++/v1/__string/char_traits.h:45:8: note: template is declared here
45 | struct char_traits;
| ^
/wrkdirs/usr/ports/cad/kicad/work/kicad-7.0.2/thirdparty/nanodbc/nanodbc/nanodbc.cpp:3629:54: error: implicit instantiation of undefined template 'std::char_traits<unsigned short>'
3629 | drv.name = string(&descr[0], &descr[std::char_traits<NANODBC_SQLCHAR>::length(descr)]);
| ^
/usr/include/c++/v1/__string/char_traits.h:45:8: note: template is declared here
45 | struct char_traits;
| ^
and:
/usr/include/c++/v1/string:820:42: error: implicit instantiation of undefined template 'std::char_traits<unsigned short>'
820 | static_assert(is_same<_CharT, typename traits_type::char_type>::value,
| ^
/wrkdirs/usr/ports/cad/kicad/work/kicad-7.0.2/thirdparty/compoundfilereader/compoundfilereader.h:226:21: note: in instantiation of template class 'std::basic_string<unsigned short>' requested here
226 | utf16string dir;
| ^
/usr/include/c++/v1/__fwd/string.h:23:29: note: template is declared here
23 | struct _LIBCPP_TEMPLATE_VIS char_traits;
| ^
The first batch of errors can be fixed by providing a simple `length()`
function for the `NANODBC_SQLCHAR const*` type. The second batch can be
fixed by using `std::basic_string<char16_t>` for `utf16string`, and
adjusting the call to `std::basic_string<char16_t>::append`.
[1] https://libcxx.llvm.org/ReleaseNotes/19.html#deprecations-and-removals
PR: 281886
MFH: 2024Q3
The Assembly Workbench uses OndselSolver, which is technically
it's own project but has no actual release yet. In this state,
it's easier to just drop the code into FreeCAD: FreeCAD upstream
does this with a git submodule.