Back to Plotjuggler

Qwt — external dependency (not vendored)

3rdparty/qwt/README.PJ4.md

3.999.31.9 KB
Original Source

Qwt — external dependency (not vendored)

No Qwt sources live in this repo. The plotjuggler_qwt target in CMakeLists.txt provides them one of two ways:

  • Default (Conan / ./build.sh path): CMake FetchContent downloads the official Qwt 6.3.0 release, unmodified, at configure time and compiles the plot-widget subset as a static library.
  • -DPJ_SYSTEM_QWT=ON (pixi / conda path, Linux only): links the environment's prebuilt shared qwt package (conda-forge, built against the same qt6-main the env provides). The pixi configure task sets this on linux-64. On Windows the option is a hard error: conda-forge's qwt is a DLL, and MSVC duplicates the QwtSeriesData<QPointF> template members between qwt.dll and our own subclasses (LNK2005), so win-64 always uses the FetchContent static build.

Qwt is licensed under the Qwt License 1.0 (LGPL-derived); the license text ships inside the release tarball (COPYING) and the conda package.

Policy: never patch Qwt sources. PlotJuggler-specific behavior that older PJ trees carried as in-tree Qwt patches lives in the application:

  • Axis tick-label formatting (QwtAbstractScaleDraw::label override): pj_plotting/widget/.../PlotScaleDraw.{h,cpp} (and a local twin in pj_dialog_host/src/chart_preview_widget.cpp).
  • The "Lines and Dots" curve style: plain QwtPlotCurve::Lines plus an explicit QwtSymbol, mapped in PlotWidgetBase.

To upgrade Qwt: bump the URL + SHA-256 in CMakeLists.txt, re-check the source list against upstream's src/src.pri, and align the conda-forge version pin in pixi.toml.