summaryrefslogtreecommitdiff
path: root/gnu/packages/patches/nextpnr-imgui.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/nextpnr-imgui.patch')
-rw-r--r--gnu/packages/patches/nextpnr-imgui.patch75
1 files changed, 75 insertions, 0 deletions
diff --git a/gnu/packages/patches/nextpnr-imgui.patch b/gnu/packages/patches/nextpnr-imgui.patch
new file mode 100644
index 0000000000..0d9d316d15
--- /dev/null
+++ b/gnu/packages/patches/nextpnr-imgui.patch
@@ -0,0 +1,75 @@
+Uptream-status: https://github.com/YosysHQ/nextpnr/pull/1480
+
+diff --git a/gui/CMakeLists.txt b/gui/CMakeLists.txt
+index ff5d9208..c554cc96 100644
+--- a/gui/CMakeLists.txt
++++ b/gui/CMakeLists.txt
+@@ -46,12 +46,42 @@ target_include_directories(nextpnr-${target}-gui PUBLIC
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ )
+
++# Detect whether imgui/qtimgui packages are available from the system.
++find_path(IMGUI_INCLUDE_DIR NAMES imgui.h PATH_SUFFIXES imgui)
++find_path(QTIMGUI_INCLUDE_DIR NAMES QtImGui.h PATH_SUFFIXES qtimgui)
++find_library(IMGUI_LIB NAMES imgui)
++find_library(QTIMGUI_LIB NAMES qt_imgui_widgets)
++if (IMGUI_INCLUDE_DIR AND IMGUI_LIB)
++ message("Using system imgui library:
++ IMGUI_INCLUDE_DIR=${IMGUI_INCLUDE_DIR}
++ IMGUI_LIB=${IMGUI_LIB}")
++else()
++ message("Using bundled imgui library")
++ set(IMGUI_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/3rdparty/imgui)
++ set(IMGUI_SOURCES
++ ../3rdparty/imgui/imgui_widgets.cpp
++ ../3rdparty/imgui/imgui_draw.cpp
++ ../3rdparty/imgui/imgui.cpp
++ ../3rdparty/imgui/imgui_demo.cpp)
++endif()
++if (QTIMGUI_INCLUDE_DIR AND QTIMGUI_LIB)
++ message("Using system qtimgui library:
++ QTIMGUI_INCLUDE_DIR=${QTIMGUI_INCLUDE_DIR}
++ QTIMGUI_LIB=${QTIMGUI_LIB}")
++else()
++ message("Using bundled qtimgui library")
++ set(QTIMGUI_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/3rdparty/qtimgui)
++ set(QTIMGUI_SOURCES
++ ../3rdparty/qtimgui/ImGuiRenderer.cpp
++ ../3rdparty/qtimgui/QtImGui.cpp)
++endif()
++
+ target_include_directories(nextpnr-${target}-gui PRIVATE
+ ${CMAKE_SOURCE_DIR}/frontend
+ ${CMAKE_SOURCE_DIR}/json
+ ${CMAKE_SOURCE_DIR}/3rdparty/QtPropertyBrowser/src
+- ${CMAKE_SOURCE_DIR}/3rdparty/imgui
+- ${CMAKE_SOURCE_DIR}/3rdparty/qtimgui
++ ${IMGUI_INCLUDE_DIR}
++ ${QTIMGUI_INCLUDE_DIR}
+ )
+
+ target_link_libraries(nextpnr-${target}-gui PUBLIC
+@@ -77,14 +107,17 @@ if (BUILD_PYTHON)
+ ../3rdparty/python-console/ParseMessage.cpp
+ ../3rdparty/python-console/modified/pyredirector.cc
+ ../3rdparty/python-console/modified/pyinterpreter.cc
+- ../3rdparty/imgui/imgui_widgets.cpp
+- ../3rdparty/imgui/imgui_draw.cpp
+- ../3rdparty/imgui/imgui.cpp
+- ../3rdparty/imgui/imgui_demo.cpp
+- ../3rdparty/qtimgui/ImGuiRenderer.cpp
+- ../3rdparty/qtimgui/QtImGui.cpp
++ ${IMGUI_SOURCES}
++ ${QTIMGUI_SOURCES}
+ )
+
++ if (IMGUI_LIB)
++ target_link_libraries(nextpnr-${target}-gui PRIVATE ${IMGUI_LIB})
++ endif()
++ if (QTIMGUI_LIB)
++ target_link_libraries(nextpnr-${target}-gui PRIVATE ${QTIMGUI_LIB})
++ endif()
++
+ target_include_directories(nextpnr-${target}-gui PRIVATE
+ ../3rdparty/python-console
+ ../3rdparty/python-console/modified