commit:     40f221fda7e9149d77984b14cab22c505dc7c806
Author:     Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Tue Oct 26 13:14:48 2021 +0000
Commit:     Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
CommitDate: Tue Oct 26 16:35:07 2021 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=40f221fd

media-libs/lodepng: initial import

Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>

 media-libs/lodepng/Makefile                     | 37 ++++++++++++++++++
 media-libs/lodepng/Manifest                     |  1 +
 media-libs/lodepng/files/lodepng-makefile.patch | 44 ++++++++++++++++++++++
 media-libs/lodepng/lodepng-20210627.ebuild      | 50 +++++++++++++++++++++++++
 media-libs/lodepng/metadata.xml                 | 16 ++++++++
 5 files changed, 148 insertions(+)

diff --git a/media-libs/lodepng/Makefile b/media-libs/lodepng/Makefile
new file mode 100644
index 000000000..6731999d9
--- /dev/null
+++ b/media-libs/lodepng/Makefile
@@ -0,0 +1,37 @@
+# This makefile only makes the unit test, benchmark and pngdetail and showpng
+# utilities. It does not make the PNG codec itself as shared or static library.
+# That is because:
+# LodePNG itself has only 1 source file (lodepng.cpp, can be renamed to
+# lodepng.c) and is intended to be included as source file in other projects 
and
+# their build system directly.
+
+
+CC ?= gcc
+CXX ?= g++
+
+CFLAGS += -W -Wall -Wextra -ansi -pedantic -Wno-unused-function
+CXXFLAGS += -W -Wall -Wextra -ansi -pedantic
+
+all: unittest benchmark pngdetail showpng lodepng.so
+
+%.o: %.cpp
+       @mkdir -p `dirname $@`
+       $(CXX) -I ./ $(CXXFLAGS) -fPIC -c $< -o $@
+
+lodepng.so: lodepng.o
+       $(CXX) $(CXXFLAGS) $(LDFLAGS) -fPIC -shared -Wl,-soname,lodepngn.so $^ 
-o $@
+
+unittest: lodepng.so lodepng_util.o lodepng_unittest.o
+       $(CXX) $^ $(CXXFLAGS) $(LDFLAGA) -fPIE -o $@ -L. -llodepng
+
+benchmark: lodepng.so lodepng_benchmark.o
+       $(CXX) $^ $(CXXFLAGS) $(LDFLAGS) -fPIE -lSDL -o $@ -L. -llodepng
+
+pngdetail: lodepng.so lodepng_util.o pngdetail.o
+       $(CXX) $^ $(CXXFLAGS) $(LDFLAGS) -fPIE -o $@ -L. -llodepng
+
+showpng: lodepng.so examples/example_sdl.o
+       $(CXX) -I ./ $^ $(CXXFLAGS) $(LDFLAGS) -fPIE -lSDL -o $@ -L. -llodepng
+
+clean:
+       rm -f unittest benchmark pngdetail showpng lodepng_unittest.o 
lodepng_benchmark.o lodepng.o lodepng_util.o pngdetail.o examples/example_sdl.o

diff --git a/media-libs/lodepng/Manifest b/media-libs/lodepng/Manifest
new file mode 100644
index 000000000..9c8e5d286
--- /dev/null
+++ b/media-libs/lodepng/Manifest
@@ -0,0 +1 @@
+DIST lodepng-20210627-8c6a9e30576f07bf470ad6f09458a2dcd7a6a84a.tar.gz 242778 
BLAKE2B 
eb4b95fdc800b070c96d3303d2c44a33b4304dae946b26569f52a1ad8847d049108975b082ba49b35c84b97bd1ce58ba74885c6dc843e1e8a73446de1c167369
 SHA512 
2e0abc063be45dc04a070656260e9a2b9fa1172433cdd7d4988f0afc11751ad28aa802350598ef0e2b27c2c011fd9d9f7ab7f267b0bfcdf28f9f708b888c4411

diff --git a/media-libs/lodepng/files/lodepng-makefile.patch 
b/media-libs/lodepng/files/lodepng-makefile.patch
new file mode 100644
index 000000000..1d81d57c6
--- /dev/null
+++ b/media-libs/lodepng/files/lodepng-makefile.patch
@@ -0,0 +1,44 @@
+--- a/Makefile
++++ b/Makefile
+@@ -9,26 +9,29 @@
+ CC ?= gcc
+ CXX ?= g++
+ 
+-override CFLAGS := -W -Wall -Wextra -ansi -pedantic -O3 -Wno-unused-function 
$(CFLAGS)
+-override CXXFLAGS := -W -Wall -Wextra -ansi -pedantic -O3 $(CXXFLAGS)
++CFLAGS += -W -Wall -Wextra -ansi -pedantic -Wno-unused-function
++CXXFLAGS += -W -Wall -Wextra -ansi -pedantic
+ 
+-all: unittest benchmark pngdetail showpng
++all: unittest benchmark pngdetail showpng liblodepng.so
+ 
+ %.o: %.cpp
+       @mkdir -p `dirname $@`
+-      $(CXX) -I ./ $(CXXFLAGS) -c $< -o $@
++      $(CXX) -I ./ $(CXXFLAGS) -fPIC -c $< -o $@
+ 
+-unittest: lodepng.o lodepng_util.o lodepng_unittest.o
+-      $(CXX) $^ $(CXXFLAGS) -o $@
++liblodepng.so: lodepng.o
++      $(CXX) $(CXXFLAGS) $(LDFLAGS) -fPIC -shared -Wl,-soname,liblodepng.so 
$^ -o $@
+ 
+-benchmark: lodepng.o lodepng_benchmark.o
+-      $(CXX) $^ $(CXXFLAGS) -lSDL -o $@
++unittest: liblodepng.so lodepng_util.o lodepng_unittest.o
++      $(CXX) $^ $(CXXFLAGS) $(LDFLAGS) -fPIE -o $@ -L. -llodepng
+ 
+-pngdetail: lodepng.o lodepng_util.o pngdetail.o
+-      $(CXX) $^ $(CXXFLAGS) -o $@
++benchmark: liblodepng.so lodepng_benchmark.o
++      $(CXX) $^ $(CXXFLAGS) $(LDFLAGS) -fPIE -lSDL -o $@ -L. -llodepng
+ 
+-showpng: lodepng.o examples/example_sdl.o
+-      $(CXX) -I ./ $^ $(CXXFLAGS) -lSDL -o $@
++pngdetail: liblodepng.so lodepng_util.o pngdetail.o
++      $(CXX) $^ $(CXXFLAGS) $(LDFLAGS) -fPIE -o $@ -L. -llodepng
++
++showpng: liblodepng.so examples/example_sdl.o
++      $(CXX) -I ./ $^ $(CXXFLAGS) $(LDFLAGS) -fPIE -lSDL -o $@ -L. -llodepng
+ 
+ clean:
+       rm -f unittest benchmark pngdetail showpng lodepng_unittest.o 
lodepng_benchmark.o lodepng.o lodepng_util.o pngdetail.o examples/example_sdl.o

diff --git a/media-libs/lodepng/lodepng-20210627.ebuild 
b/media-libs/lodepng/lodepng-20210627.ebuild
new file mode 100644
index 000000000..c579c7860
--- /dev/null
+++ b/media-libs/lodepng/lodepng-20210627.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+COMMIT="8c6a9e30576f07bf470ad6f09458a2dcd7a6a84a"
+
+DESCRIPTION="PNG encoder and decoder"
+HOMEPAGE="
+       http://lodev.org/lodepng
+       https://github.com/lvandeve/lodepng
+"
+SRC_URI="https://github.com/lvandeve/lodepng/archive/${COMMIT}.tar.gz -> 
${P}-${COMMIT}.tar.gz"
+S="${WORKDIR}/${PN}-${COMMIT}"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="benchmark pngdetail showpng test"
+
+DEPEND="
+       benchmark? ( media-libs/libsdl )
+       showpng? ( media-libs/libsdl )
+"
+RDEPEND="${DEPEND}"
+
+RESTRICT="!test? ( test )"
+PATCHES=( "${FILESDIR}/${PN}-makefile.patch" )
+
+src_compile() {
+       emake liblodepng.so
+       use test && emake unittest
+       use benchmark && emake benchmark
+       use showpng && emake showpng
+       use pngdetail && emake pngdetail
+}
+
+src_install() {
+       dodoc README.md
+       doheader lodepng.h
+       dolib.so liblodepng.so
+       use showpng && dobin showpng
+       use pngdetail && dobin pngdetail
+       exeinto /usr/libexec/lodepng
+       use benchmark && doexe benchmark
+}
+
+src_test() {
+       ./unittest || die
+}

diff --git a/media-libs/lodepng/metadata.xml b/media-libs/lodepng/metadata.xml
new file mode 100644
index 000000000..3671fb489
--- /dev/null
+++ b/media-libs/lodepng/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+  <maintainer type="person">
+    <email>lssndrbarbi...@gmail.com</email>
+    <name>Alessandro Barbieri</name>
+  </maintainer>
+  <upstream>
+    <remote-id type="github">lvandeve/lodepng</remote-id>
+  </upstream>
+  <use>
+    <flag name="benchmark">Benchmark for lodepng</flag>
+    <flag name="pngdetail">Prints detailed info of PNG images, including 
filter types and huffman symbols</flag>
+    <flag name="showpng">Show PNG image</flag>
+  </use>
+</pkgmetadata>

Reply via email to