Building on Linux

Note

Version 2.5 and earlier are built using make, see the documentation for that version instead.

Building horizon on Linux is as simple as running meson after you’ve cloned the repo.

Install dependencies

Make sure you got these dependencies installed:

  • Gtkmm3 ≥ 3.20

  • librsvg

  • util-linux

  • sqlite

  • zeromq

  • glm

  • libgit2

  • curl

  • opencascade / opencascade community edition

  • zeromq with C++ bindings: https://github.com/zeromq/cppzmq

  • podofo <0.10

  • libarchive

  • libspnav

On Ubuntu ≥20.04 run:

sudo apt install libsqlite3-dev util-linux librsvg2-dev \
    libcairomm-1.0-dev libepoxy-dev libgtkmm-3.0-dev uuid-dev libboost-dev \
    libzmq5 libzmq3-dev libglm-dev libgit2-dev libcurl4-gnutls-dev liboce-ocaf-dev \
    libpodofo-dev libarchive-dev libspnav-dev meson cmake

On Arch Linux:

sudo pacman -S zeromq cppzmq gtkmm3 cairomm librsvg sqlite3 libgit2 curl \
     opencascade boost glm podofo-0.9 libarchive libspnav meson cmake

On Fedora:

sudo dnf install git make gcc gcc-c++ pkg-config cppzmq-devel opencascade-devel\
   gtkmm30-devel libgit2-devel libuuid-devel sqlite-devel librsvg2-devel\
   cairomm-devel glm-devel boost-devel libcurl-devel podofo-devel libarchive-devel\
   libspnav-devel meson cmake

On openSUSE Tumbleweed:

sudo zypper in git make gcc gcc-c++ pkg-config cppzmq-devel oce-devel\
   gtkmm3-devel libgit2-devel libuuid-devel sqlite3-devel librsvg-devel\
   cairomm-devel glm-devel boost-devel libcurl-devel libpodofo-devel binutils-gold libarchive-devel\
   libspnav-devel meson cmake

On Solus:

sudo eopkg it -c system.devel
sudo eopkg it binutils-gold git glibc curl-devel libgtkmm-3-devel librsvg-devel \
   util-linux-devel sqlite3-devel libboost-devel zeromq-devel glm libgit2-devel \
   opencascade-ce-devel podofo-devel libarchive-devel cppzmq-devel meson cmake

Build it

meson setup build
meson compile -C build

If meson compile isn’t available yet, invoke ninja directly:

ninja -C build

Running

The resulting binaries are self-contained and don’t require any external data files like icons or so. horizon-eda is the main program executable. Run it from the build directory:

build/horizon-eda