- 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
--novaladoc
to./waf configure
to disable Valadoc).The best version is 0.44.x. If you need to use 0.42.x, pass
--no-strict
to./waf configure
, copygio-2.0.vapi
from your Vala distribution into thevapi
subdirectory 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.pc
anddioritegtk4.pc
- header files:
diorite-1.0/dioriteglib4.h
anddiorite-1.0/dioritegtk4.h
- VAPI files:
dioriteglib4.{deps,vapi}
anddioritegtk4.{deps,vapi}
- shared libraries:
libdioriteglib4.so
andlibdioritegtk4.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
- iftrue
ApplicationWindow 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
,xfce
ordefault
to simulate look of a application window (menu bar, header bar, app menu, etc.) in different environment. -
DIORITE_LOG_MESSAGE_CHANNEL
- ifyes
MessageChannel communication will be logged -
DIORITE_LOG_DUPLEX_CHANNEL
- ifyes
DuplexChannel communication will be logged -
DIORITE_LOG_API_ROUTER
- ifyes
ApiRouter 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.