- Diorite is a a grey to dark-grey intermediate intrusive igneous rock.
- Diorite library is a private utility and widget library for Nuvola Apps project based on GLib, GIO and GTK.
- Diorite code is rolling as stones from a hill. There are no stable releases since 0.3.0 but only blessed snapshots because users expect that version numbers increase from time to time.
- The only upstream supported version is the latest git master commit, anything older is for archaeologists.
Photo by Michael C. Rygel via Wikimedia Commons, CC BY-SA 3.0
-
Python 3 and the pyparsing module
-
Vala compiler (built with valadoc or pass
--novaladocto./waf configureto disable Valadoc).The best version is 0.44.x. If you need to use 0.42.x, pass
--no-strictto./waf configure, copygio-2.0.vapifrom your Vala distribution into thevapisubdirectory and apply this bug fix.N. B. Memory check with Valgrind discovered a few memory leaks with Vala 0.42.x. You can build a proper version of Valac just before building Diorite and then not to install it. There is no runtime dependency on Valac after Diorite is built.
-
glib-2.0 >= 2.56.1
-
gio-2.0 >= 2.56.1
-
gtk+-3.0 >= 3.22.30
-
gee-0.8 >= 0.20.1
-
sqlite >= 3.7
-
x11
-
g-ir-compiler
Diorite uses waf build system. You are supposed to use the waf binary bundled with
Diorite's source code. The build script wscript may not be compatible with other versions. If you manage
to port wscript to a newer stable waf release, you may provide us with patches to be merged once we decide
to update our waf binary. Meantime, you can carry them downstream.
To find out what build parameters can be set run ./waf --help
$ ./waf configure [--prefix=...] [--libdir=...] [--nodebug] [--novaladoc] [--no-strict]
$ ./waf build
LD_LIBRARY_PATH=./build ./build/run-dioritetests
# ./waf install [--destdir=...]
# ./waf uninstall
Because Diorite Library doesn't have any API nor ABI stability guarantee, it uses version suffix in library name to make multiple versions co-installable:
- pkg-config files:
dioriteglib4.pcanddioritegtk4.pc - header files:
diorite-1.0/dioriteglib4.handdiorite-1.0/dioritegtk4.h - VAPI files:
dioriteglib4.{deps,vapi}anddioritegtk4.{deps,vapi} - shared libraries:
libdioriteglib4.soandlibdioritegtk4.so
You probably want to use pkg-config:
$ pkg-config --libs --cflags dioriteglib4
-I/usr/local/include/diorite-1.0 -I/usr/include/glib-2.0 \
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include \
-L/usr/local/lib -ldioriteglib4
$ pkg-config --libs --cflags dioritegtk4
-I/usr/local/include/diorite-1.0 -I/usr/include/glib-2.0 \
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include \
-L/usr/local/lib -ldioritegtk4
Diorite recognizes several environment variables for debugging:
-
DIORITE_SHOW_MENUBAR- iftrueApplicationWindow shows menubar. This is useful if you test menubar in other environments than Unity, because the menubar is not show by default. -
DIORITE_GUI_MODE- set tounity,gnome,xfceordefaultto simulate look of a application window (menu bar, header bar, app menu, etc.) in different environment. -
DIORITE_LOG_MESSAGE_CHANNEL- ifyesMessageChannel communication will be logged -
DIORITE_LOG_DUPLEX_CHANNEL- ifyesDuplexChannel communication will be logged -
DIORITE_LOG_API_ROUTER- ifyesApiRouter communication will be logged -
DIORITE_DUPLEX_CHANNEL_FATAL_TIMEOUT- ifyes, DuplexChannel timeout will abort -
DIORITE_LOGGER_FATAL_STRING- abort program when message matching the fatal string pattern is logged.
See CHANGELOG.md.
