GLE
GLE - Graphics Layout Engine
Install / Use
/learn @vlabella/GLEREADME
GLE - Graphics Layout Engine
GLE (Graphics Layout Engine) is a graphics scripting language designed for creating publication quality graphs, plots, diagrams, figures and slides. GLE supports various graph types (function plots, histograms, bar graphs, scatter plots, contour lines, color maps, surface plots, ...) through a simple but flexible set of graphing commands. More complex output can be created by relying on GLE's scripting language, which is full featured with subroutines, variables, and logic control. GLE relies on LaTeX for text output and supports mathematical formulae in graphs and figures. GLE's output formats include EPS, PS, PDF, JPEG, and PNG.
This repo contains the source code to build the executable for GLE. The manual and library of GLE routines and sample code that are distributed with the binary packages are contained in separate repositories here: gle-manual and gle-library.
More information and the binary distributions can be found on the GLE website here http://glx.sourceforge.io or using the link below.
Building GLE
GLE can be built on Windows, macOS, and Linux using cmake and system specific compilers: Visual Studio, Xcode, and gcc.
Get the GLE source code
Clone the GLE repository or download and unpack the source code.
Acquire gle-library and gle-manual
For a complete installation with documentation, examples, and include files download (or clone) the gle-library and latest gle-manual.pdf. Place them in separate locations and pass the GLE_EXAMPLES_LIBRARY_PATH and GLE_USER_MANUAL_PATH options in the initial call to cmake. For example -DGLE_EXAMPLES_LIBRARY_PATH=/path/to/gle-library -DGLE_USER_MANUAL_PATH=/path/to/gle-manual.
Building on Linux
Building on linux requires the gcc compiler and the standard C/C++ libraries.
-
Install the needed packages
Debian & Linux Mint Debian Edition
Depending on the Debian release, either
libjpeg-turbo8-devorlibjpeg62-turbo-devmaybe available. Linux Mint only provides libjpeg62-turbo-dev.sudo apt install cmake freeglut3-dev libboost-dev libcairo2-dev libdeflate-dev libgs-dev libjpeg62-turbo-dev liblzma-dev libpixman-1-dev libpng-dev libtiff-dev zlib1g-dev qt6-base-dev libpoppler-dev libpoppler-cpp-dev libpoppler-glib-dev libpoppler-qt6-dev libglib2.0-dev extra-cmake-modulesUbuntu (22.04 / 24.04)
sudo apt-get install cmake freeglut3-dev libboost-dev libcairo-dev libdeflate-dev libgs-dev libjpeg-turbo8-dev liblzma-dev libpixman-1-dev libpng-dev libtiff-dev libz-dev qt6-base-dev libpoppler-dev libpoppler-cpp-dev libpoppler-glib-dev libpoppler-qt6-dev libglib2.0-dev extra-cmake-modulesFedora / RHEL / Rocky / Alma Linux
sudo dnf install cmake freeglut-devel boost-devel cairo-devel libdeflate-devel ghostscript-devel libjpeg-turbo-devel xz-devel pixman-devel libpng-devel libtiff-devel zlib-devel qt6-qtbase-devel poppler-devel poppler-cpp-devel poppler-glib-devel glib2-devel mesa-libGL-devel extra-cmake-modulesArch Linux / Manjaro
sudo pacman -S cmake freeglut boost cairo libdeflate ghostscript libjpeg-turbo xz pixman libpng libtiff zlib qt6-base poppler glib2 extra-cmake-modulesopenSUSE (Leap / Tumbleweed)
sudo zypper install cmake freeglut-devel boost-devel cairo-devel libdeflate-devel ghostscript-devel libjpeg8-devel xz-devel pixman-devel libpng-devel libtiff-devel zlib-devel qt6-base-devel poppler-devel poppler-cpp-devel poppler-glib-devel glib2-devel extra-cmake-modulesGentoo
sudo emerge dev-util/cmake media-libs/freeglut dev-libs/boost x11-libs/cairo app-text/ghostscript-gpl media-libs/libjpeg-turbo sys-libs/zlib media-libs/libpng media-libs/tiff dev-qt/qtbase app-text/poppler dev-libs/glib -
Run cmake in the gle directory
cmake -S src -B build -DCMAKE_BUILD_TYPE=Release -DGLE_EXAMPLES_LIBRARY_PATH=/path/to/gle-library -DGLE_USER_MANUAL_PATH=/path/to/gle-manual -
Build
cmake --build build -
Install gle in
usr/local/binsudo cmake --install build
Installation destinations are FHS compliant starting with version 4.3.9. Binaries will be placed in /usr/local/bin. Font, config files, and includes will be in /usr/local/share/gle-graphics and documentation in /usr/local/share/doc/gle-graphics. This can be altered with CMAKE_INSTALL_PREFIX and DEVELOPER_INSTALLATION options (see below). For example, to install in /usr instead of /usr/local pass -DMAKE_INSTAL_PREFIX=/usr to the initial cmake call.
Building on Windows
Building on windows requires Visual Studio, cmake, and vcpkg to be installed.
-
Install the ECM package
vcpkg install ecm -
Install ghostpdl library
Visit ghostpdl GitHub page and clone the repo or download and unpack the source code. Only the ghostpdl headers are needed to build GLE. Building ghostpdl is not required.
-
Run cmake in the gle directory
cmake -B build -S src -DCMAKE_TOOLCHAIN_FILE=<VCPKGROOT>/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-release -DGHOSTPDL_ROOT=/path/to/ghostpdl -DGLE_EXAMPLES_LIBRARY_PATH="/path/to/gle-library" -DGLE_USER_MANUAL_PATH="/path/to/gle-manual" -DECM_DIR="<VCPKGROOT>/installed/x64-windows/share/ECM"Replace
<VCPKGROOT>with the location of vcpkg. This will run vcpkg and download and build the needed libraries. Be patient it will take some time. -
Build
cmake --build build --config Release -
Install gle in
C:\Program Files\gle-graphicscmake --install build --config Release
All gle files will be installed to C:\Program Files\gle-graphics by default. Add C:\Program Files\gle-graphics\bin to your PATH environment variable. The installation location can be changed by setting CMAKE_INSTALL_PREFEX on the initial cmake call. Filetype associations (.gle to qgle) will be created if INSTALL_CREATE_FILETYPE_ASSOCIATION is set ON in initial cmake call.
Building on macOS
Building on macOS requires XCode, cmake, and Homebrew to be installed.
-
Install the needed packages
brew install --quiet boost cairo ghostscript jpeg-turbo libdeflate libpng libtiff pixman qt zstd poppler glib extra-cmake-modules -
Run cmake in the gle directory
cmake -S src -B build -DGLE_EXAMPLES_LIBRARY_PATH="/path/to/gle-library" -DGLE_USER_MANUAL_PATH="path/to/gle-manual" -
Build
cmake --build build --config Release -
Install gle in
/usr/local/bincmake --install build --config Release
All gle files will be installed similar to Linux. The installation location can be changed by setting CMAKE_INSTALL_PREFEX on the initial cmake call. For example, to install in /usr instead of /usr/local pass -DMAKE_INSTAL_PREFIX=/usr to the initial cmake call. Filetype associations (.gle to qgle) will be created if INSTALL_CREATE_FILETYPE_ASSOCIATION is set ON in initial cmake call.
Post Installation Configuration and Testing
Install Needed Software
To run GLE these software packages required:
-
LaTeX - A powerful document preparation system widely used for technical and scientific writing.
- Windows: visit MikTeX. Download and install the latest version.
- Linux:
sudo apt install texlive texlive-latex-extra texlive-science dvipng latexmk. - macOS:
brew install texlive
-
GhostScript - PS/PDF interpreter.
- Windows: Visit Ghostscript. Download and install the latest version.
- Linux:
sudo apt install ghostscript. - macOS:
brew install ghostscript
Finding Dependencies
After installation run:
gle -finddeps
to have GLE search for it dependency files such as GhostScript and LaTeX.
To test the installation run:
gle -info
the output should look something like this on Windows:
GLE version: 4.3.9
Build date: Nov 5 2025 14:44:22
GLE_TOP: C:\Program Files\gle-graphics
GLE_BIN_DIR: C:\Program Files\gle-graphics\bin
GLE_USRLIB:
GLERC (global): C:\Program Files\gle-graphics\glerc
GLERC (user): C:\Users\<username>\AppData\Roaming\gle-graphics\.glerc
inittex.ini: C:\Program Files\gle-graphics\inittex.ini
GhostScript: C:\Program Files\gs\gs10.06.0\bin\gswin64c.exe
GS library: C:\Program Files\gs\gs10.06.0\bin\gsdll64.dll
Bitmap import: JPEG, PNG, TIFF, GIF
Cairo rendering support: Yes
Poppler PDF support: Yes
and this on Linux/macOS:
GLE version: 4.3.9
Build date: Nov 5 2025 19:28:28
GLE_TOP: /usr/local/share/gle-graphics
GLE_BIN_DIR: /usr/local/bin
GLE_USRLIB:
GLERC (global): /usr/local/share/gle-graphics/glerc
GLERC (user): /home/<username>/.glerc
inittex.ini: /usr/local/share/gle-graphics/inittex.ini
GhostScript: /usr/bin/gs
GS library: /lib/x86_64-linux-gnu/libgs.so
Bitmap import: JPEG, PNG, TIFF, GIF
Cairo
