diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/libdvdnav | |
Diffstat (limited to 'vcpkg/ports/libdvdnav')
| -rw-r--r-- | vcpkg/ports/libdvdnav/msvc.diff | 73 | ||||
| -rw-r--r-- | vcpkg/ports/libdvdnav/no-undefined.diff | 12 | ||||
| -rw-r--r-- | vcpkg/ports/libdvdnav/portfile.cmake | 43 | ||||
| -rw-r--r-- | vcpkg/ports/libdvdnav/vcpkg.json | 11 |
4 files changed, 139 insertions, 0 deletions
diff --git a/vcpkg/ports/libdvdnav/msvc.diff b/vcpkg/ports/libdvdnav/msvc.diff new file mode 100644 index 0000000..314871a --- /dev/null +++ b/vcpkg/ports/libdvdnav/msvc.diff @@ -0,0 +1,73 @@ +diff --git a/msvc/config.h b/msvc/config.h +index 25f68fb..c3f00f1 100644 +--- a/msvc/config.h ++++ b/msvc/config.h +@@ -28,7 +28,8 @@ + #define inline __inline + /* #undef size_t */ + +-#define ssize_t __int64 ++#include <windows.h> ++typedef SSIZE_T ssize_t; + + #ifndef PATH_MAX + #define PATH_MAX MAX_PATH +@@ -43,14 +44,6 @@ + #define S_ISCHR(m) 0 + + /* Fallback types (very x86-centric, sorry) */ +-typedef unsigned char uint8_t; +-typedef signed char int8_t; +-typedef unsigned short uint16_t; +-typedef signed short int16_t; +-typedef unsigned int uint32_t; +-typedef signed int int32_t; +-typedef unsigned __int64 uint64_t; +-typedef signed __int64 int64_t; +-typedef unsigned int uintptr_t; ++#include <stdint.h> + + #endif /* LIBDVNAV_CONFIG_H */ +diff --git a/msvc/include/sys/time.h b/msvc/include/sys/time.h +index 843e252..8014739 100644 +--- a/msvc/include/sys/time.h ++++ b/msvc/include/sys/time.h +@@ -26,3 +26,4 @@ + */ + + #include <time.h> ++#include <winsock2.h> +diff --git a/src/dvdnav_internal.h b/src/dvdnav_internal.h +index 495f032..a0aaeaf 100644 +--- a/src/dvdnav_internal.h ++++ b/src/dvdnav_internal.h +@@ -39,6 +39,7 @@ typedef CRITICAL_SECTION pthread_mutex_t; + #ifndef HAVE_GETTIMEOFDAY + /* replacement gettimeofday implementation */ + #include <sys/timeb.h> ++#include <winsock2.h> + static inline int _private_gettimeofday( struct timeval *tv, void *tz ) + { + struct timeb t; +@@ -232,7 +233,7 @@ int64_t dvdnav_convert_time(dvd_time_t *time); + #define printerrf(format, args...) \ + do { if (this) snprintf(this->err_str, MAX_ERR_LEN, format, ## args); } while (0) + #else +-#ifdef _MSC_VER ++#if 0 + #define printerrf(str) \ + do { if (this) snprintf(this->err_str, MAX_ERR_LEN, str); } while (0) + #else +diff --git a/src/read_cache.c b/src/read_cache.c +index 1b2862d..abc786a 100644 +--- a/src/read_cache.c ++++ b/src/read_cache.c +@@ -87,7 +87,7 @@ struct read_cache_s { + # if READ_CACHE_TRACE + # define dprintf(fmt, ...) fprintf(MSG_OUT, "libdvdnav: %s: "fmt, __func__ , __VA_ARGS__) + # else +-#ifdef _MSC_VER ++#if 0 + # define dprintf(fmt, str) /* Nowt */ + #else + # define dprintf(fmt, ...) /* Nowt */ diff --git a/vcpkg/ports/libdvdnav/no-undefined.diff b/vcpkg/ports/libdvdnav/no-undefined.diff new file mode 100644 index 0000000..8505c6b --- /dev/null +++ b/vcpkg/ports/libdvdnav/no-undefined.diff @@ -0,0 +1,12 @@ +diff --git a/configure.ac b/configure.ac +index 595378b..516f26e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -118,6 +118,7 @@ dnl + dnl This should be after all checks + dnl --------------------------------------------- + AS_CASE([$host_os], ++ [*mingw32*], LDFLAGS="-no-undefined $LDFLAGS", + [os2*], [LDFLAGS="$LDFLAGS -no-undefined"]) + + dnl --------------------------------------------- diff --git a/vcpkg/ports/libdvdnav/portfile.cmake b/vcpkg/ports/libdvdnav/portfile.cmake new file mode 100644 index 0000000..be7a896 --- /dev/null +++ b/vcpkg/ports/libdvdnav/portfile.cmake @@ -0,0 +1,43 @@ +vcpkg_from_gitlab( + OUT_SOURCE_PATH SOURCE_PATH + GITLAB_URL https://code.videolan.org/ + REPO videolan/libdvdnav + REF ${VERSION} + SHA512 080814c30f193176393bf6d4496a1e815b3b288cd102201ba177a13a46f733e1e0b5e05d6ca169e902c669d6f3567926c97e5a20a6712ed5620dcb10c3c3a022 + HEAD_REF master + PATCHES + msvc.diff + no-undefined.diff +) +file(REMOVE_RECURSE "${SOURCE_PATH}/msvc/include/inttypes.h") + +vcpkg_find_acquire_program(PKGCONFIG) +cmake_path(GET PKGCONFIG PARENT_PATH pkgconfig_dir) +vcpkg_add_to_path("${pkgconfig_dir}") + +set(cppflags "") +if(VCPKG_TARGET_IS_WINDOWS) + # PATH_MAX from msvc/libdvdcss.vcxproj + set(cppflags "CPPFLAGS=\$CPPFLAGS -DPATH_MAX=2048 -DWIN32_LEAN_AND_MEAN") + if(NOT VCPKG_TARGET_IS_MINGW) + cmake_path(RELATIVE_PATH SOURCE_PATH BASE_DIRECTORY "${CURRENT_BUILDTREES_DIR}" OUTPUT_VARIABLE sources) + string(APPEND cppflags " -I../${sources}/msvc/include -D_CRT_SECURE_NO_WARNINGS") + endif() +endif() + +vcpkg_configure_make( + SOURCE_PATH "${SOURCE_PATH}" + AUTOCONFIG + OPTIONS + ${cppflags} +) +vcpkg_install_make() +vcpkg_copy_pdbs() +vcpkg_fixup_pkgconfig() + +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/share" +) + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") diff --git a/vcpkg/ports/libdvdnav/vcpkg.json b/vcpkg/ports/libdvdnav/vcpkg.json new file mode 100644 index 0000000..b89bb83 --- /dev/null +++ b/vcpkg/ports/libdvdnav/vcpkg.json @@ -0,0 +1,11 @@ +{ + "name": "libdvdnav", + "version-semver": "6.1.1", + "description": "Library to navigate DVD disks", + "homepage": "https://www.videolan.org/developers/libdvdnav.html", + "license": "GPL-2.0-or-later", + "supports": "!uwp & !xbox", + "dependencies": [ + "libdvdread" + ] +} |