diff options
Diffstat (limited to 'vcpkg/ports/libdvdread')
| -rw-r--r-- | vcpkg/ports/libdvdread/msvc.diff | 55 | ||||
| -rw-r--r-- | vcpkg/ports/libdvdread/no-undefined.diff | 12 | ||||
| -rw-r--r-- | vcpkg/ports/libdvdread/portfile.cmake | 47 | ||||
| -rw-r--r-- | vcpkg/ports/libdvdread/vcpkg.json | 11 |
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" + ] +} |