On Windows (where we use a static Qt) we need to include plugins
(in this case "qsvg" a.k.a. libqsvg.a from plugins/imageformats/),
otherwise SVGs (such as various icons in PulseView) cannot be displayed.
For this we need to use Q_IMPORT_PLUGIN(qsvg) in the code, pass the
QT_STATICPLUGIN flag to the compiler, and link against "-lqsvg".
This, in turn, requires that we also link against the similarly named QtSvg
component/lib (${QT_QTSVG_LIBRARY} a.k.a libQtSvg.a).
See also: https://qt-project.org/doc/qt-4.8/plugins-howto.html#static-plugins
This fixes bug #239.
list(APPEND PULSEVIEW_LINK_LIBS ${PKGDEPS_LIBRARIES})
endif()
+if(WIN32)
+ # On Windows we need to statically link the libqsvg imageformat
+ # plugin (and the QtSvg component) for SVG graphics/icons to work.
+ add_definitions(-DQT_STATICPLUGIN)
+ link_directories("${QT_PLUGINS_DIR}/imageformats")
+ list(APPEND PULSEVIEW_LINK_LIBS ${QT_QTSVG_LIBRARY})
+ list(APPEND PULSEVIEW_LINK_LIBS "-lqsvg")
+endif()
+
add_executable(${PROJECT_NAME}
${pulseview_SOURCES}
${pulseview_HEADERS_MOC}
#include "config.h"
+#ifdef _WIN32
+// The static qsvg lib is required for SVG graphics/icons (on Windows).
+#include <QtPlugin>
+Q_IMPORT_PLUGIN(qsvg)
+#endif
+
void usage()
{
fprintf(stdout,