commit: 5c020d8f944c29c170388836cabd1f2e3cb46854 Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com> AuthorDate: Sun Apr 3 17:29:14 2022 +0000 Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org> CommitDate: Sun Apr 3 23:48:56 2022 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=5c020d8f
media-libs/imgui: explicitly link the build objects Closes: https://bugs.gentoo.org/836695 Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com> .../{imgui-1.87.ebuild => imgui-1.87-r1.ebuild} | 32 ++++++++++++++-------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/media-libs/imgui/imgui-1.87.ebuild b/media-libs/imgui/imgui-1.87-r1.ebuild similarity index 71% rename from media-libs/imgui/imgui-1.87.ebuild rename to media-libs/imgui/imgui-1.87-r1.ebuild index 0b811f029..4339ad386 100644 --- a/media-libs/imgui/imgui-1.87.ebuild +++ b/media-libs/imgui/imgui-1.87-r1.ebuild @@ -87,13 +87,17 @@ src_configure() { src_compile() { set -x || die + local objects=() + for i in imgui{,_draw,_demo,_tables,_widgets}; do - ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c ${i}.cpp -o ${i}.o || die + ${CXX} ${CXXFLAGS} ${CPPFLAGS} -fPIC -c ${i}.cpp -o ${i}.o || die + objects+=( ${i}.o ) done if use freetype; then pushd misc/freetype || die - ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c imgui_freetype.cpp -o imgui_freetype.o || die + ${CXX} ${CXXFLAGS} ${CPPFLAGS} -fPIC -c imgui_freetype.cpp -o imgui_freetype.o || die + objects+=( misc/freetype/imgui_freetype.o ) popd || die pushd misc/fonts || die ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} -fPIE binary_to_compressed_c.cpp -o binary_to_compressed_c || die @@ -102,27 +106,33 @@ src_compile() { pushd backends || die if use allegro; then - ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c imgui_impl_allegro5.cpp -o imgui_impl_allegro5.o || die + ${CXX} ${CXXFLAGS} ${CPPFLAGS} -fPIC -c imgui_impl_allegro5.cpp -o imgui_impl_allegro5.o || die + objects+=( backends/imgui_impl_allegro5.o ) fi if use glfw; then - ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c imgui_impl_glfw.cpp -o imgui_impl_glfw.o || die + ${CXX} ${CXXFLAGS} ${CPPFLAGS} -fPIC -c imgui_impl_glfw.cpp -o imgui_impl_glfw.o || die + objects+=( backends/imgui_impl_glfw.o ) fi if use glut; then - ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c imgui_impl_glut.cpp -o imgui_impl_glut.o || die + ${CXX} ${CXXFLAGS} ${CPPFLAGS} -fPIC -c imgui_impl_glut.cpp -o imgui_impl_glut.o || die + objects+=( backends/imgui_impl_glut.o ) fi if use opengl; then - ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c imgui_impl_opengl2.cpp -o imgui_impl_opengl2.o || die - ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c imgui_impl_opengl3.cpp -o imgui_impl_opengl3.o || die + ${CXX} ${CXXFLAGS} ${CPPFLAGS} -fPIC -c imgui_impl_opengl2.cpp -o imgui_impl_opengl2.o || die + ${CXX} ${CXXFLAGS} ${CPPFLAGS} -fPIC -c imgui_impl_opengl3.cpp -o imgui_impl_opengl3.o || die + objects+=( backends/imgui_impl_opengl2.o backends/imgui_impl_opengl3.o ) fi if use sdl; then - ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c imgui_impl_sdl.cpp -o imgui_impl_sdl.o || die - ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c imgui_impl_sdlrenderer.cpp -o imgui_impl_sdlrenderer.o || die + ${CXX} ${CXXFLAGS} ${CPPFLAGS} -fPIC -c imgui_impl_sdl.cpp -o imgui_impl_sdl.o || die + ${CXX} ${CXXFLAGS} ${CPPFLAGS} -fPIC -c imgui_impl_sdlrenderer.cpp -o imgui_impl_sdlrenderer.o || die + objects+=( backends/imgui_impl_sdl.o backends/imgui_impl_sdlrenderer.o ) fi if use vulkan; then - ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c imgui_impl_vulkan.cpp -o imgui_impl_vulkan.o || die + ${CXX} ${CXXFLAGS} ${CPPFLAGS} -fPIC -c imgui_impl_vulkan.cpp -o imgui_impl_vulkan.o || die + objects+=( backends/imgui_impl_vulkan.o ) fi popd || die - ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} -shared -Wl,-soname,libimgui.so *.o backends/*.o misc/freetype/*.o -o libimgui.so ${LIBS} || die + ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} -shared -Wl,-soname,libimgui.so ${objects[@]} -o libimgui.so ${LIBS} || die if use examples; then mkdir ex || die