aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/lib3mf
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/lib3mf
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/lib3mf')
-rw-r--r--vcpkg/ports/lib3mf/lib3mf_vcpkg.patch116
-rw-r--r--vcpkg/ports/lib3mf/portfile.cmake31
-rw-r--r--vcpkg/ports/lib3mf/usage7
-rw-r--r--vcpkg/ports/lib3mf/vcpkg.json22
4 files changed, 176 insertions, 0 deletions
diff --git a/vcpkg/ports/lib3mf/lib3mf_vcpkg.patch b/vcpkg/ports/lib3mf/lib3mf_vcpkg.patch
new file mode 100644
index 0000000..7052bf6
--- /dev/null
+++ b/vcpkg/ports/lib3mf/lib3mf_vcpkg.patch
@@ -0,0 +1,116 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c6a31790..fff0e5c7 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-cmake_minimum_required (VERSION 3.0)
++cmake_minimum_required (VERSION 3.5)
+
+ cmake_policy(SET CMP0054 NEW)
+ cmake_policy(SET CMP0048 NEW)
+@@ -145,13 +145,13 @@ endif()
+ SOURCE_GROUP("Source Files\\Autogenerated" FILES ${ACT_GENERATED_SOURCE})
+
+
+-file(GLOB
+- LIBS_INCLUDE
+- LIST_DIRECTORIES true
+- ${CMAKE_CURRENT_SOURCE_DIR}/Libraries/*/Include
+-)
+-list(FILTER LIBS_INCLUDE EXCLUDE REGEX "zlib|libzip|libressl")
+-target_include_directories(${PROJECT_NAME} PRIVATE ${LIBS_INCLUDE})
++#file(GLOB
++# LIBS_INCLUDE
++# LIST_DIRECTORIES true
++# ${CMAKE_CURRENT_SOURCE_DIR}/Libraries/*/Include
++#)
++#list(FILTER LIBS_INCLUDE EXCLUDE REGEX "zlib|libzip|libressl")
++#target_include_directories(${PROJECT_NAME} PRIVATE ${LIBS_INCLUDE})
+
+ # allow FASTFLOAT_ALLOWS_LEADING_PLUS
+ add_definitions(-DFASTFLOAT_ALLOWS_LEADING_PLUS=1)
+@@ -199,22 +199,39 @@ if (USE_INCLUDED_LIBZIP)
+ endif()
+
+ else()
+- find_package(PkgConfig REQUIRED)
+- pkg_check_modules(LIBZIP REQUIRED libzip)
+- target_link_libraries(${PROJECT_NAME} ${LIBZIP_LIBRARIES})
++# find_package(PkgConfig REQUIRED)
++# pkg_check_modules(LIBZIP REQUIRED libzip)
++# target_link_libraries(${PROJECT_NAME} ${LIBZIP_LIBRARIES})
++ find_package(LIBZIP REQUIRED)
++ target_link_libraries(${PROJECT_NAME} PRIVATE libzip::zip)
+ endif()
+
+
+ if (USE_INCLUDED_ZLIB)
+ target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/Libraries/zlib/Include)
+ else()
+- find_package(PkgConfig REQUIRED)
+- pkg_check_modules(ZLIB REQUIRED zlib)
+- target_link_libraries(${PROJECT_NAME} ${ZLIB_LIBRARIES})
++# find_package(PkgConfig REQUIRED)
++# pkg_check_modules(ZLIB REQUIRED zlib)
++# target_link_libraries(${PROJECT_NAME} ${ZLIB_LIBRARIES})
++ find_package(ZLIB REQUIRED)
++ target_link_libraries(${PROJECT_NAME} PRIVATE ZLIB::ZLIB)
+ endif()
+
+
+-target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/submodules/fast_float/include)
++#devendor base64
++# Include the directory for header files
++find_path(CPP_BASE64_INCLUDE_DIRS "cpp-base64/base64.cpp")
++include_directories("${CPP_BASE64_INCLUDE_DIRS}/cpp-base64")
++set(BASE64_SRC
++ ${CPP_BASE64_INCLUDE_DIRS}/cpp-base64/base64.h
++ ${CPP_BASE64_INCLUDE_DIRS}/cpp-base64/base64.cpp)
++message("BASE64_SRC" ${BASE64_SRC})
++# Append BASE64_SRC to the target
++target_sources(${PROJECT_NAME} PRIVATE ${BASE64_SRC})
++
++#devendor FastFloat
++find_package(FastFloat CONFIG REQUIRED)
++target_link_libraries(${PROJECT_NAME} PRIVATE FastFloat::fast_float)
+
+
+ set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" IMPORT_PREFIX "" )
+diff --git a/Include/Common/NMR_StringUtils.h b/Include/Common/NMR_StringUtils.h
+index 4cafe3a7..b32bc76a 100644
+--- a/Include/Common/NMR_StringUtils.h
++++ b/Include/Common/NMR_StringUtils.h
+@@ -37,7 +37,7 @@ and Exception-safe
+ #include "Common/NMR_Types.h"
+ #include "Common/NMR_Local.h"
+
+-#include <fast_float.h>
++#include <fast_float/fast_float.h>
+
+ #include <string>
+ #include <string.h>
+diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt
+index 27973c84..bc93c89d 100644
+--- a/Source/CMakeLists.txt
++++ b/Source/CMakeLists.txt
+@@ -12,7 +12,7 @@ if (USE_INCLUDED_ZLIB)
+ file(GLOB ZLIB_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "Libraries/zlib/Source/*.c")
+ endif()
+
+-file (GLOB CPPBASE64_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "Libraries/cpp-base64/Source/*.cpp")
++#file (GLOB CPPBASE64_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "Libraries/cpp-base64/Source/*.cpp")
+
+ # sources
+ set(SRCS_PLATFORM
+diff --git a/cmake/lib3mfConfig.cmake b/cmake/lib3mfConfig.cmake
+index f1305b8f..b7755c3e 100644
+--- a/cmake/lib3mfConfig.cmake
++++ b/cmake/lib3mfConfig.cmake
+@@ -1,4 +1,7 @@
+ # lib3mfConfig.cmake
++include(CMakeFindDependencyMacro)
++find_dependency(libzip)
++find_dependency(ZLIB)
+
+ if(VCPKG_TOOLCHAIN)
+ message("Lib3MF - VCPKG Tool Chain")
diff --git a/vcpkg/ports/lib3mf/portfile.cmake b/vcpkg/ports/lib3mf/portfile.cmake
new file mode 100644
index 0000000..ccc77b4
--- /dev/null
+++ b/vcpkg/ports/lib3mf/portfile.cmake
@@ -0,0 +1,31 @@
+vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO 3MFConsortium/lib3mf
+ REF "v${VERSION}"
+ SHA512 91d3928315bd5d1a8553284505d28c7d839a3cbd8b07a87bca5a21087fffa8ba7a1738ed14313212815a09e33f7a82318f7b069f1bbe40456b57ec528379ab4b
+ PATCHES
+ lib3mf_vcpkg.patch
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DUSE_INCLUDED_ZLIB=OFF
+ -DUSE_INCLUDED_LIBZIP=OFF
+ -DUSE_INCLUDED_SSL=OFF
+ -DBUILD_FOR_CODECOVERAGE=OFF
+ -DLIB3MF_TESTS=OFF
+)
+
+vcpkg_cmake_install()
+vcpkg_copy_pdbs()
+vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/lib3mf)
+vcpkg_fixup_pkgconfig()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/vcpkg/ports/lib3mf/usage b/vcpkg/ports/lib3mf/usage
new file mode 100644
index 0000000..bae4461
--- /dev/null
+++ b/vcpkg/ports/lib3mf/usage
@@ -0,0 +1,7 @@
+lib3mf provides CMake targets:
+
+ find_package(lib3mf CONFIG REQUIRED)
+ target_link_libraries(target_name PRIVATE lib3mf::lib3mf)
+
+For examples and use cases, kindly check
+https://github.com/3MFConsortium/lib3mf/tree/develop/SDK/CPackExamples
diff --git a/vcpkg/ports/lib3mf/vcpkg.json b/vcpkg/ports/lib3mf/vcpkg.json
new file mode 100644
index 0000000..73178e0
--- /dev/null
+++ b/vcpkg/ports/lib3mf/vcpkg.json
@@ -0,0 +1,22 @@
+{
+ "name": "lib3mf",
+ "version": "2.4.1",
+ "description": "lib3mf is an implementation of the 3D Manufacturing Format file standard",
+ "homepage": "https://github.com/3MFConsortium/lib3mf",
+ "license": "BSD-2-Clause",
+ "supports": "(windows & (x86 | x64) & !static & !staticcrt) | (linux & x64) | (osx & (x64 | arm64))",
+ "dependencies": [
+ "cpp-base64",
+ "fast-float",
+ "libzip",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ },
+ "zlib"
+ ]
+}