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>