diff --git a/ports/libdxfrw/portfile.cmake b/ports/libdxfrw/portfile.cmake new file mode 100644 index 0000000000..632a4b39b1 --- /dev/null +++ b/ports/libdxfrw/portfile.cmake @@ -0,0 +1,36 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO LibreCAD/libdxfrw + REF 92d7466ed9146badcd4fb44c82d1dd8302b3c7db + SHA512 2c65780dc378221489d860a4c13799e57c1d4375ac1df187a55e675d9a509896f300980b0f75d0d8dda837a6e335c19f8c23131577b962e92e04140e903e50ac + HEAD_REF master + PATCHES + remove-werror.patch +) + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + dwg2dxf LIBDXFRW_BUILD_DWG2DXF +) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DLIBDXFRW_BUILD_DOC=OFF + ${FEATURE_OPTIONS} +) + +vcpkg_cmake_install() + +if("dwg2dxf" IN_LIST FEATURES) + vcpkg_copy_tools(TOOL_NAMES dwg2dxf AUTO_CLEAN) +endif() + +vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/libdxfrw") + +vcpkg_fixup_pkgconfig() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") diff --git a/ports/libdxfrw/remove-werror.patch b/ports/libdxfrw/remove-werror.patch new file mode 100644 index 0000000000..16e9c809fc --- /dev/null +++ b/ports/libdxfrw/remove-werror.patch @@ -0,0 +1,19 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 50fae46..b33815c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -8,14 +8,6 @@ set(LIBDXFRW_BUILD_DOC TRUE CACHE BOOL "Build the documentation") + set(LIBDXFRW_BUILD_DWG2DXF TRUE CACHE BOOL "Build the dwg2dxf application") + + +-# set compiler warnings +-if (MSVC) +- add_compile_options(/W3) +-else() +- add_compile_options(-Wall -Wextra -pedantic -Werror) +-endif() +- +- + include(GNUInstallDirs) + + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) diff --git a/ports/libdxfrw/vcpkg.json b/ports/libdxfrw/vcpkg.json new file mode 100644 index 0000000000..5aac94f63c --- /dev/null +++ b/ports/libdxfrw/vcpkg.json @@ -0,0 +1,21 @@ +{ + "name": "libdxfrw", + "version-date": "2025-09-25", + "description": "libdxfrw is a free C++ library to read and write DXF files in both formats, ascii and binary form. It also has rudimentary capabilities to read DWG files.", + "license": "GPL-2.0-only", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "dwg2dxf": { + "description": "Build the dwg2dxf tool to convert DWG files to DXF format" + } + } +} diff --git a/versions/baseline.json b/versions/baseline.json index 9333e9acb4..05a265661c 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -4816,6 +4816,10 @@ "baseline": "2.3.1", "port-version": 0 }, + "libdxfrw": { + "baseline": "2025-09-25", + "port-version": 0 + }, "libe57": { "baseline": "1.1.337", "port-version": 0 diff --git a/versions/l-/libdxfrw.json b/versions/l-/libdxfrw.json new file mode 100644 index 0000000000..1624e8dec4 --- /dev/null +++ b/versions/l-/libdxfrw.json @@ -0,0 +1,9 @@ +{ + "versions": [ + { + "git-tree": "79a297d2d6d2bdcb7e50b339f80ec35480c47ae4", + "version-date": "2025-09-25", + "port-version": 0 + } + ] +}