Files
2026-10-04 04:07:15 +00:00

120 lines
3.6 KiB
Makefile

PORTNAME= imgui
DISTVERSIONPREFIX= v
DISTVERSION= 1.92.9b
DISTVERSIONSUFFIX= -docking
CATEGORIES= x11-toolkits
MAINTAINER= yuri@FreeBSD.org
COMMENT= Bloat-free Graphical User interface for C++ with minimal dependencies
WWW= https://github.com/ocornut/imgui
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
USES= cmake gl
USE_GITHUB= yes
GH_ACCOUNT= ocornut
USE_GL= gl
USE_LDCONFIG= yes
CMAKE_ON= BUILD_SHARED_LIBS
CMAKE_OFF= EMSCRIPTEN IMGUI_TEST_ENGINE
LDFLAGS+= -lGL -L${LOCALBASE}/lib
OPTIONS_DEFINE= FREETYPE FREETYPE_SVG WCHAR32
OPTIONS_DEFAULT= FREETYPE GLFW GLUT OPENGL2 OPENGL3 SDL3 SDL3_RENDERER \
SDLGPU3 VULKAN
OPTIONS_MULTI= BACKENDS
OPTIONS_MULTI_BACKENDS= ALLEGRO5 GLFW GLUT OPENGL2 OPENGL3 SDL2 \
SDL2_RENDERER SDL3 SDL3_RENDERER \
SDLGPU3 VULKAN
OPTIONS_SUB= yes
## general options
FREETYPE_LIB_DEPENDS= libfreetype.so:print/freetype2
FREETYPE_CMAKE_BOOL= IMGUI_FREETYPE
FREETYPE_SVG_DESC= Support SVG fonts via plutosvg
FREETYPE_SVG_LIB_DEPENDS= libplutosvg.so:graphics/plutosvg
FREETYPE_SVG_CMAKE_BOOL= IMGUI_FREETYPE_SVG
WCHAR32_DESC= Use wchar32
WCHAR32_CMAKE_BOOL= IMGUI_USE_WCHAR32
## backend options
ALLEGRO5_DESC= Install Allegro5 backend
ALLEGRO5_LIB_DEPENDS= liballegro.so:devel/allegro5 # even though binary doesn't link to liballegro.so for some reason
ALLEGRO5_CMAKE_BOOL= IMGUI_BUILD_ALLEGRO5_BINDING
GLFW_DESC= Install GLFW backend
GLFW_LIB_DEPENDS= libglfw.so:graphics/glfw
GLFW_CMAKE_BOOL= IMGUI_BUILD_GLFW_BINDING
GLUT_DESC= Install GLUT backend
GLUT_USES= xorg
GLUT_USE= GL=glut XORG=xi,xmu
GLUT_CMAKE_BOOL= IMGUI_BUILD_GLUT_BINDING
OPENGL2_DESC= Install OPENGL2 backend
OPENGL2_CMAKE_BOOL= IMGUI_BUILD_OPENGL2_BINDING
OPENGL3_DESC= Install OPENGL3 backend
OPENGL3_CMAKE_BOOL= IMGUI_BUILD_OPENGL3_BINDING
SDL2_DESC= Install SDL2 backend
SDL2_PREVENTS= SDL3 SDL3_RENDERER
SDL2_PREVENTS_MSG= INTERFACE_SDL_VERSION conflict
SDL2_USES= sdl
SDL2_USE= SDL=sdl2
SDL2_CMAKE_BOOL= IMGUI_BUILD_SDL2_BINDING
SDL2_RENDERER_DESC= Install SDL2 renderer backend
SDL2_RENDERER_PREVENTS= SDL3 SDL3_RENDERER SDLGPU3
SDL2_RENDERER_PREVENTS_MSG= INTERFACE_SDL_VERSION conflict
SDL2_RENDERER_USES= sdl
SDL2_RENDERER_USE= SDL=sdl2
SDL2_RENDERER_CMAKE_BOOL= IMGUI_BUILD_SDL2_RENDERER_BINDING
SDL3_DESC= Install SDL3 backend
SDL3_PREVENTS= SDL2 SDL2_RENDERER
SDL3_PREVENTS_MSG= INTERFACE_SDL_VERSION conflict
SDL3_USES= sdl
SDL3_USE= SDL=sdl3
SDL3_CMAKE_BOOL= IMGUI_BUILD_SDL3_BINDING
SDL3_RENDERER_DESC= Install SDL3 renderer backend
SDL3_RENDERER_PREVENTS= SDL2 SDL2_RENDERER
SDL3_RENDERER_PREVENTS_MSG= INTERFACE_SDL_VERSION conflict
SDL3_RENDERER_USES= sdl
SDL3_RENDERER_USE= SDL=sdl3
SDL3_RENDERER_CMAKE_BOOL= IMGUI_BUILD_SDL3_RENDERER_BINDING
SDLGPU3_DESC= Install SDL3 GPU backend
SDLGPU3_PREVENTS= SDL2 SDL2_RENDERER
SDLGPU3_PREVENTS_MSG= INTERFACE_SDL_VERSION conflict
SDLGPU3_USES= sdl
SDLGPU3_USE= SDL=sdl3
SDLGPU3_CMAKE_BOOL= IMGUI_BUILD_SDLGPU3_BINDING
VULKAN_DESC= Install Vulkan renderer backend
VULKAN_BUILD_DEPENDS= glslangValidator:graphics/glslang \
glslc:graphics/shaderc \
${LOCALBASE}/include/vulkan/vulkan.h:graphics/vulkan-headers
VULKAN_LIB_DEPENDS= libvulkan.so:graphics/vulkan-loader
VULKAN_CMAKE_BOOL= IMGUI_BUILD_VULKAN_BINDING
post-patch:
@${CP} ${FILESDIR}/CMakeLists.txt ${FILESDIR}/imgui-config.cmake.in ${WRKSRC}
do-test:
@cd ${WRKSRC}/examples/example_sdl3_sdlrenderer3 && \
${GMAKE} \
CXXFLAGS="${CXXFLAGS} `pkg-config --cflags sdl3` -I${STAGEDIR}${PREFIX}/include -I${WRKSRC}/backends" \
LIBS="`pkg-config --libs sdl3` -lGL" && \
./example_sdl3_sdlrenderer3
.include <bsd.port.mk>