Lgi

About

LGI is an open source GUI framework (on Phabricator) for abstracting out all the operating system dependencies that you can produce portable code. It handles all the graphical interface functions, threading and semaphores, network connectivity and lots of other bits and peices to help build small, fast and reliable applications.

The strengths of LGI is that it's a small enough library that one person can understand it all. Also it's not too much of a burden on an application, both in increased download time and memory footprint. Ultimately however size is a secondary consideration to the core feature of LGI and that is portability. Currently 3 serious ports exist: Windows, Mac and Linux. There is also Haiku/BeOS and SDL ports which are partially implemented.

You can build some basic documentation using doxygen and there is some scripting language docs. Mostly though a good place to start is looking at the apps with source code:

Downloads

Latest Trunk Code:

hg clone https://phab.mallen.id.au/source/lgi/ lgi/trunk

IDE:

Developer environement GUI:
Windows
Win10+
v1.0
Stable
Zip
2.7 MiB, 12/11/2018

Resource Editor:

Graphical editor / translation for resource files:
Windows
Win10+
v4.1
Stable
Installer
0.9 MiB, 12/11/2018

Lvc:

Cross platform and version control user interface (Git/Hg/Svn/Cvs):
Windows
Win10+
OSX x32
10.10+
Linux
glibc 2.27
v0.4
Alpha
Zip
2.4 MiB, 23/11/2018
Zip
1.3 MiB, 23/11/2018
v0.1
Alpha
Zip
5.1 MiB, 20/5/2018

Ports Status

Ordered by maturity:

Config File

There is some documentation for configuring Lgi at runtime via the lgi.json file.

Features

Building LGI

First check out the source:
hg clone https://phab.mallen.id.au/source/lgi/ lgi/trunk

Windows

Support Libraries

For full graphics and charset support download (or check you already have) iconv, libpng and zlib, libjpeg; then add their include paths to your compilers include paths. Or find the defines in Lgi.h for the various libraries and set them to 0.

Visual Studio

Install a supported version of Visual Studio: 2019 or 2022.

Adding build folders to the shared library path:

Add this to your path:
  • ./lgi/trunk/lib

Mac

Install XCode

Go to the Apple Developer site and grab XCode

Build

Open Lgi.xcodeproj in XCode and run the build command.

Linux

Building on Ubuntu:
sudo apt-get install mercurial libmagic-dev libgtk3.0-dev \
    libgstreamer1.0-dev libappindicator3-dev libssh-dev
hg clone https://phab.mallen.id.au/source/lgi/ lgi/trunk
cd lgi/trunk
ln -s Makefile.linux makefile
make -j 4
If apt can't find the gtk 3 dev libraries, on some systems it's called 'libgtk-3-dev' just to be different I guess.

If the makefile doesn't work on your system:
  • Download a binary of LgiIde
  • Project->Open and select lgi/trunk/Ide/LgiIde.xml
  • Project->Create Makefile->Linux
  • Project->Build