summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarryl Pogue2022-11-05 01:10:31 -0700
committerDarryl Pogue2022-11-05 01:10:31 -0700
commit65ab0da56e8e00c08f7b8a512160ef9e7c8e95b8 (patch)
tree903008374f61fb2821b5aff33ead586ab813829a
downloadaur-65ab0da56e8e00c08f7b8a512160ef9e7c8e95b8.tar.gz
Initial commit of MinGW libwebm package
-rw-r--r--.SRCINFO19
-rw-r--r--.gitignore6
-rw-r--r--PKGBUILD62
-rw-r--r--cmake_install.patch86
4 files changed, 173 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..62f698bb3720
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,19 @@
+pkgbase = mingw-w64-libwebm
+ pkgdesc = WebM video file parser
+ pkgver = 1.0.0.28
+ pkgrel = 1
+ url = https://www.webmproject.org/
+ arch = any
+ license = BSD
+ makedepends = cmake
+ makedepends = mingw-w64-gcc
+ depends = mingw-w64-crt
+ options = !strip
+ options = !buildflags
+ options = staticlibs
+ source = https://github.com/webmproject/libwebm/archive/libwebm-1.0.0.28.tar.gz
+ source = cmake_install.patch
+ sha256sums = 4df11d93260d3cd9f17c3697b0828d38400a8f87082183368df6a1ae7a9fc635
+ sha256sums = 8041827dc63d45c65af9870f2a7958a4be81db8da511f440f89aded8d29d8ca8
+
+pkgname = mingw-w64-libwebm
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..b0a91a42bc44
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,6 @@
+/src/
+/pkg/
+*.pkg.tar.xz
+*.pkg.tar.zst
+*.src.tar.gz
+/libwebm-*.tar.gz
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..4e4215598dea
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,62 @@
+# Maintainer: Darryl Pogue <darryl at dpogue dot ca>
+# Contributor: Michael Hansen <zrax0111 at gmail dot com>
+
+pkgname=mingw-w64-libwebm
+pkgver=1.0.0.28
+pkgrel=1
+pkgdesc="WebM video file parser"
+url="https://www.webmproject.org/"
+arch=(any)
+license=('BSD')
+depends=(mingw-w64-crt)
+makedepends=(cmake mingw-w64-gcc)
+options=('!strip' '!buildflags' 'staticlibs')
+source=("https://github.com/webmproject/libwebm/archive/libwebm-${pkgver}.tar.gz"
+ cmake_install.patch)
+sha256sums=('4df11d93260d3cd9f17c3697b0828d38400a8f87082183368df6a1ae7a9fc635'
+ '8041827dc63d45c65af9870f2a7958a4be81db8da511f440f89aded8d29d8ca8')
+
+_architectures="i686-w64-mingw32:x86-mingw-gcc x86_64-w64-mingw32:x86_64-mingw-gcc"
+
+prepare() {
+ cd "$srcdir/libwebm-libwebm-$pkgver"
+ patch -p1 -i ../cmake_install.patch
+}
+
+build() {
+ cd "$srcdir/libwebm-libwebm-$pkgver"
+ for _arch in ${_architectures}; do
+ IFS=':' read -ra ARCH <<< "${_arch}"
+ mkdir -p build-${ARCH[0]} && pushd build-${ARCH[0]}
+ cmake \
+ -DCMAKE_TOOLCHAIN_FILE=build/${ARCH[1]}.cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr/${ARCH[0]} \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
+ -DBUILD_SHARED_LIBS=ON \
+ -DENABLE_WEBM_PARSER=ON \
+ -DENABLE_WEBMTS=OFF \
+ -DENABLE_WEBMINFO=OFF \
+ -DENABLE_SAMPLES=OFF \
+ -DENABLE_TOOLS=OFF \
+ ..
+ make
+ popd
+ done
+}
+
+package() {
+ for _arch in ${_architectures}; do
+ IFS=':' read -ra ARCH <<< "${_arch}"
+ cd "$srcdir/libwebm-libwebm-$pkgver/build-${ARCH[0]}"
+ make DESTDIR="$pkgdir" install
+ ${ARCH[0]}-strip --strip-unneeded "$pkgdir"/usr/${ARCH[0]}/bin/*.dll
+ ${ARCH[0]}-strip -g "$pkgdir"/usr/${ARCH[0]}/lib/*.a
+ if [[ $NO_EXECUTABLES ]]; then
+ find "${pkgdir}/usr/${ARCH[0]}" -name '*.exe' -delete
+ else
+ find "${pkgdir}/usr/${ARCH[0]}" -name '*.exe' -exec ${ARCH[0]}-strip --strip-all {} \;
+ fi
+ install -Dm644 ../LICENSE.TXT $pkgdir/usr/${ARCH[0]}/share/licenses/libwebm/LICENSE
+ done
+}
diff --git a/cmake_install.patch b/cmake_install.patch
new file mode 100644
index 000000000000..e85e3a9ec1f1
--- /dev/null
+++ b/cmake_install.patch
@@ -0,0 +1,86 @@
+diff -rupN a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt 2021-04-23 16:34:08.000000000 -0700
++++ b/CMakeLists.txt 2021-12-27 15:34:25.764905166 -0800
+@@ -330,6 +330,50 @@ add_library(webm ${libwebm_common_source
+ $<TARGET_OBJECTS:mkvmuxer>
+ $<TARGET_OBJECTS:mkvparser>)
+
++install(
++ TARGETS webm
++ RUNTIME DESTINATION bin
++ ARCHIVE DESTINATION lib
++ LIBRARY DESTINATION lib
++)
++
++install(
++ FILES
++ mkvmuxer.hpp
++ mkvmuxertypes.hpp
++ mkvmuxerutil.hpp
++ mkvparser.hpp
++ mkvreader.hpp
++ mkvwriter.hpp
++ webmids.hpp
++ DESTINATION
++ include/libwebm
++)
++
++install(
++ DIRECTORY mkvmuxer/
++ DESTINATION include/libwebm/mkvmuxer
++ FILES_MATCHING PATTERN "*.h"
++)
++
++install(
++ DIRECTORY mkvparser/
++ DESTINATION include/libwebm/mkvparser
++ FILES_MATCHING PATTERN "*.h"
++)
++
++install(
++ DIRECTORY webvtt/
++ DESTINATION include/libwebm/webvtt
++ FILES_MATCHING PATTERN "*.h"
++)
++
++install(
++ DIRECTORY common/
++ DESTINATION include/libwebm/common
++ FILES_MATCHING PATTERN "*.h"
++)
++
+ if (WIN32)
+ # Use libwebm and libwebm.lib for project and library name on Windows (instead
+ # webm and webm.lib).
+@@ -337,18 +381,22 @@ if (WIN32)
+ set_target_properties(webm PROPERTIES PREFIX lib)
+ endif ()
+
+-add_executable(mkvparser_sample ${mkvparser_sample_sources})
+-target_link_libraries(mkvparser_sample LINK_PUBLIC webm)
++if (ENABLE_SAMPLES)
++ add_executable(mkvparser_sample ${mkvparser_sample_sources})
++ target_link_libraries(mkvparser_sample LINK_PUBLIC webm)
+
+-add_executable(mkvmuxer_sample ${mkvmuxer_sample_sources}
+- $<TARGET_OBJECTS:webvtt_common>)
+-target_link_libraries(mkvmuxer_sample LINK_PUBLIC webm)
++ add_executable(mkvmuxer_sample ${mkvmuxer_sample_sources}
++ $<TARGET_OBJECTS:webvtt_common>)
++ target_link_libraries(mkvmuxer_sample LINK_PUBLIC webm)
++endif()
+
+-add_executable(dumpvtt ${dumpvtt_sources} $<TARGET_OBJECTS:webvtt_common>)
+-target_link_libraries(dumpvtt LINK_PUBLIC webm)
++if (ENABLE_TOOLS)
++ add_executable(dumpvtt ${dumpvtt_sources} $<TARGET_OBJECTS:webvtt_common>)
++ target_link_libraries(dumpvtt LINK_PUBLIC webm)
+
+-add_executable(vttdemux ${vttdemux_sources})
+-target_link_libraries(vttdemux LINK_PUBLIC webm)
++ add_executable(vttdemux ${vttdemux_sources})
++ target_link_libraries(vttdemux LINK_PUBLIC webm)
++endif()
+
+ if (ENABLE_WEBMINFO)
+ add_executable(webm_info ${webm_info_sources})