Comment développer une bibliothèque en D

Comment développeriez-vous une bibliothèque en langage D?

Je veux écrire une bibliothèque simple pour le traitement des images que je veux ensuite utiliser dans une application.

Je cherche une analogie avec les fichiers JAR de Java avec le système Maven (construction, installation, utilisation dans d’autres projets) ou tout autre outil de gestion de paquetages.

Ce que je voudrais savoir, c’est

  • comment configurer un projet (deux en fait, la lib et l’application – ce sont 2 projets totalement distincts)
  • comment construire, installer, partager la bibliothèque
  • Y a-t-il des règles empiriques, une visibilité particulière des symboles, des conventions d’espacement des noms, etc.

Je demande cela parce que je n’ai pas l’intuition que je fais en Java ou en C ++.

  • En Java, vous comstackz une lib à un JAR et vous êtes prêt à partir. Envoyez-le, partagez-le, puis incluez-le sur claspath et vous pourrez le réutiliser.
  • En C ++, vous le comstackz et fournissez un fichier d’en-tête. (ou comstackr et lier dynamicment)

Alors, quelle est l’histoire avec D?

J’utilise Visual-D pour développer le code, mais DUB est également installé.

La méthode généralement acceptée consiste à utiliser dub, un gestionnaire de paquets pour D.

Il existe déjà une bonne collection de paquets de dub: http://code.dlang.org/

Une autre manière serait de simplement publier votre paquet en tant que repository git, puis de l’utiliser comme un sous-module git. C’est l’approche que j’ai utilisée pour mes bibliothèques.

Vous pouvez le faire avec dub en définissant le type de cible mais je vous montrerai une autre manière.

En utilisant MakefileForD ,

Pourquoi ?

Parce que dub installe lib et bin dans ~/.dub . Et n’est pas possible d’installer dans un répertoire partagé. Comme par exemple, Linux Filesystem Hierarchy Standard indique que les fichiers binarys doivent aller dans /usr/bin .

Vous ne pouvez pas respecter cette norme en utilisant dub.

Lib partagée avec Makefile,

Créer un projet

 myproject └── src └── myproject 

Installez Makefile_lib dans le répertoire racine et renommez-le en Makefile.

Installer command.make dans le répertoire racine

Tu l’as maintenant

 myproject ├── command.make ├── Makefile └── src └── myproject └── main.d 

Définir le répertoire source

À la 5ème ligne du fichier Makefile

 export REPO_SRC_DIR = src 

Construire

il ne vous rest plus qu’à:

 make DC=dmd shared-lib 

DC accepte le compilateur dmd ldc et gdc

Installer

 make install 

définition du répertoire d’installation personnalisé

 make install PREFIX=/usr LIB_DIR=/usr/lib64 

Pour les fichiers binarys identiques au lieu de prendre Makefile_lib, vous devez utiliser Makefile_exe