# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit cmake-multilib DESCRIPTION="Bloat-free graphical user interface library for C++" HOMEPAGE=" https://github.com/ocornut/imgui https://github.com/cimgui/cimgui " SRC_URI=" https://github.com/ocornut/imgui/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz https://github.com/cimgui/cimgui/archive/refs/tags/${PV}.tar.gz -> c${P}.gh.tar.gz " LICENSE="MIT" SLOT="0/${PV}" KEYWORDS="~amd64" IUSE="allegro bindings examples freetype glfw glut opengl sdl vulkan" S="${WORKDIR}/c${P}" RDEPEND=" dev-libs/stb:= allegro? ( media-libs/allegro:5[${MULTILIB_USEDEP}] ) freetype? ( media-libs/freetype[${MULTILIB_USEDEP}] ) glfw? ( media-libs/glfw:0[${MULTILIB_USEDEP}] ) glut? ( media-libs/freeglut[${MULTILIB_USEDEP}] ) opengl? ( virtual/opengl[${MULTILIB_USEDEP}] ) sdl? ( media-libs/libsdl2[${MULTILIB_USEDEP}] ) vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) " DEPEND=" ${RDEPEND} vulkan? ( dev-util/vulkan-headers ) " BDEPEND=" bindings? ( dev-lang/luajit ) virtual/pkgconfig " REQUIRED_USE=" || ( allegro glfw glut sdl ) || ( allegro opengl vulkan ) " PATCHES=( "${FILESDIR}/${P}-fpermissive.patch" ) src_unpack() { # unpack imgui and cimgui to ${WORKDIR} unpack "${P}.gh.tar.gz" unpack "c${P}.gh.tar.gz" # move imgui to the proper location before the patch (Bug #924126) pushd ${WORKDIR} || die rm -rf "${S}/imgui" || die mv "${P}" "${S}/imgui" || die } multilib_src_prepare() { # imgui pushd "${S}/imgui" || die rm -r examples/libs || die rm -r misc/*/*.ttf || die rm -r misc/single_file || die cp "${FILESDIR}/${P}-CMakeLists.txt" CMakeLists.txt || die cp "${FILESDIR}/imgui.pc.in" imgui.pc.in || die sed -e "s|@version@|${PV}|g" -i imgui.pc.in || die pushd "${S}" || die cp "${FILESDIR}/c${P}-CMakeLists.txt" CMakeLists.txt || die # remove files to be generated rm cimgui.cpp cimgui.h generator/output/* || die cmake_src_prepare } multilib_src_configure() { local mycmakeargs=( -DIMGUI_ALLEGRO=$(usex allegro) -DIMGUI_BINDINGS=$(usex bindings) -DIMGUI_EXAMPLES=$(usex examples) -DIMGUI_FREETYPE=$(usex freetype) -DIMGUI_GLFW=$(usex glfw) -DIMGUI_GLUT=$(usex glut) -DIMGUI_OPENGL=$(usex opengl) -DIMGUI_SDL=$(usex sdl) -DIMGUI_VULKAN=$(usex vulkan) ) cmake_src_configure } multilib_src_install() { cmake_src_install pushd imgui || die # imgui rm -rf misc/{fonts,freetype} || die dodoc -r misc popd || die if use bindings; then # cimgui insinto "/usr/share/doc/${PF}/cimgui" doins README.md TODO.txt fi }