aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/libdvdread
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/libdvdread')
-rw-r--r--vcpkg/ports/libdvdread/msvc.diff55
-rw-r--r--vcpkg/ports/libdvdread/no-undefined.diff12
-rw-r--r--vcpkg/ports/libdvdread/portfile.cmake47
-rw-r--r--vcpkg/ports/libdvdread/vcpkg.json11
4 files changed, 125 insertions, 0 deletions
diff --git a/vcpkg/ports/libdvdread/msvc.diff b/vcpkg/ports/libdvdread/msvc.diff
new file mode 100644
index 0000000..566bfe3
--- /dev/null
+++ b/vcpkg/ports/libdvdread/msvc.diff
@@ -0,0 +1,55 @@
+diff --git a/msvc/config.h b/msvc/config.h
+index 4e9b60e..2f1e615 100644
+--- a/msvc/config.h
++++ b/msvc/config.h
+@@ -28,7 +28,6 @@
+ #define inline __inline
+ /* #undef size_t */
+
+-#define ssize_t __int64
+
+ #ifndef PATH_MAX
+ #define PATH_MAX MAX_PATH
+@@ -43,14 +42,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 /* LIBDVDREAD_CONFIG_H */
+diff --git a/src/dvd_reader.c b/src/dvd_reader.c
+index c4d9641..b3b0158 100644
+--- a/src/dvd_reader.c
++++ b/src/dvd_reader.c
+@@ -60,6 +60,7 @@
+
+ #if defined(_WIN32)
+ # include <windows.h>
++# include <winsock2.h>
+ # include "msvc/contrib/win32_cs.h"
+ #endif
+
+diff --git a/src/dvdread/dvd_reader.h b/src/dvdread/dvd_reader.h
+index 5681e0e..6c1cee6 100644
+--- a/src/dvdread/dvd_reader.h
++++ b/src/dvdread/dvd_reader.h
+@@ -24,7 +24,9 @@
+ #define LIBDVDREAD_DVD_READER_H
+
+ #ifdef _MSC_VER
+-#include <config.h>
++#include <windows.h>
++typedef SSIZE_T ssize_t;
++#include <stdint.h>
+
+ #include <stdio.h>
+ #include <stdlib.h>
diff --git a/vcpkg/ports/libdvdread/no-undefined.diff b/vcpkg/ports/libdvdread/no-undefined.diff
new file mode 100644
index 0000000..f43db8d
--- /dev/null
+++ b/vcpkg/ports/libdvdread/no-undefined.diff
@@ -0,0 +1,12 @@
+diff --git a/configure.ac b/configure.ac
+index a60ef0c..eeb6715 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -63,6 +63,7 @@ AS_CASE([$host],
+ [*mingw32* | *cygwin*], [AC_CHECK_FUNCS(gettimeofday)])
+
+ AS_CASE([$host],
++ [*mingw32*], LDFLAGS="-no-undefined $LDFLAGS",
+ [*-os2-*], LDFLAGS="-no-undefined -Zbin-files $LDFLAGS")
+
+ AS_CASE([$host],
diff --git a/vcpkg/ports/libdvdread/portfile.cmake b/vcpkg/ports/libdvdread/portfile.cmake
new file mode 100644
index 0000000..e394c4c
--- /dev/null
+++ b/vcpkg/ports/libdvdread/portfile.cmake
@@ -0,0 +1,47 @@
+vcpkg_from_gitlab(
+ OUT_SOURCE_PATH SOURCE_PATH
+ GITLAB_URL https://code.videolan.org/
+ REPO videolan/libdvdread
+ REF ${VERSION}
+ SHA512 9eb6d551489ab1d214c56461eebafd6ecba7de8dcc60aecb7e22f82c019fd3d045fc09af66507c2e14bc53e099aec8e87620dfd988fe047a7bfa5e5d1d2c46bd
+ HEAD_REF master
+ PATCHES
+ msvc.diff
+ no-undefined.diff
+)
+file(REMOVE_RECURSE "${SOURCE_PATH}/msvc/include/inttypes.h")
+file(TOUCH "${SOURCE_PATH}/msvc/include/strings.h")
+file(WRITE "${SOURCE_PATH}/ChangeLog" "Cf. https://code.videolan.org/videolan/libdvdread/-/commits/${VERSION}/") # not in git
+
+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
+ --disable-apidoc
+ --with-libdvdcss
+ ${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/libdvdread/vcpkg.json b/vcpkg/ports/libdvdread/vcpkg.json
new file mode 100644
index 0000000..d361ae8
--- /dev/null
+++ b/vcpkg/ports/libdvdread/vcpkg.json
@@ -0,0 +1,11 @@
+{
+ "name": "libdvdread",
+ "version-semver": "6.1.3",
+ "description": "Library to read DVD disks",
+ "homepage": "https://www.videolan.org/developers/libdvdnav.html",
+ "license": "GPL-2.0-or-later",
+ "supports": "!uwp & !xbox",
+ "dependencies": [
+ "libdvdcss"
+ ]
+}