* [gentoo-commits] repo/proj/guru:master commit in: media-libs/imgui/, media-libs/imgui/files/
@ 2022-04-15 20:58 Haelwenn Monnier
0 siblings, 0 replies; 6+ messages in thread
From: Haelwenn Monnier @ 2022-04-15 20:58 UTC (permalink / raw
To: gentoo-commits
commit: 0f466458f5ba120eeb3fb28b250bdea19d1bb85c
Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Sun Apr 10 01:04:34 2022 +0000
Commit: Haelwenn Monnier <contact <AT> hacktivis <DOT> me>
CommitDate: Fri Apr 15 20:34:20 2022 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=0f466458
media-libs/imgui: add cimgui C bindings
Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>
media-libs/imgui/Manifest | 1 +
media-libs/imgui/files/cimgui-1.87-fix-cmake.patch | 69 +++++++++++++
.../{imgui-1.87-r1.ebuild => imgui-1.87-r2.ebuild} | 110 ++++++++++++++++++---
media-libs/imgui/metadata.xml | 2 +
4 files changed, 168 insertions(+), 14 deletions(-)
diff --git a/media-libs/imgui/Manifest b/media-libs/imgui/Manifest
index 9bbf158f0..582ac2320 100644
--- a/media-libs/imgui/Manifest
+++ b/media-libs/imgui/Manifest
@@ -1,2 +1,3 @@
+DIST cimgui-1.87.tar.gz 385460 BLAKE2B 0916d53a00234343536ee412035a2c405b01e31a26c3d059cff4d446188ee8a1835a1233a68f671ccebb67be480801b85203a90b0e79fa729f7ac1efdc8bf4a2 SHA512 bf2ed9461e8c12514d29914e6da7f8fae7cd31fcc587c7d89122c950541aed3b4b908d8cd298b3975e9a955a47789335a88db7223ca558cbdf459693a0081bda
DIST imgui-1.83.tar.gz 1448389 BLAKE2B 648306bd69181ad8315f12fc5b2c319b23005d6b3fc790ad64caaf1f80304e81b33af5d6f435fa97151fcf1e77eb15455838a09570b7a9c7dd9c56a61510b5a1 SHA512 2150e7101f384b1c749b2e89876b2085a7ff43435f04e88602d0e5e00db7a41c1ace5176bdb0963326845d1c8303b5092a7ca1c9c8e70c522ba96f899ed5bb9c
DIST imgui-1.87.tar.gz 1460834 BLAKE2B f73b71400311e7c5f82248e242a932add5090670c78077ca2239f349730bab88a00bfe4deca4e854772ef7f6a2cff1fc0f38f7174a026995f93c9e7b55eb2a1d SHA512 3255b06698ab9c8951953e1e0b6d160d64adfa4c011b21a4288547292a7f8fff586875faf9dae0677818bde65bd7e98da92f16f6beb1e6a66aa835edf32e8ce2
diff --git a/media-libs/imgui/files/cimgui-1.87-fix-cmake.patch b/media-libs/imgui/files/cimgui-1.87-fix-cmake.patch
new file mode 100644
index 000000000..b3bae1cfe
--- /dev/null
+++ b/media-libs/imgui/files/cimgui-1.87-fix-cmake.patch
@@ -0,0 +1,69 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,21 +1,13 @@
+ cmake_minimum_required(VERSION 3.1)
+
+-project(cimgui)
++project(libcimgui)
+
+-if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/imgui/imgui_tables.cpp)
+- set(TABLES_SOURCE "imgui/imgui_tables.cpp")
+-else()
+ set(TABLES_SOURCE "")
+-endif()
+
+
+ #general settings
+ file(GLOB IMGUI_SOURCES
+ cimgui.cpp
+- imgui/imgui.cpp
+- imgui/imgui_draw.cpp
+- imgui/imgui_demo.cpp
+- imgui/imgui_widgets.cpp
+ ${TABLES_SOURCE}
+ )
+
+@@ -24,34 +16,30 @@
+ set(IMGUI_LIBRARIES )
+
+ if(IMGUI_FREETYPE)
+- FIND_PACKAGE(freetype REQUIRED PATHS ${FREETYPE_PATH})
+- list(APPEND IMGUI_LIBRARIES freetype)
+- list(APPEND IMGUI_SOURCES imgui/misc/freetype/imgui_freetype.cpp)
++ list(APPEND IMGUI_LIBRARIES -lfreetype)
+ add_definitions("-DCIMGUI_FREETYPE=1")
+ endif(IMGUI_FREETYPE)
+
+ #add library and link
+ if (IMGUI_STATIC)
+- add_library(cimgui STATIC ${IMGUI_SOURCES})
++ add_library(libcimgui STATIC ${IMGUI_SOURCES})
+ else (IMGUI_STATIC)
+- add_library(cimgui SHARED ${IMGUI_SOURCES})
++ add_library(libcimgui SHARED ${IMGUI_SOURCES})
+ endif (IMGUI_STATIC)
+
+-target_compile_definitions(cimgui PUBLIC IMGUI_DISABLE_OBSOLETE_FUNCTIONS=1)
+ if (WIN32)
+- target_compile_definitions(cimgui PUBLIC IMGUI_IMPL_API=extern\t\"C\"\t__declspec\(dllexport\))
++ target_compile_definitions(libcimgui PUBLIC IMGUI_IMPL_API=extern\t\"C\"\t__declspec\(dllexport\))
+ list(APPEND IMGUI_LIBRARIES imm32)
+ else (WIN32)
+- target_compile_definitions(cimgui PUBLIC IMGUI_IMPL_API=extern\t\"C\"\t)
++ target_compile_definitions(libcimgui PUBLIC IMGUI_IMPL_API=extern\t\"C\"\t)
+ endif (WIN32)
+
+-target_include_directories(cimgui PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+-target_include_directories(cimgui PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/imgui)
+-set_target_properties(cimgui PROPERTIES PREFIX "")
+-target_link_libraries(cimgui ${IMGUI_LIBRARIES})
++target_include_directories(libcimgui PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/imgui)
++set_target_properties(libcimgui PROPERTIES PREFIX "")
++target_link_libraries(libcimgui PUBLIC -limgui)
+
+ #install
+-install(TARGETS cimgui
++install(TARGETS libcimgui
+ RUNTIME DESTINATION .
+ LIBRARY DESTINATION .
+ ARCHIVE DESTINATION .
diff --git a/media-libs/imgui/imgui-1.87-r1.ebuild b/media-libs/imgui/imgui-1.87-r2.ebuild
similarity index 64%
rename from media-libs/imgui/imgui-1.87-r1.ebuild
rename to media-libs/imgui/imgui-1.87-r2.ebuild
index 4339ad386..f51097b79 100644
--- a/media-libs/imgui/imgui-1.87-r1.ebuild
+++ b/media-libs/imgui/imgui-1.87-r2.ebuild
@@ -3,16 +3,25 @@
EAPI=8
-inherit flag-o-matic toolchain-funcs
+inherit cmake flag-o-matic toolchain-funcs
+
+CMAKE_IN_SOURCE_BUILD=1
DESCRIPTION="Bloat-free graphical user interface library for C++"
-HOMEPAGE="https://github.com/ocornut/imgui"
-SRC_URI="https://github.com/ocornut/imgui/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+HOMEPAGE="
+ https://github.com/ocornut/imgui
+ https://github.com/cimgui/cimgui
+"
+SRC_URI="
+ https://github.com/ocornut/imgui/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/cimgui/cimgui/archive/refs/tags/${PV}.tar.gz -> c${P}.tar.gz
+"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
-IUSE="allegro examples freetype glfw glut opengl sdl vulkan"
+IUSE="allegro bindings examples freetype glfw glut opengl sdl vulkan"
+S="${WORKDIR}/c${P}"
RDEPEND="
allegro? ( media-libs/allegro:5 )
@@ -27,12 +36,20 @@ DEPEND="
${RDEPEND}
vulkan? ( dev-util/vulkan-headers )
"
-BDEPEND="virtual/pkgconfig"
+BDEPEND="
+ bindings? ( dev-lang/luajit )
+ virtual/pkgconfig
+"
+PATCHES=( "${FILESDIR}/c${P}-fix-cmake.patch" )
REQUIRED_USE="
|| (
allegro
- || ( glfw glut sdl )
+ || (
+ glfw
+ glut
+ sdl
+ )
|| ( opengl vulkan )
)
examples? (
@@ -46,45 +63,75 @@ REQUIRED_USE="
"
src_prepare() {
+ pushd ../ || die
+ rm -rf "${S}/imgui" || die
+ mv "${P}" "${S}/imgui" || die
+ pushd "${S}/imgui" || die
+
+ # imgui
rm -r examples/libs || die
rm -r misc/*/*.ttf || die
rm -r misc/single_file || die
- default
+
+ # cimgui
+ if use bindings; then
+ pushd "${S}" || die
+ cmake_src_prepare
+ else
+ eapply_user
+ fi
}
src_configure() {
+ pushd imgui || die
+
+ # imgui
tc-export CXX
append-cppflags "-DIMGUI_USE_WCHAR32"
- append-cxxflags "-I${S} -I${S}/backends -I${S}/misc/freetype -fPIC -fpermissive"
+ COMMONFLAGS="-I${S}/imgui -I${S}/imgui/backends -I${S}/imgui/misc/freetype -fPIC -fpermissive"
local PKGCONF="$(tc-getPKG_CONFIG)" || die
use allegro && append-libs "-lallegro -lallegro_main -lallegro_primitives"
if use freetype; then
append-cppflags "-DIMGUI_ENABLE_FREETYPE -DIMGUI_ENABLE_STB_TRUETYPE"
- append-cxxflags "$(${PKGCONF} --cflags freetype2)" || die
+ COMMONFLAGS="${COMMONFLAGS} $(${PKGCONF} --cflags freetype2)" || die
append-libs "$(${PKGCONF} --libs freetype2)" || die
fi
if use glfw; then
append-libs "$(${PKGCONF} --libs glfw3)" || die
- append-cxxflags "$(${PKGCONF} --cflags glfw3)" || die
+ COMMONFLAGS="${COMMONFLAGS} $(${PKGCONF} --cflags glfw3)" || die
fi
if use glut; then
append-libs "$(${PKGCONF} --libs freeglut)" || die
- append-cxxflags "$(${PKGCONF} --cflags freeglut)" || die
+ COMMONFLAGS="${COMMONFLAGS} $(${PKGCONF} --cflags freeglut)" || die
fi
use opengl && append-libs "-lGL"
if use sdl; then
append-libs "-ldl $(sdl2-config --libs)" || die
- append-cxxflags "$(sdl2-config --cflags)" || die
+ COMMONFLAGS="${COMMONFLAGS} $(sdl2-config --cflags)" || die
fi
if use vulkan; then
append-libs "$(${PKGCONF} --libs vulkan)" || die
- append-cxxflags "$(${PKGCONF} --cflags vulkan)" || die
+ COMMONFLAGS="${COMMONFLAGS} $(${PKGCONF} --cflags vulkan)" || die
append-cppflags "-DImTextureID=ImU64" || die
fi
+ append-cxxflags "${COMMONFLAGS}"
+ popd || die
+
+ # cimgui
+ if use bindings; then
+ local mycmakeargs=(
+ -DIMGUI_FREETYPE=$(usex freetype)
+ -DIMGUI_STATIC=OFF
+ )
+ cmake_src_configure
+ fi
}
src_compile() {
+ pushd imgui || die
+
+ # imgui
set -x || die
local objects=()
@@ -137,14 +184,39 @@ src_compile() {
if use examples; then
mkdir ex || die
for f in allegro5 glfw_opengl{2,3} glfw_vulkan null sdl_opengl{2,3} sdl_{sdlrenderer,vulkan} glut_opengl2 ; do
- ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} -fPIE examples/example_${f}/main.cpp "-L${S}" -limgui ${LIBS} -o "${S}/ex/example_${f}" || die
+ ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} -fPIE examples/example_${f}/main.cpp "-L${S}/imgui" -limgui ${LIBS} -o "${S}/imgui/ex/example_${f}" || die
done
fi
set +x || die
+ popd || die
+
+ # cimgui
+ if use bindings; then
+ pushd generator || die
+ local myargs=()
+ use allegro && myargs+=( allegro5 )
+ use glfw && myargs+=( glfw )
+ use glut && myargs+=( glut )
+ use opengl && myargs+=( opengl3 opengl2 )
+ use sdl && myargs+=( sdl sdlrenderer )
+ use vulkan && myargs+=( vulkan )
+ myargs+=( ${CFLAGS} ${COMMONFLAGS} ${CPPFLAGS} )
+
+ if use freetype ; then
+ luajit ./generator.lua gcc "internal freetype" ${myargs[@]} || die
+ else
+ luajit ./generator.lua gcc "internal" ${myargs[@]} || die
+ fi
+ popd || die
+ cmake_src_compile
+ fi
}
src_install() {
+ pushd imgui || die
+
+ # imgui
dolib.so libimgui.so
dodoc docs/*
insinto "/usr/include/imgui"
@@ -164,4 +236,14 @@ src_install() {
dodoc -r examples
docompress -x "/usr/share/doc/${PF}/examples"
fi
+
+ popd || die
+
+ # cimgui
+ if use bindings; then
+ dolib.so libcimgui.so
+ insinto "/usr/share/doc/${PF}/cimgui"
+ doins README.md TODO.txt
+ doheader cimgui.h
+ fi
}
diff --git a/media-libs/imgui/metadata.xml b/media-libs/imgui/metadata.xml
index 2a6d52b5d..766c22dfc 100644
--- a/media-libs/imgui/metadata.xml
+++ b/media-libs/imgui/metadata.xml
@@ -9,9 +9,11 @@
<upstream>
<bugs-to>https://github.com/ocornut/imgui/issues</bugs-to>
<remote-id type="github">ocornut/imgui</remote-id>
+ <remote-id type="github">cimgui/cimgui</remote-id>
</upstream>
<use>
<flag name="allegro">Enable allegro backend and renderer</flag>
+ <flag name="bindings">Build the cimgui C bindigs</flag>
<flag name="freetype">Use FreeType to build and rasterize the font atlas</flag>
<flag name="glfw">Enable glfw backend</flag>
<flag name="glut">Enable glut backen</flag>
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [gentoo-commits] repo/proj/guru:master commit in: media-libs/imgui/, media-libs/imgui/files/
@ 2022-04-23 17:49 Haelwenn Monnier
0 siblings, 0 replies; 6+ messages in thread
From: Haelwenn Monnier @ 2022-04-23 17:49 UTC (permalink / raw
To: gentoo-commits
commit: baad5b2e46440f460cbb58a0807f5a5a2f50f319
Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Sat Apr 23 00:14:10 2022 +0000
Commit: Haelwenn Monnier <contact <AT> hacktivis <DOT> me>
CommitDate: Sat Apr 23 01:52:54 2022 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=baad5b2e
media-libs/imgui: build with cmake
Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>
media-libs/imgui/files/cimgui-1.87-CMakeLists.txt | 80 +++++++
media-libs/imgui/files/cimgui-1.87-fix-cmake.patch | 69 ------
media-libs/imgui/files/imgui-1.87-CMakeLists.txt | 160 +++++++++++++
media-libs/imgui/files/imgui.pc.in | 11 +
media-libs/imgui/imgui-1.87-r2.ebuild | 251 ---------------------
media-libs/imgui/imgui-1.87-r4.ebuild | 119 ++++++++++
6 files changed, 370 insertions(+), 320 deletions(-)
diff --git a/media-libs/imgui/files/cimgui-1.87-CMakeLists.txt b/media-libs/imgui/files/cimgui-1.87-CMakeLists.txt
new file mode 100644
index 000000000..713125ec6
--- /dev/null
+++ b/media-libs/imgui/files/cimgui-1.87-CMakeLists.txt
@@ -0,0 +1,80 @@
+cmake_minimum_required(VERSION 3.1)
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+project(cimgui)
+
+#general settings
+
+set(IMGUI_LIBRARIES )
+set(IMGUI_COMMON_FLAGS )
+set(GENERATOR_IMPL "internal")
+
+if(IMGUI_FREETYPE)
+ set(GENERATOR_IMPL "${GENERATOR_IMPL} freetype")
+ add_definitions("-DCIMGUI_FREETYPE=1")
+endif(IMGUI_FREETYPE)
+
+add_subdirectory(imgui)
+
+if(IMGUI_BINDINGS)
+add_library(cimgui SHARED "")
+target_link_libraries(cimgui PUBLIC imgui ${IMGUI_LIBRARIES})
+target_compile_definitions(cimgui PUBLIC IMGUI_IMPL_API=extern\t\"C\"\t)
+target_include_directories(cimgui PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/generator/output)
+target_include_directories(cimgui PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/imgui)
+set_target_properties(cimgui PROPERTIES LINKER_LANGUAGE CXX)
+
+set(GENERATOR_ARGS )
+if(IMGUI_ALLEGRO)
+ list(APPEND GENERATOR_ARGS allegro5)
+endif()
+if(IMGUI_GLFW)
+ list(APPEND GENERATOR_ARGS glfw)
+endif()
+if(IMGUI_GLUT)
+ list(APPEND GENERATOR_ARGS glut)
+endif()
+if(IMGUI_OPENGL)
+ list(APPEND GENERATOR_ARGS opengl2 opengl3)
+endif()
+if(IMGUI_SDL)
+ list(APPEND GENERATOR_ARGS sdl sdlrenderer)
+endif()
+if(IMGUI_VULKAN)
+ list(APPEND GENERATOR_ARGS vulkan)
+endif()
+list(APPEND GENERATOR_ARGS ${IMGUI_COMMON_FLAGS} ${CMAKE_CPP_FLAGS})
+file(GLOB GENERATOR_OUTPUT_FILES "${CMAKE_SOURCE_DIR}/generator/output/*")
+list(APPEND
+ GENERATOR_OUTPUT_FILES
+ ${CMAKE_SOURCE_DIR}/cimgui.cpp
+ ${CMAKE_SOURCE_DIR}/cimgui.h
+ ${CMAKE_SOURCE_DIR}/generator/output/cimgui_nopreprocess.cpp
+ ${CMAKE_SOURCE_DIR}/generator/output/cimgui_nopreprocess.h
+)
+ADD_CUSTOM_COMMAND(VERBATIM
+ OUTPUT ${GENERATOR_OUTPUT_FILES}
+ COMMAND luajit ./generator.lua gcc "${GENERATOR_IMPL}" ${GENERATOR_ARGS}
+ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/generator"
+)
+set(CIMGUI_SOURCES "${CMAKE_SOURCE_DIR}/cimgui.cpp")
+set(CIMGUI_INCLUDE_FILES "${CMAKE_SOURCE_DIR}/cimgui.h")
+
+target_sources(cimgui
+ PUBLIC
+ ${CIMGUI_SOURCES}
+ ${CIMGUI_INCLUDE_FILES}
+)
+
+include(GNUInstallDirs)
+
+#install
+install(TARGETS cimgui LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+install(FILES ${CIMGUI_INCLUDE_FILES} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/imgui")
+
+#test
+set(CIMGUI_TEST "no" CACHE STRING "Enable compilation of a test unit based on imgui null")
+
+if (CIMGUI_TEST)
+ add_subdirectory(test)
+endif ()
+endif()
diff --git a/media-libs/imgui/files/cimgui-1.87-fix-cmake.patch b/media-libs/imgui/files/cimgui-1.87-fix-cmake.patch
deleted file mode 100644
index b3bae1cfe..000000000
--- a/media-libs/imgui/files/cimgui-1.87-fix-cmake.patch
+++ /dev/null
@@ -1,69 +0,0 @@
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1,21 +1,13 @@
- cmake_minimum_required(VERSION 3.1)
-
--project(cimgui)
-+project(libcimgui)
-
--if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/imgui/imgui_tables.cpp)
-- set(TABLES_SOURCE "imgui/imgui_tables.cpp")
--else()
- set(TABLES_SOURCE "")
--endif()
-
-
- #general settings
- file(GLOB IMGUI_SOURCES
- cimgui.cpp
-- imgui/imgui.cpp
-- imgui/imgui_draw.cpp
-- imgui/imgui_demo.cpp
-- imgui/imgui_widgets.cpp
- ${TABLES_SOURCE}
- )
-
-@@ -24,34 +16,30 @@
- set(IMGUI_LIBRARIES )
-
- if(IMGUI_FREETYPE)
-- FIND_PACKAGE(freetype REQUIRED PATHS ${FREETYPE_PATH})
-- list(APPEND IMGUI_LIBRARIES freetype)
-- list(APPEND IMGUI_SOURCES imgui/misc/freetype/imgui_freetype.cpp)
-+ list(APPEND IMGUI_LIBRARIES -lfreetype)
- add_definitions("-DCIMGUI_FREETYPE=1")
- endif(IMGUI_FREETYPE)
-
- #add library and link
- if (IMGUI_STATIC)
-- add_library(cimgui STATIC ${IMGUI_SOURCES})
-+ add_library(libcimgui STATIC ${IMGUI_SOURCES})
- else (IMGUI_STATIC)
-- add_library(cimgui SHARED ${IMGUI_SOURCES})
-+ add_library(libcimgui SHARED ${IMGUI_SOURCES})
- endif (IMGUI_STATIC)
-
--target_compile_definitions(cimgui PUBLIC IMGUI_DISABLE_OBSOLETE_FUNCTIONS=1)
- if (WIN32)
-- target_compile_definitions(cimgui PUBLIC IMGUI_IMPL_API=extern\t\"C\"\t__declspec\(dllexport\))
-+ target_compile_definitions(libcimgui PUBLIC IMGUI_IMPL_API=extern\t\"C\"\t__declspec\(dllexport\))
- list(APPEND IMGUI_LIBRARIES imm32)
- else (WIN32)
-- target_compile_definitions(cimgui PUBLIC IMGUI_IMPL_API=extern\t\"C\"\t)
-+ target_compile_definitions(libcimgui PUBLIC IMGUI_IMPL_API=extern\t\"C\"\t)
- endif (WIN32)
-
--target_include_directories(cimgui PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
--target_include_directories(cimgui PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/imgui)
--set_target_properties(cimgui PROPERTIES PREFIX "")
--target_link_libraries(cimgui ${IMGUI_LIBRARIES})
-+target_include_directories(libcimgui PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/imgui)
-+set_target_properties(libcimgui PROPERTIES PREFIX "")
-+target_link_libraries(libcimgui PUBLIC -limgui)
-
- #install
--install(TARGETS cimgui
-+install(TARGETS libcimgui
- RUNTIME DESTINATION .
- LIBRARY DESTINATION .
- ARCHIVE DESTINATION .
diff --git a/media-libs/imgui/files/imgui-1.87-CMakeLists.txt b/media-libs/imgui/files/imgui-1.87-CMakeLists.txt
new file mode 100644
index 000000000..0823d1dc3
--- /dev/null
+++ b/media-libs/imgui/files/imgui-1.87-CMakeLists.txt
@@ -0,0 +1,160 @@
+cmake_minimum_required(VERSION 3.8.2)
+project(imgui VERSION 1.73.0 LANGUAGES CXX C)
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+
+include(GNUInstallDirs)
+
+option(IMGUI_ALLEGRO OFF)
+option(IMGUI_EXAMPLES "Build ImGui examples" OFF)
+option(IMGUI_FREETYPE OFF)
+option(IMGUI_GLFW OFF)
+option(IMGUI_GLUT OFF)
+option(IMGUI_OPENGL OFF)
+option(IMGUI_SDL OFF)
+option(IMGUI_VULKAN OFF)
+
+add_library (imgui_objects
+ OBJECT
+ imgui.cpp
+ imgui_demo.cpp
+ imgui_draw.cpp
+ imgui_tables.cpp
+ imgui_widgets.cpp
+)
+add_library (imgui SHARED "")
+target_include_directories(imgui_objects PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/backends")
+#set(IMGUI_COMMON_FLAGS "-DIMGUI_USE_WCHAR32 -DIMGUI_DISABLE_STB_RECT_PACK_IMPLEMENTATION -DIMGUI_STB_RECT_PACK_FILENAME=\"<stb/stb_rect_pack.h>\"")
+set(IMGUI_COMMON_FLAGS "-DIMGUI_USE_WCHAR32")
+
+if(IMGUI_ALLEGRO)
+ find_package(PkgConfig REQUIRED)
+ pkg_check_modules(ALLEGRO5 REQUIRED allegro-5 allegro_main-5 allegro_primitives-5)
+ target_sources(imgui_objects PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_allegro5.cpp")
+ target_include_directories(imgui_objects PUBLIC ${ALLEGRO5_INCLUDE_DIRS})
+ list(APPEND IMGUI_LIBRARIES ${ALLEGRO5_LIBRARIES})
+endif()
+if(IMGUI_FREETYPE)
+ find_package(Freetype REQUIRED)
+ target_sources(imgui_objects PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/misc/freetype/imgui_freetype.cpp")
+ target_include_directories(imgui_objects PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/misc/freetype" ${FREETYPE_INCLUDE_DIRS})
+ list(APPEND IMGUI_LIBRARIES ${FREETYPE_LIBRARIES})
+# set(IMGUI_COMMON_FLAGS "${IMGUI_COMMON_FLAGS} -DIMGUI_ENABLE_FREETYPE -DIMGUI_ENABLE_STB_TRUETYPE -DIMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATION -DIMGUI_STB_TRUETYPE_FILENAME=\"<stb/stb_truetype.h>\"")
+ set(IMGUI_COMMON_FLAGS "${IMGUI_COMMON_FLAGS} -DIMGUI_ENABLE_FREETYPE -DIMGUI_ENABLE_STB_TRUETYPE")
+ add_executable(binary_to_compressed_c "${CMAKE_CURRENT_SOURCE_DIR}/misc/fonts/binary_to_compressed_c.cpp")
+ target_include_directories(binary_to_compressed_c PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
+ target_link_libraries(binary_to_compressed_c PUBLIC imgui)
+ install(TARGETS binary_to_compressed_c DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/imgui")
+endif()
+if(IMGUI_GLFW)
+ find_package(glfw3 REQUIRED)
+ target_sources(imgui_objects PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_glfw.cpp")
+ list(APPEND IMGUI_LIBRARIES glfw)
+endif()
+if(IMGUI_GLUT)
+ find_package(FreeGLUT REQUIRED)
+ target_sources(imgui_objects PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_glut.cpp")
+ target_include_directories(imgui_objects PUBLIC ${FreeGLUT_INCLUDE_DIRS})
+ list(APPEND IMGUI_LIBRARIES FreeGLUT::freeglut)
+endif()
+if(IMGUI_OPENGL)
+ find_package(OpenGL REQUIRED)
+ target_sources(imgui_objects
+ PUBLIC
+ "${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_opengl2.cpp"
+ "${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_opengl3.cpp"
+ )
+ target_include_directories(imgui_objects PUBLIC ${OPENGL_INCLUDE_DIR})
+ list(APPEND IMGUI_LIBRARIES ${OPENGL_gl_LIBRARY})
+endif()
+if(IMGUI_SDL)
+ find_package(SDL2 REQUIRED)
+ target_sources(imgui_objects
+ PUBLIC
+ "${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_sdl.cpp"
+ "${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_sdlrenderer.cpp"
+ )
+ target_include_directories(imgui_objects PUBLIC "${SDL2_INCLUDE_DIRS}")
+ list(APPEND IMGUI_LIBRARIES "${SDL2_LIBRARIES}")
+endif()
+if(IMGUI_VULKAN)
+ find_package(Vulkan REQUIRED)
+ target_sources(imgui_objects PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_vulkan.cpp")
+ set(IMGUI_COMMON_FLAGS "${IMGUI_COMMON_FLAGS} -DImTextureID=ImU64")
+ target_include_directories(imgui_objects PUBLIC ${Vulkan_INCLUDE_DIRS})
+ list(APPEND IMGUI_LIBRARIES Vulkan::Vulkan)
+endif()
+
+if(IMGUI_EXAMPLES)
+ install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/examples" DESTINATION "${CMAKE_INSTALL_DOCDIR}")
+ add_executable(example_null "${CMAKE_CURRENT_SOURCE_DIR}/examples/example_null/main.cpp")
+ target_include_directories(example_null PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
+ target_link_libraries(example_null PUBLIC imgui)
+ install(TARGETS example_null DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/imgui/examples" )
+ if(IMGUI_ALLEGRO)
+ add_executable(example_allegro5 "${CMAKE_CURRENT_SOURCE_DIR}/examples/example_allegro5/main.cpp")
+ target_include_directories(example_allegro5 PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/backends")
+ target_link_libraries(example_allegro5 PUBLIC imgui)
+ install(TARGETS example_allegro5 DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/imgui/examples" )
+ endif()
+ if(IMGUI_GLFW AND IMGUI_OPENGL)
+ add_executable(example_glfw_opengl2 "${CMAKE_CURRENT_SOURCE_DIR}/examples/example_glfw_opengl2/main.cpp")
+ target_include_directories(example_glfw_opengl2 PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/backends")
+ target_link_libraries(example_glfw_opengl2 PUBLIC imgui)
+ install(TARGETS example_allegro5 DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/imgui/examples" )
+ add_executable(example_glfw_opengl3 "${CMAKE_CURRENT_SOURCE_DIR}/examples/example_glfw_opengl3/main.cpp")
+ target_include_directories(example_glfw_opengl3 PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/backends")
+ target_link_libraries(example_glfw_opengl3 PUBLIC imgui)
+ install(TARGETS example_glfw_opengl3 DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/imgui/examples" )
+ endif()
+ if(IMGUI_GLFW AND IMGUI_VULKAN)
+ add_executable(example_glfw_vulkan "${CMAKE_CURRENT_SOURCE_DIR}/examples/example_glfw_vulkan/main.cpp")
+ target_include_directories(example_glfw_vulkan PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/backends")
+ target_link_libraries(example_glfw_vulkan PUBLIC imgui)
+ install(TARGETS example_glfw_vulkan DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/imgui/examples" )
+ endif()
+ if(IMGUI_GLUT AND IMGUI_OPENGL)
+ add_executable(example_glut_opengl2 "${CMAKE_CURRENT_SOURCE_DIR}/examples/example_glut_opengl2/main.cpp")
+ target_include_directories(example_glut_opengl2 PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/backends")
+ target_link_libraries(example_glut_opengl2 PUBLIC imgui)
+ install(TARGETS example_glut_opengl2 DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/imgui/examples" )
+ endif()
+ if(IMGUI_SDL)
+ add_executable(example_sdl_sdlrenderer "${CMAKE_CURRENT_SOURCE_DIR}/examples/example_sdl_sdlrenderer/main.cpp")
+ target_include_directories(example_sdl_sdlrenderer PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/backends" "${SDL2_INCLUDE_DIRS}")
+ target_link_libraries(example_sdl_sdlrenderer PUBLIC imgui)
+ install(TARGETS example_sdl_sdlrenderer DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/imgui/examples" )
+ if(IMGUI_OPENGL)
+ add_executable(example_sdl_opengl2 "${CMAKE_CURRENT_SOURCE_DIR}/examples/example_sdl_opengl2/main.cpp")
+ target_include_directories(example_sdl_opengl2 PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/backends" "${SDL2_INCLUDE_DIRS}")
+ target_link_libraries(example_sdl_opengl2 PUBLIC imgui)
+ install(TARGETS example_sdl_opengl2 DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/imgui/examples" )
+ add_executable(example_sdl_opengl3 "${CMAKE_CURRENT_SOURCE_DIR}/examples/example_sdl_opengl3/main.cpp")
+ target_include_directories(example_sdl_opengl3 PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/backends" "${SDL2_INCLUDE_DIRS}")
+ target_link_libraries(example_sdl_opengl3 PUBLIC imgui)
+ install(TARGETS example_sdl_opengl2 DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/imgui/examples" )
+ endif()
+ if(IMGUI_VULKAN)
+ add_executable(example_sdl_vulkan "${CMAKE_CURRENT_SOURCE_DIR}/examples/example_sdl_vulkan/main.cpp")
+ target_include_directories(example_sdl_vulkan PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/backends" "${SDL2_INCLUDE_DIRS}")
+ target_link_libraries(example_sdl_vulkan PUBLIC imgui)
+ install(TARGETS example_sdl_vulkan DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/imgui/examples" )
+ endif()
+ endif()
+endif()
+
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${IMGUI_COMMON_FLAGS} -fpermissive")
+target_sources (imgui PUBLIC $<TARGET_OBJECTS:imgui_objects>)
+
+add_library(imgui::imgui ALIAS imgui)
+target_link_libraries(imgui PUBLIC ${IMGUI_LIBRARIES})
+
+file(GLOB IMGUI_INCLUDE_FILES "*.h" "backends/*.h" "misc/freetype/*.h")
+install(FILES ${IMGUI_INCLUDE_FILES} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/imgui")
+install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/backends/vulkan" DESTINATION "${CMAKE_INSTALL_DATADIR}/imgui/backends")
+file(GLOB IMGUI_DOC_FILES "docs/*")
+install(FILES ${IMGUI_DOC_FILES} DESTINATION "${CMAKE_INSTALL_DOCDIR}")
+install(TARGETS imgui)
+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/imgui.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/imgui.pc" @ONLY)
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/imgui.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
+set(IMGUI_COMMON_FLAGS "${IMGUI_COMMON_FLAGS}" PARENT_SCOPE)
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" PARENT_SCOPE)
diff --git a/media-libs/imgui/files/imgui.pc.in b/media-libs/imgui/files/imgui.pc.in
new file mode 100644
index 000000000..4d033939f
--- /dev/null
+++ b/media-libs/imgui/files/imgui.pc.in
@@ -0,0 +1,11 @@
+prefix=@CMAKE_INSTALL_PREFIX@
+libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
+includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/imgui
+
+Name: imgui
+Description: Bloat-free Immediate Mode Graphical User interface for C
+Version: @version@
+URL: https://github.com/ocornut/imgui
+Libs: -L${libdir} -limgui @IMGUI_LIBRARIES@
+Libs.private: -lm
+Cflags: -I${includedir}
diff --git a/media-libs/imgui/imgui-1.87-r2.ebuild b/media-libs/imgui/imgui-1.87-r2.ebuild
deleted file mode 100644
index 0df42793d..000000000
--- a/media-libs/imgui/imgui-1.87-r2.ebuild
+++ /dev/null
@@ -1,251 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake flag-o-matic toolchain-funcs
-
-CMAKE_IN_SOURCE_BUILD=1
-
-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}.tar.gz
- https://github.com/cimgui/cimgui/archive/refs/tags/${PV}.tar.gz -> c${P}.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="allegro bindings examples freetype glfw glut opengl sdl vulkan"
-S="${WORKDIR}/c${P}"
-
-RDEPEND="
- allegro? ( media-libs/allegro:5 )
- freetype? ( media-libs/freetype )
- glfw? ( media-libs/glfw:0 )
- glut? ( media-libs/freeglut )
- opengl? ( virtual/opengl )
- sdl? ( media-libs/libsdl2 )
- vulkan? ( media-libs/vulkan-loader )
-"
-DEPEND="
- ${RDEPEND}
- vulkan? ( dev-util/vulkan-headers )
-"
-BDEPEND="
- bindings? ( dev-lang/luajit )
- virtual/pkgconfig
-"
-
-PATCHES=( "${FILESDIR}/c${P}-fix-cmake.patch" )
-REQUIRED_USE="
- || (
- allegro
- glfw
- glut
- sdl
- )
- || (
- allegro
- opengl
- vulkan
- )
- examples? (
- allegro
- glfw
- glut
- opengl
- sdl
- vulkan
- )
-"
-
-src_prepare() {
- pushd ../ || die
- rm -rf "${S}/imgui" || die
- mv "${P}" "${S}/imgui" || die
- pushd "${S}/imgui" || die
-
- # imgui
- rm -r examples/libs || die
- rm -r misc/*/*.ttf || die
- rm -r misc/single_file || die
-
- # cimgui
- if use bindings; then
- pushd "${S}" || die
- cmake_src_prepare
- else
- eapply_user
- fi
-}
-
-src_configure() {
- pushd imgui || die
-
- # imgui
- tc-export CXX
- append-cppflags "-DIMGUI_USE_WCHAR32"
- COMMONFLAGS="-I${S}/imgui -I${S}/imgui/backends -I${S}/imgui/misc/freetype -fPIC -fpermissive"
- local PKGCONF="$(tc-getPKG_CONFIG)" || die
-
- use allegro && append-libs "-lallegro -lallegro_main -lallegro_primitives"
- if use freetype; then
- append-cppflags "-DIMGUI_ENABLE_FREETYPE -DIMGUI_ENABLE_STB_TRUETYPE"
- COMMONFLAGS="${COMMONFLAGS} $(${PKGCONF} --cflags freetype2)" || die
- append-libs "$(${PKGCONF} --libs freetype2)" || die
- fi
- if use glfw; then
- append-libs "$(${PKGCONF} --libs glfw3)" || die
- COMMONFLAGS="${COMMONFLAGS} $(${PKGCONF} --cflags glfw3)" || die
- fi
- if use glut; then
- append-libs "$(${PKGCONF} --libs freeglut)" || die
- COMMONFLAGS="${COMMONFLAGS} $(${PKGCONF} --cflags freeglut)" || die
- fi
- use opengl && append-libs "-lGL"
- if use sdl; then
- append-libs "-ldl $(sdl2-config --libs)" || die
- COMMONFLAGS="${COMMONFLAGS} $(sdl2-config --cflags)" || die
- fi
- if use vulkan; then
- append-libs "$(${PKGCONF} --libs vulkan)" || die
- COMMONFLAGS="${COMMONFLAGS} $(${PKGCONF} --cflags vulkan)" || die
- append-cppflags "-DImTextureID=ImU64" || die
- fi
- append-cxxflags "${COMMONFLAGS}"
- popd || die
-
- # cimgui
- if use bindings; then
- local mycmakeargs=(
- -DIMGUI_FREETYPE=$(usex freetype)
- -DIMGUI_STATIC=OFF
- )
- cmake_src_configure
- fi
-}
-
-src_compile() {
- pushd imgui || die
-
- # imgui
- set -x || die
-
- local objects=()
-
- for i in imgui{,_draw,_demo,_tables,_widgets}; do
- ${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} -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
- popd || die
- fi
-
- pushd backends || die
- if use allegro; then
- ${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} -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} -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} -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} -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} -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 ${objects[@]} -o libimgui.so ${LIBS} || die
-
- if use examples; then
- mkdir ex || die
- for f in allegro5 glfw_opengl{2,3} glfw_vulkan null sdl_opengl{2,3} sdl_{sdlrenderer,vulkan} glut_opengl2 ; do
- ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} -fPIE examples/example_${f}/main.cpp "-L${S}/imgui" -limgui ${LIBS} -o "${S}/imgui/ex/example_${f}" || die
- done
- fi
-
- set +x || die
- popd || die
-
- # cimgui
- if use bindings; then
- pushd generator || die
- local myargs=()
- use allegro && myargs+=( allegro5 )
- use glfw && myargs+=( glfw )
- use glut && myargs+=( glut )
- use opengl && myargs+=( opengl3 opengl2 )
- use sdl && myargs+=( sdl sdlrenderer )
- use vulkan && myargs+=( vulkan )
- myargs+=( ${CFLAGS} ${COMMONFLAGS} ${CPPFLAGS} )
-
- if use freetype ; then
- luajit ./generator.lua gcc "internal freetype" ${myargs[@]} || die
- else
- luajit ./generator.lua gcc "internal" ${myargs[@]} || die
- fi
- popd || die
- cmake_src_compile
- fi
-}
-
-src_install() {
- pushd imgui || die
-
- # imgui
- dolib.so libimgui.so
- dodoc docs/*
- insinto "/usr/include/imgui"
- doins *.h
- doins -r misc/*/*.h
- doins backends/*.h
- insinto "/usr/share/${PN}/backends"
- doins -r backends/vulkan
- exeinto "/usr/libexec/${PN}"
- use freetype && doexe misc/fonts/binary_to_compressed_c
- rm -rf misc/{fonts,freetype} || die
- dodoc -r misc
-
- if use examples; then
- exeinto "/usr/libexec/${PN}/examples"
- doexe ex/*
- dodoc -r examples
- docompress -x "/usr/share/doc/${PF}/examples"
- fi
-
- popd || die
-
- # cimgui
- if use bindings; then
- dolib.so libcimgui.so
- insinto "/usr/share/doc/${PF}/cimgui"
- doins README.md TODO.txt
- doheader cimgui.h
- fi
-}
diff --git a/media-libs/imgui/imgui-1.87-r4.ebuild b/media-libs/imgui/imgui-1.87-r4.ebuild
new file mode 100644
index 000000000..7bb3f6e42
--- /dev/null
+++ b/media-libs/imgui/imgui-1.87-r4.ebuild
@@ -0,0 +1,119 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+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}.tar.gz
+ https://github.com/cimgui/cimgui/archive/refs/tags/${PV}.tar.gz -> c${P}.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+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 )
+ freetype? ( media-libs/freetype )
+ glfw? ( media-libs/glfw:0 )
+ glut? ( media-libs/freeglut )
+ opengl? ( virtual/opengl )
+ sdl? ( media-libs/libsdl2 )
+ vulkan? ( media-libs/vulkan-loader )
+"
+DEPEND="
+ ${RDEPEND}
+ vulkan? ( dev-util/vulkan-headers )
+"
+BDEPEND="
+ bindings? ( dev-lang/luajit )
+ virtual/pkgconfig
+"
+
+REQUIRED_USE="
+ || (
+ allegro
+ glfw
+ glut
+ sdl
+ )
+ || (
+ allegro
+ opengl
+ vulkan
+ )
+ examples? (
+ allegro
+ glfw
+ glut
+ opengl
+ sdl
+ vulkan
+ )
+"
+
+src_prepare() {
+ pushd ../ || die
+ rm -rf "${S}/imgui" || die
+ mv "${P}" "${S}/imgui" || die
+ pushd "${S}/imgui" || die
+
+ # imgui
+ 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 || die
+ cmake_src_prepare
+}
+
+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
+}
+
+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
+}
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [gentoo-commits] repo/proj/guru:master commit in: media-libs/imgui/, media-libs/imgui/files/
@ 2022-05-05 4:07 Haelwenn Monnier
0 siblings, 0 replies; 6+ messages in thread
From: Haelwenn Monnier @ 2022-05-05 4:07 UTC (permalink / raw
To: gentoo-commits
commit: 6b24ca9ef444311a78105507d415509a8dd7d836
Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Wed May 4 00:59:16 2022 +0000
Commit: Haelwenn Monnier <contact <AT> hacktivis <DOT> me>
CommitDate: Wed May 4 00:59:16 2022 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=6b24ca9e
media-libs/imgui: fix pkgconfig file
Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>
media-libs/imgui/files/imgui-1.87-CMakeLists.txt | 11 ++++++++++-
media-libs/imgui/files/imgui.pc.in | 6 +++---
.../imgui/{imgui-1.87-r4.ebuild => imgui-1.87-r5.ebuild} | 5 ++++-
3 files changed, 17 insertions(+), 5 deletions(-)
diff --git a/media-libs/imgui/files/imgui-1.87-CMakeLists.txt b/media-libs/imgui/files/imgui-1.87-CMakeLists.txt
index 0823d1dc3..1735d8270 100644
--- a/media-libs/imgui/files/imgui-1.87-CMakeLists.txt
+++ b/media-libs/imgui/files/imgui-1.87-CMakeLists.txt
@@ -4,6 +4,8 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
include(GNUInstallDirs)
+set(pc_req_private)
+
option(IMGUI_ALLEGRO OFF)
option(IMGUI_EXAMPLES "Build ImGui examples" OFF)
option(IMGUI_FREETYPE OFF)
@@ -32,6 +34,7 @@ if(IMGUI_ALLEGRO)
target_sources(imgui_objects PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_allegro5.cpp")
target_include_directories(imgui_objects PUBLIC ${ALLEGRO5_INCLUDE_DIRS})
list(APPEND IMGUI_LIBRARIES ${ALLEGRO5_LIBRARIES})
+ string(APPEND pc_req_private " allegro-5 allegro_main-5 allegro_primitives-5")
endif()
if(IMGUI_FREETYPE)
find_package(Freetype REQUIRED)
@@ -44,17 +47,20 @@ if(IMGUI_FREETYPE)
target_include_directories(binary_to_compressed_c PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
target_link_libraries(binary_to_compressed_c PUBLIC imgui)
install(TARGETS binary_to_compressed_c DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/imgui")
+ string(APPEND pc_req_private " freetype2")
endif()
if(IMGUI_GLFW)
find_package(glfw3 REQUIRED)
target_sources(imgui_objects PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_glfw.cpp")
list(APPEND IMGUI_LIBRARIES glfw)
+ string(APPEND pc_req_private " glfw3")
endif()
if(IMGUI_GLUT)
find_package(FreeGLUT REQUIRED)
target_sources(imgui_objects PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_glut.cpp")
target_include_directories(imgui_objects PUBLIC ${FreeGLUT_INCLUDE_DIRS})
list(APPEND IMGUI_LIBRARIES FreeGLUT::freeglut)
+ string(APPEND pc_req_private " glut")
endif()
if(IMGUI_OPENGL)
find_package(OpenGL REQUIRED)
@@ -65,6 +71,7 @@ if(IMGUI_OPENGL)
)
target_include_directories(imgui_objects PUBLIC ${OPENGL_INCLUDE_DIR})
list(APPEND IMGUI_LIBRARIES ${OPENGL_gl_LIBRARY})
+ string(APPEND pc_req_private " opengl")
endif()
if(IMGUI_SDL)
find_package(SDL2 REQUIRED)
@@ -75,6 +82,7 @@ if(IMGUI_SDL)
)
target_include_directories(imgui_objects PUBLIC "${SDL2_INCLUDE_DIRS}")
list(APPEND IMGUI_LIBRARIES "${SDL2_LIBRARIES}")
+ string(APPEND pc_req_private " sdl2")
endif()
if(IMGUI_VULKAN)
find_package(Vulkan REQUIRED)
@@ -82,6 +90,7 @@ if(IMGUI_VULKAN)
set(IMGUI_COMMON_FLAGS "${IMGUI_COMMON_FLAGS} -DImTextureID=ImU64")
target_include_directories(imgui_objects PUBLIC ${Vulkan_INCLUDE_DIRS})
list(APPEND IMGUI_LIBRARIES Vulkan::Vulkan)
+ string(APPEND pc_req_private " vulkan")
endif()
if(IMGUI_EXAMPLES)
@@ -142,7 +151,7 @@ if(IMGUI_EXAMPLES)
endif()
endif()
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${IMGUI_COMMON_FLAGS} -fpermissive")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${IMGUI_COMMON_FLAGS}")
target_sources (imgui PUBLIC $<TARGET_OBJECTS:imgui_objects>)
add_library(imgui::imgui ALIAS imgui)
diff --git a/media-libs/imgui/files/imgui.pc.in b/media-libs/imgui/files/imgui.pc.in
index 4d033939f..e7776fc8c 100644
--- a/media-libs/imgui/files/imgui.pc.in
+++ b/media-libs/imgui/files/imgui.pc.in
@@ -6,6 +6,6 @@ Name: imgui
Description: Bloat-free Immediate Mode Graphical User interface for C
Version: @version@
URL: https://github.com/ocornut/imgui
-Libs: -L${libdir} -limgui @IMGUI_LIBRARIES@
-Libs.private: -lm
-Cflags: -I${includedir}
+Requires.private: @pc_req_private@
+Libs: -L${libdir} -limgui
+Cflags: -I${includedir}/imgui @IMGUI_COMMON_FLAGS@
diff --git a/media-libs/imgui/imgui-1.87-r4.ebuild b/media-libs/imgui/imgui-1.87-r5.ebuild
similarity index 95%
rename from media-libs/imgui/imgui-1.87-r4.ebuild
rename to media-libs/imgui/imgui-1.87-r5.ebuild
index 0c83b5cdf..51478bf63 100644
--- a/media-libs/imgui/imgui-1.87-r4.ebuild
+++ b/media-libs/imgui/imgui-1.87-r5.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-inherit cmake
+inherit cmake flag-o-matic
DESCRIPTION="Bloat-free graphical user interface library for C++"
HOMEPAGE="
@@ -55,6 +55,9 @@ REQUIRED_USE="
"
src_prepare() {
+ # https://github.com/ocornut/imgui/issues/5281
+ append-cxxflags -fpermissive
+
pushd ../ || die
rm -rf "${S}/imgui" || die
mv "${P}" "${S}/imgui" || die
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [gentoo-commits] repo/proj/guru:master commit in: media-libs/imgui/, media-libs/imgui/files/
@ 2022-05-05 14:42 Haelwenn Monnier
0 siblings, 0 replies; 6+ messages in thread
From: Haelwenn Monnier @ 2022-05-05 14:42 UTC (permalink / raw
To: gentoo-commits
commit: cad184ce0526c395646191e9f4fdece311355842
Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Wed May 4 11:30:26 2022 +0000
Commit: Haelwenn Monnier <contact <AT> hacktivis <DOT> me>
CommitDate: Thu May 5 07:32:17 2022 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=cad184ce
media-libs/imgui: fix for fpermissive
Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>
media-libs/imgui/files/imgui-1.87-fpermissive.patch | 11 +++++++++++
media-libs/imgui/imgui-1.87-r5.ebuild | 7 +++----
2 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/media-libs/imgui/files/imgui-1.87-fpermissive.patch b/media-libs/imgui/files/imgui-1.87-fpermissive.patch
new file mode 100644
index 000000000..7b2fef035
--- /dev/null
+++ b/media-libs/imgui/files/imgui-1.87-fpermissive.patch
@@ -0,0 +1,11 @@
+--- a/imgui/backends/imgui_impl_allegro5.cpp
++++ b/imgui/backends/imgui_impl_allegro5.cpp
+@@ -233,7 +233,7 @@
+ return false;
+
+ // Store our identifier
+- io.Fonts->SetTexID((void*)cloned_img);
++ io.Fonts->SetTexID((ImTextureID)(intptr_t)cloned_img);
+ bd->Texture = cloned_img;
+
+ // Create an invisible mouse cursor
diff --git a/media-libs/imgui/imgui-1.87-r5.ebuild b/media-libs/imgui/imgui-1.87-r5.ebuild
index 51478bf63..927b7feae 100644
--- a/media-libs/imgui/imgui-1.87-r5.ebuild
+++ b/media-libs/imgui/imgui-1.87-r5.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-inherit cmake flag-o-matic
+inherit cmake
DESCRIPTION="Bloat-free graphical user interface library for C++"
HOMEPAGE="
@@ -54,10 +54,9 @@ REQUIRED_USE="
)
"
-src_prepare() {
- # https://github.com/ocornut/imgui/issues/5281
- append-cxxflags -fpermissive
+PATCHES=( "${FILESDIR}/${P}-fpermissive.patch" )
+src_prepare() {
pushd ../ || die
rm -rf "${S}/imgui" || die
mv "${P}" "${S}/imgui" || die
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [gentoo-commits] repo/proj/guru:master commit in: media-libs/imgui/, media-libs/imgui/files/
@ 2022-09-08 1:46 Ronny Gutbrod
0 siblings, 0 replies; 6+ messages in thread
From: Ronny Gutbrod @ 2022-09-08 1:46 UTC (permalink / raw
To: gentoo-commits
commit: 9631fc4edbeac197d38ada2049d3daa6f9da093f
Author: Adel KARA SLIMANE <adel.ks <AT> zegrapher <DOT> com>
AuthorDate: Mon Sep 5 19:33:40 2022 +0000
Commit: Ronny Gutbrod <gentoo <AT> tastytea <DOT> de>
CommitDate: Wed Sep 7 16:07:18 2022 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=9631fc4e
media-libs/imgui: improve 1.81 ebuild
Signed-off-by: Adel KARA SLIMANE <adel.ks <AT> zegrapher.com>
media-libs/imgui/Manifest | 1 +
media-libs/imgui/files/imgui-1.81-meson.build | 137 ---------------------
.../imgui/files/imgui-1.81-meson_options.txt | 18 ---
media-libs/imgui/imgui-1.81.ebuild | 26 ++--
media-libs/imgui/metadata.xml | 4 +-
5 files changed, 17 insertions(+), 169 deletions(-)
diff --git a/media-libs/imgui/Manifest b/media-libs/imgui/Manifest
index c33c14ca9..92dc7f09b 100644
--- a/media-libs/imgui/Manifest
+++ b/media-libs/imgui/Manifest
@@ -1,4 +1,5 @@
DIST cimgui-1.87.gh.tar.gz 385460 BLAKE2B 0916d53a00234343536ee412035a2c405b01e31a26c3d059cff4d446188ee8a1835a1233a68f671ccebb67be480801b85203a90b0e79fa729f7ac1efdc8bf4a2 SHA512 bf2ed9461e8c12514d29914e6da7f8fae7cd31fcc587c7d89122c950541aed3b4b908d8cd298b3975e9a955a47789335a88db7223ca558cbdf459693a0081bda
+DIST imgui-1.81-1-meson-wrap.zip 1850 BLAKE2B 325f84fd57a896ec9aceb83a54752e8dba52499c3540cc389ab51b929f1dd65c4a599ab71f7f06fa082f31572d8cdaf2f9d7bfdd8cf6ca96a529318bd53f0a06 SHA512 c97fa4cb5ab31c040951e6da04bb1b9659f0105adf54becc35c60ad376c6d4f9e4dcd2a5a554dc5430cfc69527ef5d8570f39fbbf91a23d15f51740f06fb7c3c
DIST imgui-1.81.tar.gz 1413443 BLAKE2B 6f2e63777821b2767da92d9f40f4de7b4313c38817413e959e612c0ce67701645cf29f0748a3b86cfbd41e0b4b2c8099e9a0ca786c637ca1661fffd7b0de0629 SHA512 d7a2b66dea77359f78068a595607d7668e09ddd0b91910f67fc6463cb920b91b0cc1855984bd4d41e6a880b69ca7cd5e3adc064dcf461c0629b9f8c845a4fc3e
DIST imgui-1.83.tar.gz 1448389 BLAKE2B 648306bd69181ad8315f12fc5b2c319b23005d6b3fc790ad64caaf1f80304e81b33af5d6f435fa97151fcf1e77eb15455838a09570b7a9c7dd9c56a61510b5a1 SHA512 2150e7101f384b1c749b2e89876b2085a7ff43435f04e88602d0e5e00db7a41c1ace5176bdb0963326845d1c8303b5092a7ca1c9c8e70c522ba96f899ed5bb9c
DIST imgui-1.87.gh.tar.gz 1460834 BLAKE2B f73b71400311e7c5f82248e242a932add5090670c78077ca2239f349730bab88a00bfe4deca4e854772ef7f6a2cff1fc0f38f7174a026995f93c9e7b55eb2a1d SHA512 3255b06698ab9c8951953e1e0b6d160d64adfa4c011b21a4288547292a7f8fff586875faf9dae0677818bde65bd7e98da92f16f6beb1e6a66aa835edf32e8ce2
diff --git a/media-libs/imgui/files/imgui-1.81-meson.build b/media-libs/imgui/files/imgui-1.81-meson.build
deleted file mode 100644
index 1d5e67e38..000000000
--- a/media-libs/imgui/files/imgui-1.81-meson.build
+++ /dev/null
@@ -1,137 +0,0 @@
-# Copyright (c) 2020 The Meson development team
-
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-
-# The above copyright notice and this permission notice shall be included in all
-# copies or substantial portions of the Software.
-
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-project('imgui', 'cpp',
- version: '1.81',
- license: 'MIT',
-)
-
-include_dirs = include_directories('.', 'backends')
-sources = ['imgui_demo.cpp', 'imgui_draw.cpp', 'imgui_tables.cpp', 'imgui_widgets.cpp', 'imgui.cpp']
-
-cpp = meson.get_compiler('cpp')
-dependencies = []
-
-# renderer backends
-dx9_dep = cpp.find_library('d3d9', required: get_option('dx9'))
-if dx9_dep.found()
- sources += 'backends/imgui_impl_dx9.cpp'
- dependencies += dx9_dep
-endif
-dx10_dep = cpp.find_library('d3d10', required: get_option('dx10'))
-if dx10_dep.found()
- sources += 'backends/imgui_impl_dx10.cpp'
- dependencies += dx10_dep
-endif
-dx11_dep = cpp.find_library('d3d11', required: get_option('dx11'))
-if dx11_dep.found()
- sources += 'backends/imgui_impl_dx11.cpp'
- dependencies += dx11_dep
-endif
-dx12_dep = cpp.find_library('d3d12', required: get_option('dx12'))
-if dx12_dep.found()
- sources += 'backends/imgui_impl_dx12.cpp'
- dependencies += dx12_dep
-endif
-metal_dep = cpp.find_library('metal', required: get_option('metal'))
-if get_option('metal').enabled()
- sources += 'backends/imgui_impl_metal.mm'
- dependencies += metal_dep
-endif
-glew_dep = dependency('glew', required: get_option('opengl'))
-if glew_dep.found()
- sources += 'backends/imgui_impl_opengl3.cpp'
- dependencies += glew_dep
-endif
-vulkan_dep = dependency('vulkan', required: get_option('vulkan'))
-if vulkan_dep.found()
- sources += 'backends/imgui_impl_vulkan.cpp'
- dependencies += vulkan_dep
-endif
-
-# platform backends
-glfw_dep = dependency('glfw3', required: get_option('glfw'))
-if glfw_dep.found()
- sources += 'backends/imgui_impl_glfw.cpp'
- dependencies += glfw_dep
-endif
-sdl2_dep = dependency('sdl2', required: get_option('sdl2'))
-if sdl2_dep.found()
- sources += 'backends/imgui_impl_sdl.cpp'
- dependencies += sdl2_dep
-endif
-if get_option('osx').enabled() or (get_option('osx').auto() and target_machine.system() == 'darwin')
- sources += 'backends/imgui_impl_osx.mm'
-endif
-if get_option('win').enabled() or (get_option('win').auto() and target_machine.system() == 'windows')
- sources += 'backends/imgui_impl_win32.cpp'
-endif
-
-# frameworks
-allegro5_dep = dependency('allegro5', required: get_option('allegro5'))
-if allegro5_dep.found()
- sources += 'backends/imgui_impl_allegro5.cpp'
- dependencies += allegro5_dep
-endif
-marmalade_dep = cpp.find_library('marmalade', required: get_option('marmalade'))
-if marmalade_dep.found()
- sources += 'backends/imgui_impl_marmalade.cpp'
- dependencies += marmalade_dep
-endif
-
-imgui = library('imgui',
- sources,
- dependencies: dependencies,
- include_directories: include_dirs,
- version: meson.project_version(),
- install: true
-)
-
-pkg_mod = import('pkgconfig')
-pkg_mod.generate(imgui,
- description : 'Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies'
-)
-
-install_headers(
- 'imconfig.h',
- 'imgui.h',
- 'imgui_internal.h',
- 'imstb_rectpack.h',
- 'imstb_textedit.h',
- 'imstb_truetype.h',
- 'backends/imgui_impl_dx9.h',
- 'backends/imgui_impl_osx.h',
- 'backends/imgui_impl_sdl.h',
- 'backends/imgui_impl_dx10.h',
- 'backends/imgui_impl_dx11.h',
- 'backends/imgui_impl_dx12.h',
- 'backends/imgui_impl_glfw.h',
- 'backends/imgui_impl_glut.h',
- 'backends/imgui_impl_wgpu.h',
- 'backends/imgui_impl_metal.h',
- 'backends/imgui_impl_win32.h',
- 'backends/imgui_impl_vulkan.h',
- 'backends/imgui_impl_opengl2.h',
- 'backends/imgui_impl_opengl3.h',
- 'backends/imgui_impl_allegro5.h',
- 'backends/imgui_impl_marmalade.h',
- subdir: 'imgui')
-
-imgui_dep = declare_dependency(include_directories: include_dirs, link_with: imgui)
diff --git a/media-libs/imgui/files/imgui-1.81-meson_options.txt b/media-libs/imgui/files/imgui-1.81-meson_options.txt
deleted file mode 100644
index b61e45adc..000000000
--- a/media-libs/imgui/files/imgui-1.81-meson_options.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-# renderer backends
-option('dx9', type : 'feature', value : 'auto')
-option('dx10', type : 'feature', value : 'auto')
-option('dx11', type : 'feature', value : 'auto')
-option('dx12', type : 'feature', value : 'auto')
-option('metal', type : 'feature', value : 'auto')
-option('opengl', type : 'feature', value : 'auto')
-option('vulkan', type : 'feature', value : 'auto')
-
-# platform backends
-option('glfw', type : 'feature', value : 'auto')
-option('sdl2', type : 'feature', value : 'auto')
-option('osx', type : 'feature', value : 'auto')
-option('win', type : 'feature', value : 'auto')
-
-# frameworks (renderer + platform)
-option('marmalade', type : 'feature', value : 'auto')
-option('allegro5', type : 'feature', value : 'auto')
diff --git a/media-libs/imgui/imgui-1.81.ebuild b/media-libs/imgui/imgui-1.81.ebuild
index 939d77327..3ff8437c9 100644
--- a/media-libs/imgui/imgui-1.81.ebuild
+++ b/media-libs/imgui/imgui-1.81.ebuild
@@ -5,8 +5,7 @@ EAPI=8
inherit meson
-IMGUI_VER="1.81"
-IMGUI_MESON_WRAP_VER="1"
+MESON_WRAP_VER="1"
DESCRIPTION="Bloat-free graphical user interface library for C++"
HOMEPAGE="
@@ -14,13 +13,14 @@ HOMEPAGE="
"
SRC_URI="
- https://github.com/ocornut/imgui/archive/v${IMGUI_VER}.tar.gz -> imgui-${IMGUI_VER}.tar.gz
+ https://github.com/ocornut/imgui/archive/v${PV}.tar.gz -> imgui-${PV}.tar.gz
+ https://wrapdb.mesonbuild.com/v2/imgui_${PV}-${MESON_WRAP_VER}/get_patch -> imgui-${PV}-${MESON_WRAP_VER}-meson-wrap.zip
"
LICENSE="MIT"
SLOT="0/${PV}"
KEYWORDS="~amd64"
-IUSE="dx9 dx10 dx11 dx12 metal opengl vulkan glfw sdl2 osx win marmalade allegro5"
+IUSE="opengl vulkan glfw sdl2 marmalade allegro5"
RDEPEND="
dev-libs/stb:=
@@ -37,28 +37,28 @@ DEPEND="
"
BDEPEND="
virtual/pkgconfig
+ app-arch/unzip
"
src_unpack() {
default
- cp ${FILESDIR}/imgui-${IMGUI_VER}-meson.build ${S}/meson.build || die
- cp ${FILESDIR}/imgui-${IMGUI_VER}-meson_options.txt ${S}/meson_options.txt || die
+ unpack imgui-${PV}-${MESON_WRAP_VER}-meson-wrap.zip
}
src_configure() {
local emesonargs=(
- $(meson_feature dx9)
- $(meson_feature dx10)
- $(meson_feature dx11)
- $(meson_feature dx12)
- $(meson_feature metal)
+ -Ddx9=disabled
+ -Ddx10=disabled
+ -Ddx11=disabled
+ -Ddx12=disabled
+ -Dmetal=disabled
$(meson_feature opengl)
$(meson_feature vulkan)
$(meson_feature glfw)
$(meson_feature sdl2)
- $(meson_feature osx)
- $(meson_feature win)
+ -Dosx=disabled
+ -Dwin=disabled
$(meson_feature marmalade)
$(meson_feature allegro5)
)
diff --git a/media-libs/imgui/metadata.xml b/media-libs/imgui/metadata.xml
index 766c22dfc..b3ceef849 100644
--- a/media-libs/imgui/metadata.xml
+++ b/media-libs/imgui/metadata.xml
@@ -12,7 +12,7 @@
<remote-id type="github">cimgui/cimgui</remote-id>
</upstream>
<use>
- <flag name="allegro">Enable allegro backend and renderer</flag>
+ <flag name="allegro5">Enable allegro backend and renderer</flag>
<flag name="bindings">Build the cimgui C bindigs</flag>
<flag name="freetype">Use FreeType to build and rasterize the font atlas</flag>
<flag name="glfw">Enable glfw backend</flag>
@@ -20,5 +20,7 @@
<flag name="opengl">Enable opengl renderer</flag>
<flag name="sdl">Enable sdl backend</flag>
<flag name="vulkan">Enable vulkan renderer</flag>
+ <flag name="marmalade">Enable Marmalade backend</flag>
+ <flag name="sdl2">Enable SDL2 backend</flag>
</use>
</pkgmetadata>
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [gentoo-commits] repo/proj/guru:master commit in: media-libs/imgui/, media-libs/imgui/files/
@ 2023-09-21 10:09 David Roman
0 siblings, 0 replies; 6+ messages in thread
From: David Roman @ 2023-09-21 10:09 UTC (permalink / raw
To: gentoo-commits
commit: 3e12b65f0dc89e9f147f1055a0157c729ebf0fe8
Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Wed Sep 20 17:38:19 2023 +0000
Commit: David Roman <davidroman96 <AT> gmail <DOT> com>
CommitDate: Wed Sep 20 17:39:26 2023 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=3e12b65f
media-libs/imgui: install all the generated cimgui files
Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>
media-libs/imgui/files/cimgui-1.87-CMakeLists.txt | 26 +++--
media-libs/imgui/imgui-1.87-r7.ebuild | 113 ++++++++++++++++++++++
2 files changed, 133 insertions(+), 6 deletions(-)
diff --git a/media-libs/imgui/files/cimgui-1.87-CMakeLists.txt b/media-libs/imgui/files/cimgui-1.87-CMakeLists.txt
index 713125ec6b..a1c735bcab 100644
--- a/media-libs/imgui/files/cimgui-1.87-CMakeLists.txt
+++ b/media-libs/imgui/files/cimgui-1.87-CMakeLists.txt
@@ -43,13 +43,22 @@ if(IMGUI_VULKAN)
list(APPEND GENERATOR_ARGS vulkan)
endif()
list(APPEND GENERATOR_ARGS ${IMGUI_COMMON_FLAGS} ${CMAKE_CPP_FLAGS})
-file(GLOB GENERATOR_OUTPUT_FILES "${CMAKE_SOURCE_DIR}/generator/output/*")
-list(APPEND
- GENERATOR_OUTPUT_FILES
+set(CIMGUI_EXTRA_STUFF
+ ${CMAKE_SOURCE_DIR}/generator/output/definitions.json
+ ${CMAKE_SOURCE_DIR}/generator/output/definitions.lua
+ ${CMAKE_SOURCE_DIR}/generator/output/impl_definitions.json
+ ${CMAKE_SOURCE_DIR}/generator/output/impl_definitions.lua
+ ${CMAKE_SOURCE_DIR}/generator/output/overloads.txt
+ ${CMAKE_SOURCE_DIR}/generator/output/structs_and_enums.json
+ ${CMAKE_SOURCE_DIR}/generator/output/structs_and_enums.lua
+ ${CMAKE_SOURCE_DIR}/generator/output/typedefs_dict.json
+ ${CMAKE_SOURCE_DIR}/generator/output/typedefs_dict.lua
+)
+set(GENERATOR_OUTPUT_FILES
${CMAKE_SOURCE_DIR}/cimgui.cpp
${CMAKE_SOURCE_DIR}/cimgui.h
- ${CMAKE_SOURCE_DIR}/generator/output/cimgui_nopreprocess.cpp
- ${CMAKE_SOURCE_DIR}/generator/output/cimgui_nopreprocess.h
+ ${CMAKE_SOURCE_DIR}/generator/output/cimgui_impl.h
+ ${CIMGUI_EXTRA_STUFF}
)
ADD_CUSTOM_COMMAND(VERBATIM
OUTPUT ${GENERATOR_OUTPUT_FILES}
@@ -57,7 +66,10 @@ ADD_CUSTOM_COMMAND(VERBATIM
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/generator"
)
set(CIMGUI_SOURCES "${CMAKE_SOURCE_DIR}/cimgui.cpp")
-set(CIMGUI_INCLUDE_FILES "${CMAKE_SOURCE_DIR}/cimgui.h")
+set(CIMGUI_INCLUDE_FILES
+ "${CMAKE_SOURCE_DIR}/cimgui.h"
+ "${CMAKE_SOURCE_DIR}/generator/output/cimgui_impl.h"
+)
target_sources(cimgui
PUBLIC
@@ -70,6 +82,7 @@ include(GNUInstallDirs)
#install
install(TARGETS cimgui LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(FILES ${CIMGUI_INCLUDE_FILES} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/imgui")
+install(FILES ${CIMGUI_EXTRA_STUFF} DESTINATION "${CMAKE_INSTALL_DATADIR}/cimgui")
#test
set(CIMGUI_TEST "no" CACHE STRING "Enable compilation of a test unit based on imgui null")
@@ -78,3 +91,4 @@ if (CIMGUI_TEST)
add_subdirectory(test)
endif ()
endif()
+
diff --git a/media-libs/imgui/imgui-1.87-r7.ebuild b/media-libs/imgui/imgui-1.87-r7.ebuild
new file mode 100644
index 0000000000..49227f0f47
--- /dev/null
+++ b/media-libs/imgui/imgui-1.87-r7.ebuild
@@ -0,0 +1,113 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+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 )
+ freetype? ( media-libs/freetype )
+ glfw? ( media-libs/glfw:0 )
+ glut? ( media-libs/freeglut )
+ opengl? ( virtual/opengl )
+ sdl? ( media-libs/libsdl2 )
+ vulkan? ( media-libs/vulkan-loader )
+"
+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_prepare() {
+ pushd ../ || die
+ rm -rf "${S}/imgui" || die
+ mv "${P}" "${S}/imgui" || die
+ pushd "${S}/imgui" || die
+
+ # imgui
+ 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
+}
+
+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
+}
+
+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
+}
^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-09-21 10:09 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-08 1:46 [gentoo-commits] repo/proj/guru:master commit in: media-libs/imgui/, media-libs/imgui/files/ Ronny Gutbrod
-- strict thread matches above, loose matches on Subject: below --
2023-09-21 10:09 David Roman
2022-05-05 14:42 Haelwenn Monnier
2022-05-05 4:07 Haelwenn Monnier
2022-04-23 17:49 Haelwenn Monnier
2022-04-15 20:58 Haelwenn Monnier
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox