commit 0f2bd05c6819bd7b945ac2f1219ea54c2635b9ca Author: overweight <5324761+overweight@user.noreply.gitee.com> Date: Mon Sep 30 10:59:03 2019 -0400 Package init diff --git a/libwebp-1.0.0.tar.gz b/libwebp-1.0.0.tar.gz new file mode 100644 index 0000000..dd32ba8 Binary files /dev/null and b/libwebp-1.0.0.tar.gz differ diff --git a/libwebp.spec b/libwebp.spec new file mode 100644 index 0000000..bcf7574 --- /dev/null +++ b/libwebp.spec @@ -0,0 +1,116 @@ +Name: libwebp +Version: 1.0.0 +Release: 3 +URL: https://webmproject.org/ +Summary: Library and tools for the WebP graphics format +License: BSD +Source0: https://downloads.webmproject.org/releases/webp/%{name}-%{version}.tar.gz +Source1: libwebp_jni_example.java + +BuildRequires: libjpeg-devel libpng-devel giflib-devel libtiff-devel +BuildRequires: java-devel jpackage-utils swig freeglut-devel +BuildRequires: autoconf automake libtool + +%description +This is an image format that does lossy compression of digital +photographic images. WebP consists of a codec based on VP8, and a +container based on RIFF. Webmasters, web developers and browser +developers can use WebP to compress, archive and distribute digital +images more efficiently. + +%package tools +Summary: The WebP command line tools + +%description tools +WebP is an image format that does lossy compression of digital +photographic images. WebP consists of a codec based on VP8, and a +container based on RIFF. Webmasters, web developers and browser +developers can use WebP to compress, archive and distribute digital +images more efficiently. + +%package devel +Summary: Development files for libwebp +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +Development files for libwebp, a library for the WebP format + +%package java +Summary: Java bindings for libwebp, a library for the WebP format +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: java-headless jpackage-utils + +%description java +Java bindings for libwebp. + +%package_help + +%prep +%autosetup -n %{name}-%{version} -p1 +%build +autoreconf -vif +%ifarch aarch64 +export CFLAGS="%{optflags} -frename-registers" +%endif +%configure --enable-libwebpmux --enable-libwebpdemux \ + --enable-libwebpdecoder --disable-neon +%make_build + +cp %{SOURCE1} . +cd swig +rm -rf libwebp.jar libwebp_java_wrap.c +install -d java/com/google/webp +swig -ignoremissing -I../src -java \ + -package com.google.webp \ + -outdir java/com/google/webp \ + -o libwebp_java_wrap.c libwebp.swig + +gcc %{__global_ldflags} %{optflags} -shared \ + -I/usr/lib/jvm/java/include \ + -I/usr/lib/jvm/java/include/linux \ + -I../src \ + -L../src/.libs -lwebp libwebp_java_wrap.c \ + -o libwebp_jni.so + +cd java +javac com/google/webp/libwebp.java +jar cvf ../libwebp.jar com/google/webp/*.class + +%install +%make_install +install -d %{buildroot}/%{_libdir}/%{name}-java +cp swig/*.jar swig/*.so %{buildroot}/%{_libdir}/%{name}-java/ +%delete_la +%ldconfig_scriptlets + +%files tools +%defattr(-,root,root) +%{_bindir}/* + +%files -n %{name} +%defattr(-,root,root) +%doc README AUTHORS +%license COPYING +%{_libdir}/*.so.* + +%files devel +%defattr(-,root,root) +%{_libdir}/%{name}*.so +%{_includedir}/* +%{_libdir}/*.a +%{_libdir}/pkgconfig/* + +%files java +%defattr(-,root,root) +%doc *.java +%{_libdir}/%{name}-java/ + +%files help +%defattr(-,root,root) +%doc NEWS PATENTS +%{_mandir}/man*/* + +%changelog +* Wed Sep 11 2019 openEuler Buildteam - 1.0.0-3 +- Package init + diff --git a/libwebp_jni_example.java b/libwebp_jni_example.java new file mode 100644 index 0000000..d28d9b8 --- /dev/null +++ b/libwebp_jni_example.java @@ -0,0 +1,27 @@ +import com.google.webp.libwebp; + +import java.lang.reflect.Method; + +public class libwebp_jni_example { + static { + try { + System.load("/usr/lib64/libwebp-java/libwebp_jni.so"); + } catch (UnsatisfiedLinkError e) { + System.load("/usr/lib/libwebp-java/libwebp_jni.so"); + } + } + + /** + * usage: java -cp libwebp.jar:. libwebp_jni_example + */ + public static void main(String argv[]) { + final int version = libwebp.WebPGetDecoderVersion(); + System.out.println("libwebp version: " + Integer.toHexString(version)); + + System.out.println("libwebp methods:"); + final Method[] libwebpMethods = libwebp.class.getDeclaredMethods(); + for (int i = 0; i < libwebpMethods.length; i++) { + System.out.println(libwebpMethods[i]); + } + } +}