git: c66fa584263e - main - devel/libchdr: New port: Standalone library for reading MAME CHDv1-v5 formats
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 14 Nov 2024 08:44:23 UTC
The branch main has been updated by fuz:
URL: https://cgit.FreeBSD.org/ports/commit/?id=c66fa584263efe3b13cf9d2dee1a5c97448c4a26
commit c66fa584263efe3b13cf9d2dee1a5c97448c4a26
Author: Stefan Schlosser <bsdcode@disroot.org>
AuthorDate: 2024-11-09 20:51:33 +0000
Commit: Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2024-11-14 08:43:26 +0000
devel/libchdr: New port: Standalone library for reading MAME CHDv1-v5 formats
libchdr is a standalone library for reading MAME's CHDv1-v5 formats.
The code is based off of MAME's old C codebase which read up to CHDv4 with
OS-dependent features removed, and CHDv5 support backported from MAME's current
C++ codebase.
WWW: https://github.com/rtissera/libchdr
PR: 282692
---
devel/Makefile | 1 +
devel/libchdr/Makefile | 26 ++++++++++++++++++++++++++
devel/libchdr/distinfo | 3 +++
devel/libchdr/files/patch-CMakeLists.txt | 26 ++++++++++++++++++++++++++
devel/libchdr/pkg-descr | 5 +++++
devel/libchdr/pkg-plist | 13 +++++++++++++
6 files changed, 74 insertions(+)
diff --git a/devel/Makefile b/devel/Makefile
index daf9f8cc8642..e64fa0f42543 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -1221,6 +1221,7 @@
SUBDIR += libcdb
SUBDIR += libcds
SUBDIR += libcfu
+ SUBDIR += libchdr
SUBDIR += libchipcard
SUBDIR += libcidr
SUBDIR += libcii
diff --git a/devel/libchdr/Makefile b/devel/libchdr/Makefile
new file mode 100644
index 000000000000..a5ca39c65376
--- /dev/null
+++ b/devel/libchdr/Makefile
@@ -0,0 +1,26 @@
+PORTNAME= libchdr
+DISTVERSION= g20241111
+CATEGORIES= devel
+
+MAINTAINER= bsdcode@disroot.org
+COMMENT= Standalone library for reading MAME CHDv1-v5 formats
+WWW= https://github.com/rtissera/libchdr
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE.txt
+
+LIB_DEPENDS= libzstd.so:archivers/zstd
+
+USES= cmake pathfix pkgconfig
+USE_GITHUB= yes
+GH_ACCOUNT= rtissera
+GH_TAGNAME= b3974651d869c2f804e9879b063c23280d2ae617
+USE_LDCONFIG= yes
+
+CMAKE_ARGS= -DBUILD_LTO=${defined(WITH_LTO):?ON:OFF}
+CMAKE_ON= INSTALL_STATIC_LIBS WITH_SYSTEM_ZLIB WITH_SYSTEM_ZSTD
+
+post-install:
+ ${RLN} ${STAGEDIR}${PREFIX}/lib/libchdr-static.a ${STAGEDIR}${PREFIX}/lib/libchdr.a
+
+.include <bsd.port.mk>
diff --git a/devel/libchdr/distinfo b/devel/libchdr/distinfo
new file mode 100644
index 000000000000..129e3d7d1f45
--- /dev/null
+++ b/devel/libchdr/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1731325563
+SHA256 (rtissera-libchdr-g20241111-b3974651d869c2f804e9879b063c23280d2ae617_GH0.tar.gz) = e17270412aaa7158073ec6d8e6287f80a64354ba2b4edbd5786f2d8571f9e787
+SIZE (rtissera-libchdr-g20241111-b3974651d869c2f804e9879b063c23280d2ae617_GH0.tar.gz) = 4222329
diff --git a/devel/libchdr/files/patch-CMakeLists.txt b/devel/libchdr/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..80417eff28fc
--- /dev/null
+++ b/devel/libchdr/files/patch-CMakeLists.txt
@@ -0,0 +1,26 @@
+--- CMakeLists.txt.orig 2024-11-12 19:29:11 UTC
++++ CMakeLists.txt
+@@ -51,8 +51,12 @@ if (WITH_SYSTEM_ZSTD)
+
+ # zstd
+ if (WITH_SYSTEM_ZSTD)
+- find_package(zstd REQUIRED)
+- list(APPEND PLATFORM_LIBS zstd::libzstd_shared)
++ # find_package(zstd) fails on i386 because of a known problem with the
++ # provided cmake module. Use pkg_check_modules instead.
++ find_package(PkgConfig REQUIRED)
++ pkg_check_modules(zstd REQUIRED libzstd)
++ list(APPEND CHDR_INCLUDES ${zstd_INCLUDE_DIRS})
++ list(APPEND PLATFORM_LIBS ${zstd_LINK_LIBRARIES})
+ else()
+ option(ZSTD_BUILD_SHARED "BUILD SHARED LIBRARIES" OFF)
+ option(ZSTD_BUILD_PROGRAMS "BUILD PROGRAMS" OFF)
+@@ -83,7 +87,7 @@ if (INSTALL_STATIC_LIBS)
+ endif()
+
+ if (INSTALL_STATIC_LIBS)
+- install(TARGETS chdr-static ${CHDR_LIBS}
++ install(TARGETS chdr-static
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+ )
+ endif()
diff --git a/devel/libchdr/pkg-descr b/devel/libchdr/pkg-descr
new file mode 100644
index 000000000000..b3e772f746ae
--- /dev/null
+++ b/devel/libchdr/pkg-descr
@@ -0,0 +1,5 @@
+libchdr is a standalone library for reading MAME's CHDv1-v5 formats.
+
+The code is based off of MAME's old C codebase which read up to CHDv4 with
+OS-dependent features removed, and CHDv5 support backported from MAME's current
+C++ codebase.
diff --git a/devel/libchdr/pkg-plist b/devel/libchdr/pkg-plist
new file mode 100644
index 000000000000..49bdddd8b05e
--- /dev/null
+++ b/devel/libchdr/pkg-plist
@@ -0,0 +1,13 @@
+include/libchdr/bitstream.h
+include/libchdr/cdrom.h
+include/libchdr/chd.h
+include/libchdr/chdconfig.h
+include/libchdr/coretypes.h
+include/libchdr/flac.h
+include/libchdr/huffman.h
+lib/libchdr-static.a
+lib/libchdr.a
+lib/libchdr.so
+lib/libchdr.so.0
+lib/libchdr.so.0.2
+libdata/pkgconfig/libchdr.pc