Skip to content

Install and build QtEDM ​

Prerequisites ​

  • Build tools: GNU Make-compatible build environment, pkg-config, and a platform C/C++ compiler. On Linux this is typically gcc and g++.

  • EPICS Base (required): place an epics-base checkout at the same directory level as this repository (for example, ../epics-base when you are in medm/).

    Note: the build system also checks ../../epics-base from subdirectories such as qtedm/ and medm/; this is an internal relative path and can look confusing in error messages.

  • Qt development packages (required):

    • Qt6 preferred (Qt6Core, Qt6Widgets, Qt6PrintSupport, Qt6Svg)
    • Qt5 fallback (Qt5Core, Qt5Widgets, Qt5PrintSupport, Qt5Svg)
    • moc and rcc must be available
  • SDDS source tree (required for building shared support libraries used by QtEDM)

Typical Debian/Ubuntu packages for a Linux build:

bash
sudo apt-get install build-essential pkg-config qt6-base-dev qt6-svg-dev

Optional for legacy MEDM build as well:

bash
sudo apt-get install libmotif-dev libxmu-dev

Build QtEDM ​

  1. Clone dependencies next to this repository:
bash
git clone --recursive -b 7.0 https://github.com/epics-base/epics-base.git
git clone https://github.com/rtsoliday/SDDS.git
  1. Build EPICS Base (see EPICS Base docs for full options):
bash
cd ../epics-base
make -j4
  1. Build SDDS:
bash
cd ../SDDS
make -j4

If your SDDS checkout does not build out of the box on your platform, follow the SDDS README/build notes and then rerun make.

  1. From this repository root, build:
bash
make -j4

Notes:

  • qtedm can be built without Motif. Full top-level builds and support libraries may still require SDDS and/or prebuilt local libs. Building the legacy medm executable requires Motif/X11 where available.
  • If Qt is missing, the top-level build exits with an error after dependency checks.
  • On macOS and Windows, use the equivalent native compiler, Qt development tools, EPICS Base, and SDDS setup for that platform. The repository uses the same .adl display files across platforms.

The resulting programs are copied to bin/<OS>-<architecture>/. For example, a typical 64-bit Linux build produces:

text
bin/Linux-x86_64/qtedm
bin/Linux-x86_64/qtedm-convert