Gentoo Archives: gentoo-commits

From: Alessandro Barbieri <lssndrbarbieri@×××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/proj/guru:dev commit in: media-libs/lodepng/files/, media-libs/lodepng/
Date: Tue, 26 Oct 2021 16:35:14
Message-Id: 1635266107.40f221fda7e9149d77984b14cab22c505dc7c806.Alessandro-Barbieri@gentoo
1 commit: 40f221fda7e9149d77984b14cab22c505dc7c806
2 Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
3 AuthorDate: Tue Oct 26 13:14:48 2021 +0000
4 Commit: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
5 CommitDate: Tue Oct 26 16:35:07 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=40f221fd
7
8 media-libs/lodepng: initial import
9
10 Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>
11
12 media-libs/lodepng/Makefile | 37 ++++++++++++++++++
13 media-libs/lodepng/Manifest | 1 +
14 media-libs/lodepng/files/lodepng-makefile.patch | 44 ++++++++++++++++++++++
15 media-libs/lodepng/lodepng-20210627.ebuild | 50 +++++++++++++++++++++++++
16 media-libs/lodepng/metadata.xml | 16 ++++++++
17 5 files changed, 148 insertions(+)
18
19 diff --git a/media-libs/lodepng/Makefile b/media-libs/lodepng/Makefile
20 new file mode 100644
21 index 000000000..6731999d9
22 --- /dev/null
23 +++ b/media-libs/lodepng/Makefile
24 @@ -0,0 +1,37 @@
25 +# This makefile only makes the unit test, benchmark and pngdetail and showpng
26 +# utilities. It does not make the PNG codec itself as shared or static library.
27 +# That is because:
28 +# LodePNG itself has only 1 source file (lodepng.cpp, can be renamed to
29 +# lodepng.c) and is intended to be included as source file in other projects and
30 +# their build system directly.
31 +
32 +
33 +CC ?= gcc
34 +CXX ?= g++
35 +
36 +CFLAGS += -W -Wall -Wextra -ansi -pedantic -Wno-unused-function
37 +CXXFLAGS += -W -Wall -Wextra -ansi -pedantic
38 +
39 +all: unittest benchmark pngdetail showpng lodepng.so
40 +
41 +%.o: %.cpp
42 + @mkdir -p `dirname $@`
43 + $(CXX) -I ./ $(CXXFLAGS) -fPIC -c $< -o $@
44 +
45 +lodepng.so: lodepng.o
46 + $(CXX) $(CXXFLAGS) $(LDFLAGS) -fPIC -shared -Wl,-soname,lodepngn.so $^ -o $@
47 +
48 +unittest: lodepng.so lodepng_util.o lodepng_unittest.o
49 + $(CXX) $^ $(CXXFLAGS) $(LDFLAGA) -fPIE -o $@ -L. -llodepng
50 +
51 +benchmark: lodepng.so lodepng_benchmark.o
52 + $(CXX) $^ $(CXXFLAGS) $(LDFLAGS) -fPIE -lSDL -o $@ -L. -llodepng
53 +
54 +pngdetail: lodepng.so lodepng_util.o pngdetail.o
55 + $(CXX) $^ $(CXXFLAGS) $(LDFLAGS) -fPIE -o $@ -L. -llodepng
56 +
57 +showpng: lodepng.so examples/example_sdl.o
58 + $(CXX) -I ./ $^ $(CXXFLAGS) $(LDFLAGS) -fPIE -lSDL -o $@ -L. -llodepng
59 +
60 +clean:
61 + rm -f unittest benchmark pngdetail showpng lodepng_unittest.o lodepng_benchmark.o lodepng.o lodepng_util.o pngdetail.o examples/example_sdl.o
62
63 diff --git a/media-libs/lodepng/Manifest b/media-libs/lodepng/Manifest
64 new file mode 100644
65 index 000000000..9c8e5d286
66 --- /dev/null
67 +++ b/media-libs/lodepng/Manifest
68 @@ -0,0 +1 @@
69 +DIST lodepng-20210627-8c6a9e30576f07bf470ad6f09458a2dcd7a6a84a.tar.gz 242778 BLAKE2B eb4b95fdc800b070c96d3303d2c44a33b4304dae946b26569f52a1ad8847d049108975b082ba49b35c84b97bd1ce58ba74885c6dc843e1e8a73446de1c167369 SHA512 2e0abc063be45dc04a070656260e9a2b9fa1172433cdd7d4988f0afc11751ad28aa802350598ef0e2b27c2c011fd9d9f7ab7f267b0bfcdf28f9f708b888c4411
70
71 diff --git a/media-libs/lodepng/files/lodepng-makefile.patch b/media-libs/lodepng/files/lodepng-makefile.patch
72 new file mode 100644
73 index 000000000..1d81d57c6
74 --- /dev/null
75 +++ b/media-libs/lodepng/files/lodepng-makefile.patch
76 @@ -0,0 +1,44 @@
77 +--- a/Makefile
78 ++++ b/Makefile
79 +@@ -9,26 +9,29 @@
80 + CC ?= gcc
81 + CXX ?= g++
82 +
83 +-override CFLAGS := -W -Wall -Wextra -ansi -pedantic -O3 -Wno-unused-function $(CFLAGS)
84 +-override CXXFLAGS := -W -Wall -Wextra -ansi -pedantic -O3 $(CXXFLAGS)
85 ++CFLAGS += -W -Wall -Wextra -ansi -pedantic -Wno-unused-function
86 ++CXXFLAGS += -W -Wall -Wextra -ansi -pedantic
87 +
88 +-all: unittest benchmark pngdetail showpng
89 ++all: unittest benchmark pngdetail showpng liblodepng.so
90 +
91 + %.o: %.cpp
92 + @mkdir -p `dirname $@`
93 +- $(CXX) -I ./ $(CXXFLAGS) -c $< -o $@
94 ++ $(CXX) -I ./ $(CXXFLAGS) -fPIC -c $< -o $@
95 +
96 +-unittest: lodepng.o lodepng_util.o lodepng_unittest.o
97 +- $(CXX) $^ $(CXXFLAGS) -o $@
98 ++liblodepng.so: lodepng.o
99 ++ $(CXX) $(CXXFLAGS) $(LDFLAGS) -fPIC -shared -Wl,-soname,liblodepng.so $^ -o $@
100 +
101 +-benchmark: lodepng.o lodepng_benchmark.o
102 +- $(CXX) $^ $(CXXFLAGS) -lSDL -o $@
103 ++unittest: liblodepng.so lodepng_util.o lodepng_unittest.o
104 ++ $(CXX) $^ $(CXXFLAGS) $(LDFLAGS) -fPIE -o $@ -L. -llodepng
105 +
106 +-pngdetail: lodepng.o lodepng_util.o pngdetail.o
107 +- $(CXX) $^ $(CXXFLAGS) -o $@
108 ++benchmark: liblodepng.so lodepng_benchmark.o
109 ++ $(CXX) $^ $(CXXFLAGS) $(LDFLAGS) -fPIE -lSDL -o $@ -L. -llodepng
110 +
111 +-showpng: lodepng.o examples/example_sdl.o
112 +- $(CXX) -I ./ $^ $(CXXFLAGS) -lSDL -o $@
113 ++pngdetail: liblodepng.so lodepng_util.o pngdetail.o
114 ++ $(CXX) $^ $(CXXFLAGS) $(LDFLAGS) -fPIE -o $@ -L. -llodepng
115 ++
116 ++showpng: liblodepng.so examples/example_sdl.o
117 ++ $(CXX) -I ./ $^ $(CXXFLAGS) $(LDFLAGS) -fPIE -lSDL -o $@ -L. -llodepng
118 +
119 + clean:
120 + rm -f unittest benchmark pngdetail showpng lodepng_unittest.o lodepng_benchmark.o lodepng.o lodepng_util.o pngdetail.o examples/example_sdl.o
121
122 diff --git a/media-libs/lodepng/lodepng-20210627.ebuild b/media-libs/lodepng/lodepng-20210627.ebuild
123 new file mode 100644
124 index 000000000..c579c7860
125 --- /dev/null
126 +++ b/media-libs/lodepng/lodepng-20210627.ebuild
127 @@ -0,0 +1,50 @@
128 +# Copyright 1999-2021 Gentoo Authors
129 +# Distributed under the terms of the GNU General Public License v2
130 +
131 +EAPI=8
132 +
133 +COMMIT="8c6a9e30576f07bf470ad6f09458a2dcd7a6a84a"
134 +
135 +DESCRIPTION="PNG encoder and decoder"
136 +HOMEPAGE="
137 + http://lodev.org/lodepng
138 + https://github.com/lvandeve/lodepng
139 +"
140 +SRC_URI="https://github.com/lvandeve/lodepng/archive/${COMMIT}.tar.gz -> ${P}-${COMMIT}.tar.gz"
141 +S="${WORKDIR}/${PN}-${COMMIT}"
142 +
143 +LICENSE="ZLIB"
144 +SLOT="0"
145 +KEYWORDS="~amd64"
146 +IUSE="benchmark pngdetail showpng test"
147 +
148 +DEPEND="
149 + benchmark? ( media-libs/libsdl )
150 + showpng? ( media-libs/libsdl )
151 +"
152 +RDEPEND="${DEPEND}"
153 +
154 +RESTRICT="!test? ( test )"
155 +PATCHES=( "${FILESDIR}/${PN}-makefile.patch" )
156 +
157 +src_compile() {
158 + emake liblodepng.so
159 + use test && emake unittest
160 + use benchmark && emake benchmark
161 + use showpng && emake showpng
162 + use pngdetail && emake pngdetail
163 +}
164 +
165 +src_install() {
166 + dodoc README.md
167 + doheader lodepng.h
168 + dolib.so liblodepng.so
169 + use showpng && dobin showpng
170 + use pngdetail && dobin pngdetail
171 + exeinto /usr/libexec/lodepng
172 + use benchmark && doexe benchmark
173 +}
174 +
175 +src_test() {
176 + ./unittest || die
177 +}
178
179 diff --git a/media-libs/lodepng/metadata.xml b/media-libs/lodepng/metadata.xml
180 new file mode 100644
181 index 000000000..3671fb489
182 --- /dev/null
183 +++ b/media-libs/lodepng/metadata.xml
184 @@ -0,0 +1,16 @@
185 +<?xml version="1.0" encoding="UTF-8"?>
186 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
187 +<pkgmetadata>
188 + <maintainer type="person">
189 + <email>lssndrbarbieri@×××××.com</email>
190 + <name>Alessandro Barbieri</name>
191 + </maintainer>
192 + <upstream>
193 + <remote-id type="github">lvandeve/lodepng</remote-id>
194 + </upstream>
195 + <use>
196 + <flag name="benchmark">Benchmark for lodepng</flag>
197 + <flag name="pngdetail">Prints detailed info of PNG images, including filter types and huffman symbols</flag>
198 + <flag name="showpng">Show PNG image</flag>
199 + </use>
200 +</pkgmetadata>