Desde várias versões de 4D, diferentes características foram adicionadas para criar a sua própria cadeia de construção. Por exemplo:
- a criação de uma pasta “.zip”,
- a adição de informações tais como os direitos de autor sobre um executável ou um “dll”,
- a criação de um arquivo “info.plist”,
- e o novo componente build4D.
Com 4D v20, duas novas características permitem finalizar a criação de uma aplicação autônoma ou cliente/servidor em código 4D:
- a adição de um ícone a um executável
- a geração do arquivo de licença de implementação para um servidor (licença OEM apenas) ou uma aplicação autônoma.
Acrescentar ícones a um exe
No Windows, a função setAppInfo da classe File permite adicionar alguma informação, como a empresa e os direitos de autor, a um executável. Adicionámos um novo atributo, “WinIcon,” para passar o arquivo “.ico” a utilizar.
Aqui está um exemplo de código:
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))
Se perguntar, e o MacOS? Isso já era possível desde a criação da função setAppInfo.
Para adicionar um ícone a um arquivo “.app”. Tem de colocar o arquivo “.icns” na pasta “Recursos” da aplicação. Em seguida, adicionar uma chave “CFBundleIconFile” no arquivo “info.plist” com o caminho do ícone relativo à pasta “Recursos”.
var $plistFile: 4D.File
$pListFile:= Folder(fk desktop folder).file("myApp.app/Contents/Info.plist")
$pListFile.setAppInfo(New object("CFBundleIconFile"; "myApp.icns"))
Gerar licença de implantação
O novo comando Create deployment license permite a criação da licença para um servidor ou uma aplicação de um único utilizador. Para o fazer, deve passar a pasta da aplicação gerada e o arquivo de licença como parâmetros para gerar a licença de implementação.
Aplicação para um único utilizador:
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:=Criarlicença de desdobramento($application; $license)
Servidor com licença OEM:
var $status: Object
var $application: 4D.File
var $serverLicense; $oemLicense: 4D.File
$serverLicense:=Pasta(pasta fk licenses).file("4UOS200-xxx.license4D")
$oemLicense:=Pasta(pasta fk licenses).file("4DOM200-xxx.license4D")
$application:=Folder(fk desktop folder).folder("myApp.app")
$status:=Criarlicença de implementação($application; $serverLicense; $oemLicense)
A seguir…
No Github, tem a componente Build4D que lhe permite criar a sua própria cadeia de construção. Por agora, pode personalizar e automatizar a criação de uma base compilada ou de um componente. Esteja atento aos novos desenvolvimentos que se avizinham.