Depuis plusieurs versions de 4D, différentes fonctionnalités ont été ajoutées pour créer votre propre chaîne de construction. Par exemple :
- la création d’un dossier « .zip »,
- l’ajout d’informations telles que le copyright sur un exécutable ou une « dll »,
- la création d’un fichier « info.plist »,
- et le nouveau composant build4D.
Avec 4D v20, deux nouvelles fonctionnalités permettent de finaliser la création d’une application mono-poste ou client/serveur en code 4D :
- l’ajout d’une icône à un exécutable
- la génération du fichier de licence de déploiement pour un serveur (licence OEM uniquement) ou une application mono-poste.
Ajouter des icônes à un exe
Sous Windows, la fonction setAppInfo de la classe File permet d’ajouter certaines informations, comme la société et le copyright, à un exécutable. Nous avons ajouté un nouvel attribut, « WinIcon », pour passer le fichier « .ico » à utiliser.
Voici un exemple de code:
var $exeFile: 4D.File
var $iconFile: 4D.File
$exeFile:=Folder(fk desktop folder).file("myApp/myApp.exe")
$iconFile:=File("/RESOURCES/myApp.ico")
$exeFile.setAppInfo(New object("WinIcon" ; $iconFile.path))
Si vous vous posez la question, qu’en est-il de macOS ? C’est déjà possible depuis la création de la fonction setAppInfo.
Pour ajouter une icône à un fichier « .app ». Il faut placer le fichier « .icns » dans le dossier « Resources » de l’application. Puis ajouter une clé « CFBundleIconFile » dans le fichier « info.plist » avec le chemin de l’icône relatif au dossier « Resources ».
var $plistFile: 4D.File
$pListFile:= Folder(fk desktop folder).file("myApp.app/Contents/Info.plist")
$pListFile.setAppInfo(New object("CFBundleIconFile" ; "myApp.icns"))
Générer une licence de déploiement
La nouvelle commande Create deployment license permet de créer une licence pour un serveur ou une application mono-poste. Pour ce faire, vous devez passer le dossier de l’application générée et le fichier de licence comme paramètres pour générer la licence de déploiement.
Application mono-poste :
var $status: Object
var $application: 4D.File
var $license: 4D.File
$license:=Folder(fk licenses folder).file("4UUD200-xxx.license4D")
$application:=Folder(fk desktop folder).folder("myApp.app")
$status:=Create deployment license($application; $license)
Serveur avec licence OEM :
var $status: Object
var $application: 4D.File
var $serverLicense; $oemLicense: 4D.File
$serverLicense:=Folder(fk licenses folder).file("4UOS200-xxx.license4D")
$oemLicense:=Folder(fk licenses folder).file("4DOM200-xxx.license4D")
$application:=Folder(fk desktop folder).folder("myApp.app")
$status:=Create deployment license($application; $serverLicense; $oemLicense)
Ensuite…
Sur Github, vous avez le composant Build4D qui vous permet de créer votre propre chaîne de construction. Pour l’instant, vous pouvez personnaliser et automatiser la création d’une base compilée ou d’un composant. Restez à l’écoute pour de nouveaux développements à venir.