Le projet DaisyDuck se présente en deux projets distincts. L'interface graphique (DaisyDuck) est séparée de l'analyseur des fichiers Daisy (libduck). DaisyDuck est écrit en C++ tandis que libduck est écrit en C.
DaisyDuck est basé sur les bibliothèques Qt. A l'exception de la lecture audio qui est assurée par libVLC, et la gestion des fichiers Daisy 2.02, qui est réalisée par libduck. Ce logiciel est sous licence GPL3+.
L'analyse des fichiers Daisy 2.02, NCC et SMIL est réalisée
entièrement par libduck. Cette bibliothèque est sous licence LGPL2.1+.
Bien que tous les fichiers Daisy 2.02 devraient être lisibles, tous
les aspects des spécifications ne sont pas supportés. Cette
bibliothèque a été écrite principalement pour l'application graphique
DaisyDuck. Ainsi les particularités comme le support des fichiers
XHTML (balise <text> dans les fichiers SMIL) sont tout
simplement ignorées.
Il est de même pour une partie des méta-données misent à dispositions
par les différents fichiers Daisy 2.02. Seuls les champs utilisés par
DaisyDuck (en principe) sont accessibles via l'API publique de la
bibliothèque. Notez bien qu'il est aisé d'en rajouter, si nécessaire.
L'analyse syntaxique est réalisée à l'aide de libxml2.
Le travail sur libduck est inspiré de la bibliothèque libdaisy du projet "The DaisyPlayer Project".
Les sources sont disponibles en ligne à l'aide de Git, un système de gestion de versions décentralisées, dont le but est similaire aux outils Hg, CVS, SCCS, SVN et Arch. Il est utilisé afin de suivre les changements réalisés dans les sources et pour aider les développeurs à combiner et manipuler des changements réalisés par plusieurs personnes à des instants différents.
Il y a actuellement deux moyens d'accéder à l'arborescence Git. Via la ligne de commande ou (pour voir un changement sur un fichier en particulier, par exemple) via l'interface web avec votre navigateur Internet :
Afin d'accéder à Git via la ligne de commande, procédez ainsi (assurez-vous d'avoir installé le paquet git).
git clone https://github.com/Skywalker13/libduck.git
git clone https://github.com/Skywalker13/DaisyDuck.git
git pull
La compilation de libduck et de DaisyDuck se fait de façon traditionnelle via la commande `make` (aussi bien la compilation pour GNU/Linux que pour Windows). Bien que DaisyDuck soit basé sur Qt4, les Makefiles ne dépendent pas de `qmake` et celui-ci ne doit donc pas être utilisé.
./configure make make install
Pour effectuer une compilation croisée, rien de plus simple (exemple pour la cible Windows):
./configure --cross-compile --cross-prefix=i586-mingw32msvc- --prefix=/usr/i586-mingw32msvc make make install
Le script configure s'appuie fortement sur pkg-config. Dans le cas
particulier de Qt4 avec DaisyDuck, veillez à ce que les fichiers .pc
pour QtCore, QtGui, QtXml et QtNetwork soient disponibles. Dans le cas
contraire, vous devrez passer tous les arguments nécessaires CXXFLAGS
et LDFLAGS ou alors générer manuellement les fichiers pkg-config.
Selon la configuration de votre système, il peut être nécessaire de
procéder ainsi (et spécialement dans le cas d'un compilation croisée
pour Windows) :
export PKG_CONFIG_PATH=/usr/i586-mingw32msvc/lib/pkgconfig export PKG_CONFIG_LIBDIR=/usr/i586-mingw32msvc/lib ./configure --cross-compile --cross-prefix=i586-mingw32msvc- --prefix=/usr/i586-mingw32msvc make make install
Si le script configure échoue, consultez le fichier config.log généré à la racine des sources.
L'auteur de DaisyDuck et de libduck, Mathieu Schroeter, peut être contacté par e-mail.