aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/draco
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/draco
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/draco')
-rw-r--r--vcpkg/ports/draco/disable-symlinks.patch29
-rw-r--r--vcpkg/ports/draco/fix-compile-error-uwp.patch29
-rw-r--r--vcpkg/ports/draco/fix-pkgconfig.patch13
-rw-r--r--vcpkg/ports/draco/fix-uwperror.patch13
-rw-r--r--vcpkg/ports/draco/install-linkage.diff19
-rw-r--r--vcpkg/ports/draco/portfile.cmake39
-rw-r--r--vcpkg/ports/draco/vcpkg.json17
7 files changed, 159 insertions, 0 deletions
diff --git a/vcpkg/ports/draco/disable-symlinks.patch b/vcpkg/ports/draco/disable-symlinks.patch
new file mode 100644
index 0000000..df39449
--- /dev/null
+++ b/vcpkg/ports/draco/disable-symlinks.patch
@@ -0,0 +1,29 @@
+diff --git a/cmake/draco_targets.cmake b/cmake/draco_targets.cmake
+index c8c79f5..1cec5b8 100644
+--- a/cmake/draco_targets.cmake
++++ b/cmake/draco_targets.cmake
+@@ -111,9 +111,6 @@ macro(draco_add_executable)
+
+ target_compile_features(${exe_NAME} PUBLIC cxx_std_11)
+
+- if(NOT EMSCRIPTEN)
+- set_target_properties(${exe_NAME} PROPERTIES VERSION ${DRACO_VERSION})
+- endif()
+
+ if(exe_OUTPUT_NAME)
+ set_target_properties(${exe_NAME} PROPERTIES OUTPUT_NAME ${exe_OUTPUT_NAME})
+@@ -364,14 +361,6 @@ macro(draco_add_library)
+ set_target_properties(${lib_NAME} PROPERTIES PREFIX "")
+ endif()
+
+- if(NOT EMSCRIPTEN)
+- # VERSION and SOVERSION as necessary
+- if((lib_TYPE STREQUAL BUNDLE OR lib_TYPE STREQUAL SHARED) AND NOT MSVC)
+- set_target_properties(
+- ${lib_NAME} PROPERTIES VERSION ${DRACO_SOVERSION}
+- SOVERSION ${DRACO_SOVERSION_MAJOR})
+- endif()
+- endif()
+
+ if(BUILD_SHARED_LIBS AND (MSVC OR WIN32))
+ if(lib_TYPE STREQUAL SHARED)
diff --git a/vcpkg/ports/draco/fix-compile-error-uwp.patch b/vcpkg/ports/draco/fix-compile-error-uwp.patch
new file mode 100644
index 0000000..ca68cb5
--- /dev/null
+++ b/vcpkg/ports/draco/fix-compile-error-uwp.patch
@@ -0,0 +1,29 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a93267d..3a3ccf7 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -85,6 +85,9 @@ draco_set_cxx_flags()
+ draco_set_exe_linker_flags()
+ draco_generate_features_h()
+
++if (MSVC)
++ add_compile_options(/wd4996)
++endif()
+ # Draco source file listing variables.
+ list(
+ APPEND draco_attributes_sources
+diff --git a/src/draco/io/parser_utils.cc b/src/draco/io/parser_utils.cc
+index 378de73..be7e032 100644
+--- a/src/draco/io/parser_utils.cc
++++ b/src/draco/io/parser_utils.cc
+@@ -152,7 +152,9 @@ bool ParseSignedInt(DecoderBuffer *buffer, int32_t *value) {
+ if (!ParseUnsignedInt(buffer, &v)) {
+ return false;
+ }
+- *value = (sign < 0) ? -v : v;
++ if (sign < 0)
++ v *= -1;
++ *value = v;
+ return true;
+ }
+
diff --git a/vcpkg/ports/draco/fix-pkgconfig.patch b/vcpkg/ports/draco/fix-pkgconfig.patch
new file mode 100644
index 0000000..b4e3f21
--- /dev/null
+++ b/vcpkg/ports/draco/fix-pkgconfig.patch
@@ -0,0 +1,13 @@
+diff --git a/cmake/draco.pc.template b/cmake/draco.pc.template
+index 050219c..2886bfc 100644
+--- a/cmake/draco.pc.template
++++ b/cmake/draco.pc.template
+@@ -1,6 +1,6 @@
+ Name: @PROJECT_NAME@
+ Description: Draco geometry de(com)pression library.
+ Version: @DRACO_VERSION@
+-Cflags: -I@includes_path@
+-Libs: -L@libs_path@ -ldraco
++Cflags: -I@CMAKE_INSTALL_FULL_INCLUDEDIR@
++Libs: -L@CMAKE_INSTALL_FULL_LIBDIR@ -ldraco
+ Libs.private: @CMAKE_THREAD_LIBS_INIT@
diff --git a/vcpkg/ports/draco/fix-uwperror.patch b/vcpkg/ports/draco/fix-uwperror.patch
new file mode 100644
index 0000000..54e2cc9
--- /dev/null
+++ b/vcpkg/ports/draco/fix-uwperror.patch
@@ -0,0 +1,13 @@
+diff --git a/src/draco/core/bit_utils.h b/src/draco/core/bit_utils.h
+index a102095..b6ba69b 100644
+--- a/src/draco/core/bit_utils.h
++++ b/src/draco/core/bit_utils.h
+@@ -27,6 +27,8 @@
+ #include <intrin.h>
+ #endif // defined(_MSC_VER)
+
++#pragma warning(disable:4146)
++
+ namespace draco {
+
+ // Returns the number of '1' bits within the input 32 bit integer.
diff --git a/vcpkg/ports/draco/install-linkage.diff b/vcpkg/ports/draco/install-linkage.diff
new file mode 100644
index 0000000..c34a60f
--- /dev/null
+++ b/vcpkg/ports/draco/install-linkage.diff
@@ -0,0 +1,19 @@
+diff --git a/cmake/draco_install.cmake b/cmake/draco_install.cmake
+index 3be1ba1..b91938c 100644
+--- a/cmake/draco_install.cmake
++++ b/cmake/draco_install.cmake
+@@ -65,10 +65,14 @@ macro(draco_setup_install_target)
+ ARCHIVE DESTINATION "${libs_path}"
+ LIBRARY DESTINATION "${libs_path}")
+ else()
++ if(BUILD_SHARED_LIBS)
++ set_target_properties(draco_static PROPERTIES EXCLUDE_FROM_ALL 1)
++ else()
+ install(
+ TARGETS draco_static
+ EXPORT dracoExport
+ DESTINATION "${libs_path}")
++ endif()
+
+ if(BUILD_SHARED_LIBS)
+ install(
diff --git a/vcpkg/ports/draco/portfile.cmake b/vcpkg/ports/draco/portfile.cmake
new file mode 100644
index 0000000..82c5eb5
--- /dev/null
+++ b/vcpkg/ports/draco/portfile.cmake
@@ -0,0 +1,39 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO google/draco
+ REF "${VERSION}"
+ SHA512 8b444744cdf12fb9d276916eb2ff0735cd1a6497b65b88813ec457fe2169db987db62e3db253a7d0f3ae7d45ae6502e8a9f8c0b81abde73e07b3bec69f9dc170
+ HEAD_REF master
+ PATCHES
+ fix-compile-error-uwp.patch
+ fix-uwperror.patch
+ fix-pkgconfig.patch
+ disable-symlinks.patch
+ install-linkage.diff
+)
+
+if(VCPKG_TARGET_IS_EMSCRIPTEN)
+ set(ENV{EMSCRIPTEN} "${EMSCRIPTEN_ROOT}")
+endif()
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DPYTHON_EXECUTABLE=: # unused with DRACO_JS_GLUE off
+ -DDRACO_JS_GLUE=OFF
+)
+
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/draco)
+vcpkg_fixup_pkgconfig()
+
+# Install tools and plugins
+if(NOT VCPKG_TARGET_IS_EMSCRIPTEN)
+ vcpkg_copy_tools(TOOL_NAMES draco_encoder draco_decoder AUTO_CLEAN)
+endif()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share")
+
+vcpkg_copy_pdbs()
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/vcpkg/ports/draco/vcpkg.json b/vcpkg/ports/draco/vcpkg.json
new file mode 100644
index 0000000..d248165
--- /dev/null
+++ b/vcpkg/ports/draco/vcpkg.json
@@ -0,0 +1,17 @@
+{
+ "name": "draco",
+ "version": "1.5.7",
+ "description": " A library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics.",
+ "homepage": "https://github.com/google/draco",
+ "license": "Apache-2.0",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}