1
0
mirror of https://github.com/openbsd/ports.git synced 2025-12-06 07:36:10 +00:00

Import cad/lib3mf

lib3mf is a C++ implementation of the 3D Manufacturing Format file
standard.

It provides 3MF reading and writing capabilities, as well as
conversion and validation tools for input and output data. lib3mf
runs on Windows, Linux and MacOS and offers a clean and easy-to-use
API in various programming languages to speed up the development
and keep integration costs at a minimum.

As 3MF shall become an universal 3D Printing standard, its quick
adoption is very important. This library shall lower all barriers
of adoption to any possible user, let it be software providers,
hardware providers, service providers or middleware tools.

The specification can be downloaded at http://3mf.io/specification/.

Tweaks and OK from both sthen@ and jtt@
This commit is contained in:
afresh1
2025-11-29 23:38:42 +00:00
parent 95ef69b530
commit e3b3af1478
6 changed files with 143 additions and 0 deletions

31
cad/lib3mf/Makefile Normal file
View File

@@ -0,0 +1,31 @@
V = 2.4.1
COMMENT = implementation of the 3D Manufacturing Format file standard
GH_ACCOUNT = 3MFConsortium
GH_PROJECT = lib3mf
GH_TAGNAME = v${V}
CATEGORIES = cad
# BSD-2-Clause license
PERMIT_PACKAGE = Yes
MODULES = devel/cmake lang/python
COMPILER = base-clang ports-gcc base-gcc
SHARED_LIBS += 3mf 0.0 # 0.0
BUILD_DEPENDS = devel/gtest
LIB_DEPENDS = archivers/libzip
CONFIGURE_ARGS = -DUSE_INCLUDED_ZLIB=OFF \
-DUSE_INCLUDED_LIBZIP=OFF \
-DUSE_INCLUDED_SSL=OFF \
-DCMAKE_INSTALL_INCLUDEDIR=include/lib3mf
post-install:
${MODPY_COMPILEALL} ${PREFIX}/include/Bindings/Python/Lib3MF.py
.include <bsd.port.mk>

2
cad/lib3mf/distinfo Normal file
View File

@@ -0,0 +1,2 @@
SHA256 (lib3mf-2.4.1.tar.gz) = CB3qZt3RuVhkS/rA/ppYDmNyYGFFnvzlGQoQFhCC+Pc=
SIZE (lib3mf-2.4.1.tar.gz) = 36313494

View File

@@ -0,0 +1,23 @@
Index: CMakeLists.txt
--- CMakeLists.txt.orig
+++ CMakeLists.txt
@@ -201,7 +201,8 @@ if (USE_INCLUDED_LIBZIP)
else()
find_package(PkgConfig REQUIRED)
pkg_check_modules(LIBZIP REQUIRED libzip)
- target_link_libraries(${PROJECT_NAME} ${LIBZIP_LIBRARIES})
+ target_link_libraries(${PROJECT_NAME} ${LIBZIP_LINK_LIBRARIES})
+ target_include_directories(${PROJECT_NAME} PUBLIC ${LIBZIP_INCLUDE_DIRS})
endif()
@@ -210,7 +211,8 @@ if (USE_INCLUDED_ZLIB)
else()
find_package(PkgConfig REQUIRED)
pkg_check_modules(ZLIB REQUIRED zlib)
- target_link_libraries(${PROJECT_NAME} ${ZLIB_LIBRARIES})
+ target_link_libraries(${PROJECT_NAME} ${ZLIB_LINK_LIBRARIES})
+ target_include_directories(${PROJECT_NAME} PUBLIC ${ZLIB_INCLUDE_DIRS})
endif()

View File

@@ -0,0 +1,28 @@
Index: Tests/CPP_Bindings/CMakeLists.txt
--- Tests/CPP_Bindings/CMakeLists.txt.orig
+++ Tests/CPP_Bindings/CMakeLists.txt
@@ -3,7 +3,7 @@
SET(TESTNAME "Test_CPP_Bindings")
-file(GLOB GTEST_SRC_FILES "${CMAKE_SOURCE_DIR}/Libraries/googletest/Source/*cc")
+#file(GLOB GTEST_SRC_FILES "${CMAKE_SOURCE_DIR}/Libraries/googletest/Source/*cc")
set(SRCS_UNITTEST
./Source/AllTests.cpp
@@ -48,10 +48,13 @@ add_executable(${TESTNAME} ${SRCS_UNITTEST} ${GTEST_SR
set(STARTUPPROJECT ${TESTNAME})
+find_package(PkgConfig REQUIRED)
+pkg_check_modules(GTEST REQUIRED gtest)
+target_link_libraries(${TESTNAME} PUBLIC ${GTEST_LINK_LIBRARIES})
+
target_include_directories(${TESTNAME} PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/Include
- ${CMAKE_SOURCE_DIR}/Libraries/googletest/Include
- ${CMAKE_CURRENT_SOURCE_DIR}/../../Libraries/libressl/include
+ ${GTEST_INCLUDE_DIRS}
${CMAKE_CURRENT_SOURCE_DIR_AUTOGENERATED}/Bindings/Cpp
)

15
cad/lib3mf/pkg/DESCR Normal file
View File

@@ -0,0 +1,15 @@
lib3mf is a C++ implementation of the 3D Manufacturing Format file
standard.
It provides 3MF reading and writing capabilities, as well as
conversion and validation tools for input and output data. lib3mf
runs on Windows, Linux and MacOS and offers a clean and easy-to-use
API in various programming languages to speed up the development
and keep integration costs at a minimum.
As 3MF shall become an universal 3D Printing standard, its quick
adoption is very important. This library shall lower all barriers
of adoption to any possible user, let it be software providers,
hardware providers, service providers or middleware tools.
The specification can be downloaded at http://3mf.io/specification/.

44
cad/lib3mf/pkg/PLIST Normal file
View File

@@ -0,0 +1,44 @@
include/lib3mf/
include/lib3mf/Bindings/
include/lib3mf/Bindings/C/
include/lib3mf/Bindings/C/lib3mf.h
include/lib3mf/Bindings/C/lib3mf_types.h
include/lib3mf/Bindings/CDynamic/
include/lib3mf/Bindings/CDynamic/lib3mf_dynamic.cc
include/lib3mf/Bindings/CDynamic/lib3mf_dynamic.h
include/lib3mf/Bindings/CDynamic/lib3mf_types.h
include/lib3mf/Bindings/CSharp/
include/lib3mf/Bindings/CSharp/Lib3MF.cs
include/lib3mf/Bindings/Cpp/
include/lib3mf/Bindings/Cpp/lib3mf_abi.hpp
include/lib3mf/Bindings/Cpp/lib3mf_implicit.hpp
include/lib3mf/Bindings/Cpp/lib3mf_types.hpp
include/lib3mf/Bindings/CppDynamic/
include/lib3mf/Bindings/CppDynamic/lib3mf_abi.hpp
include/lib3mf/Bindings/CppDynamic/lib3mf_dynamic.h
include/lib3mf/Bindings/CppDynamic/lib3mf_dynamic.hpp
include/lib3mf/Bindings/CppDynamic/lib3mf_types.hpp
include/lib3mf/Bindings/Go/
include/lib3mf/Bindings/Go/cfunc.go
include/lib3mf/Bindings/Go/lib3mf.go
include/lib3mf/Bindings/Go/lib3mf_dynamic.c
include/lib3mf/Bindings/Go/lib3mf_dynamic.cc
include/lib3mf/Bindings/Go/lib3mf_dynamic.h
include/lib3mf/Bindings/Go/lib3mf_impl.go
include/lib3mf/Bindings/Go/lib3mf_types.h
include/lib3mf/Bindings/NodeJS/
include/lib3mf/Bindings/NodeJS/binding.gyp
include/lib3mf/Bindings/NodeJS/lib3mf_dynamic.cc
include/lib3mf/Bindings/NodeJS/lib3mf_dynamic.h
include/lib3mf/Bindings/NodeJS/lib3mf_nodeaddon.cc
include/lib3mf/Bindings/NodeJS/lib3mf_nodewrapper.cc
include/lib3mf/Bindings/NodeJS/lib3mf_nodewrapper.h
include/lib3mf/Bindings/NodeJS/lib3mf_types.h
include/lib3mf/Bindings/Pascal/
include/lib3mf/Bindings/Pascal/Unit_Lib3MF.pas
include/lib3mf/Bindings/Python/
include/lib3mf/Bindings/Python/Lib3MF.py
lib/cmake/lib3mf/
lib/cmake/lib3mf/lib3mfConfig.cmake
@lib lib/lib3mf.so.${LIB3mf_VERSION}
lib/pkgconfig/lib3mf.pc