Gentoo Archives: gentoo-commits

From: Ronny Gutbrod <gentoo@××××××××.de>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/proj/guru:master commit in: media-libs/imgui/
Date: Tue, 29 Mar 2022 00:23:06
Message-Id: 1648416504.ab60e471e906e5ac8b529cf7e964c1e875b0dccd.tastytea@gentoo
1 commit: ab60e471e906e5ac8b529cf7e964c1e875b0dccd
2 Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
3 AuthorDate: Sun Mar 27 18:22:04 2022 +0000
4 Commit: Ronny Gutbrod <gentoo <AT> tastytea <DOT> de>
5 CommitDate: Sun Mar 27 21:28:24 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=ab60e471
7
8 media-libs/imgui: add 1.87
9
10 Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>
11
12 media-libs/imgui/Manifest | 1 +
13 media-libs/imgui/imgui-1.87.ebuild | 157 +++++++++++++++++++++++++++++++++++++
14 media-libs/imgui/metadata.xml | 9 +++
15 3 files changed, 167 insertions(+)
16
17 diff --git a/media-libs/imgui/Manifest b/media-libs/imgui/Manifest
18 index 6b3f46883..9bbf158f0 100644
19 --- a/media-libs/imgui/Manifest
20 +++ b/media-libs/imgui/Manifest
21 @@ -1 +1,2 @@
22 DIST imgui-1.83.tar.gz 1448389 BLAKE2B 648306bd69181ad8315f12fc5b2c319b23005d6b3fc790ad64caaf1f80304e81b33af5d6f435fa97151fcf1e77eb15455838a09570b7a9c7dd9c56a61510b5a1 SHA512 2150e7101f384b1c749b2e89876b2085a7ff43435f04e88602d0e5e00db7a41c1ace5176bdb0963326845d1c8303b5092a7ca1c9c8e70c522ba96f899ed5bb9c
23 +DIST imgui-1.87.tar.gz 1460834 BLAKE2B f73b71400311e7c5f82248e242a932add5090670c78077ca2239f349730bab88a00bfe4deca4e854772ef7f6a2cff1fc0f38f7174a026995f93c9e7b55eb2a1d SHA512 3255b06698ab9c8951953e1e0b6d160d64adfa4c011b21a4288547292a7f8fff586875faf9dae0677818bde65bd7e98da92f16f6beb1e6a66aa835edf32e8ce2
24
25 diff --git a/media-libs/imgui/imgui-1.87.ebuild b/media-libs/imgui/imgui-1.87.ebuild
26 new file mode 100644
27 index 000000000..0b811f029
28 --- /dev/null
29 +++ b/media-libs/imgui/imgui-1.87.ebuild
30 @@ -0,0 +1,157 @@
31 +# Copyright 1999-2022 Gentoo Authors
32 +# Distributed under the terms of the GNU General Public License v2
33 +
34 +EAPI=8
35 +
36 +inherit flag-o-matic toolchain-funcs
37 +
38 +DESCRIPTION="Bloat-free graphical user interface library for C++"
39 +HOMEPAGE="https://github.com/ocornut/imgui"
40 +SRC_URI="https://github.com/ocornut/imgui/archive/v${PV}.tar.gz -> ${P}.tar.gz"
41 +
42 +LICENSE="MIT"
43 +SLOT="0"
44 +KEYWORDS="~amd64"
45 +IUSE="allegro examples freetype glfw glut opengl sdl vulkan"
46 +
47 +RDEPEND="
48 + allegro? ( media-libs/allegro:5 )
49 + freetype? ( media-libs/freetype )
50 + glfw? ( media-libs/glfw:0 )
51 + glut? ( media-libs/freeglut )
52 + opengl? ( virtual/opengl )
53 + sdl? ( media-libs/libsdl2 )
54 + vulkan? ( media-libs/vulkan-loader )
55 +"
56 +DEPEND="
57 + ${RDEPEND}
58 + vulkan? ( dev-util/vulkan-headers )
59 +"
60 +BDEPEND="virtual/pkgconfig"
61 +
62 +REQUIRED_USE="
63 + || (
64 + allegro
65 + || ( glfw glut sdl )
66 + || ( opengl vulkan )
67 + )
68 + examples? (
69 + allegro
70 + glfw
71 + glut
72 + opengl
73 + sdl
74 + vulkan
75 + )
76 +"
77 +
78 +src_prepare() {
79 + rm -r examples/libs || die
80 + rm -r misc/*/*.ttf || die
81 + rm -r misc/single_file || die
82 + default
83 +}
84 +
85 +src_configure() {
86 + tc-export CXX
87 + append-cppflags "-DIMGUI_USE_WCHAR32"
88 + append-cxxflags "-I${S} -I${S}/backends -I${S}/misc/freetype -fPIC -fpermissive"
89 + local PKGCONF="$(tc-getPKG_CONFIG)" || die
90 +
91 + use allegro && append-libs "-lallegro -lallegro_main -lallegro_primitives"
92 + if use freetype; then
93 + append-cppflags "-DIMGUI_ENABLE_FREETYPE -DIMGUI_ENABLE_STB_TRUETYPE"
94 + append-cxxflags "$(${PKGCONF} --cflags freetype2)" || die
95 + append-libs "$(${PKGCONF} --libs freetype2)" || die
96 + fi
97 + if use glfw; then
98 + append-libs "$(${PKGCONF} --libs glfw3)" || die
99 + append-cxxflags "$(${PKGCONF} --cflags glfw3)" || die
100 + fi
101 + if use glut; then
102 + append-libs "$(${PKGCONF} --libs freeglut)" || die
103 + append-cxxflags "$(${PKGCONF} --cflags freeglut)" || die
104 + fi
105 + use opengl && append-libs "-lGL"
106 + if use sdl; then
107 + append-libs "-ldl $(sdl2-config --libs)" || die
108 + append-cxxflags "$(sdl2-config --cflags)" || die
109 + fi
110 + if use vulkan; then
111 + append-libs "$(${PKGCONF} --libs vulkan)" || die
112 + append-cxxflags "$(${PKGCONF} --cflags vulkan)" || die
113 + append-cppflags "-DImTextureID=ImU64" || die
114 + fi
115 +}
116 +
117 +src_compile() {
118 + set -x || die
119 +
120 + for i in imgui{,_draw,_demo,_tables,_widgets}; do
121 + ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c ${i}.cpp -o ${i}.o || die
122 + done
123 +
124 + if use freetype; then
125 + pushd misc/freetype || die
126 + ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c imgui_freetype.cpp -o imgui_freetype.o || die
127 + popd || die
128 + pushd misc/fonts || die
129 + ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} -fPIE binary_to_compressed_c.cpp -o binary_to_compressed_c || die
130 + popd || die
131 + fi
132 +
133 + pushd backends || die
134 + if use allegro; then
135 + ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c imgui_impl_allegro5.cpp -o imgui_impl_allegro5.o || die
136 + fi
137 + if use glfw; then
138 + ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c imgui_impl_glfw.cpp -o imgui_impl_glfw.o || die
139 + fi
140 + if use glut; then
141 + ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c imgui_impl_glut.cpp -o imgui_impl_glut.o || die
142 + fi
143 + if use opengl; then
144 + ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c imgui_impl_opengl2.cpp -o imgui_impl_opengl2.o || die
145 + ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c imgui_impl_opengl3.cpp -o imgui_impl_opengl3.o || die
146 + fi
147 + if use sdl; then
148 + ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c imgui_impl_sdl.cpp -o imgui_impl_sdl.o || die
149 + ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c imgui_impl_sdlrenderer.cpp -o imgui_impl_sdlrenderer.o || die
150 + fi
151 + if use vulkan; then
152 + ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c imgui_impl_vulkan.cpp -o imgui_impl_vulkan.o || die
153 + fi
154 + popd || die
155 + ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} -shared -Wl,-soname,libimgui.so *.o backends/*.o misc/freetype/*.o -o libimgui.so ${LIBS} || die
156 +
157 + if use examples; then
158 + mkdir ex || die
159 + for f in allegro5 glfw_opengl{2,3} glfw_vulkan null sdl_opengl{2,3} sdl_{sdlrenderer,vulkan} glut_opengl2 ; do
160 + ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} -fPIE examples/example_${f}/main.cpp "-L${S}" -limgui ${LIBS} -o "${S}/ex/example_${f}" || die
161 + done
162 + fi
163 +
164 + set +x || die
165 +}
166 +
167 +src_install() {
168 + dolib.so libimgui.so
169 + dodoc docs/*
170 + insinto "/usr/include/imgui"
171 + doins *.h
172 + doins -r misc/*/*.h
173 + doins backends/*.h
174 + insinto "/usr/share/${PN}/backends"
175 + doins -r backends/vulkan
176 + exeinto "/usr/libexec/${PN}"
177 + use freetype && doexe misc/fonts/binary_to_compressed_c
178 + rm -rf misc/{fonts,freetype} || die
179 + dodoc -r misc
180 +
181 + if use examples; then
182 + exeinto "/usr/libexec/${PN}/examples"
183 + doexe ex/*
184 + dodoc -r examples
185 + docompress -x "/usr/share/doc/${PF}/examples"
186 + fi
187 +}
188
189 diff --git a/media-libs/imgui/metadata.xml b/media-libs/imgui/metadata.xml
190 index 25bcc732f..2a6d52b5d 100644
191 --- a/media-libs/imgui/metadata.xml
192 +++ b/media-libs/imgui/metadata.xml
193 @@ -10,4 +10,13 @@
194 <bugs-to>https://github.com/ocornut/imgui/issues</bugs-to>
195 <remote-id type="github">ocornut/imgui</remote-id>
196 </upstream>
197 + <use>
198 + <flag name="allegro">Enable allegro backend and renderer</flag>
199 + <flag name="freetype">Use FreeType to build and rasterize the font atlas</flag>
200 + <flag name="glfw">Enable glfw backend</flag>
201 + <flag name="glut">Enable glut backen</flag>
202 + <flag name="opengl">Enable opengl renderer</flag>
203 + <flag name="sdl">Enable sdl backend</flag>
204 + <flag name="vulkan">Enable vulkan renderer</flag>
205 + </use>
206 </pkgmetadata>