aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/libdvdnav
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/libdvdnav')
-rw-r--r--vcpkg/ports/libdvdnav/msvc.diff73
-rw-r--r--vcpkg/ports/libdvdnav/no-undefined.diff12
-rw-r--r--vcpkg/ports/libdvdnav/portfile.cmake43
-rw-r--r--vcpkg/ports/libdvdnav/vcpkg.json11
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"
+ ]
+}