4Dコマンドでアプリケーションをビルドする

ここ最近の 4D のバージョンでは、独自のビルドチェーンを作成するためのさまざまな機能が追加されてきました。たとえば、以下のようなものです:

  • .zip フォルダーを作成する機能
  • 実行ファイルや “dll” ファイルに著作権などの情報を追加する機能
  • “info.plist” ファイルを作成する機能
  • 新しい build4D コンポーネントの搭載

 

4D v20 では、2つの新機能により、4Dコードでスタンドアロンまたはクライアント/サーバーアプリケーションの作成を仕上げまでおこなうことができます:

  • 実行ファイルへのアイコンの追加
  • サーバーまたはスタンドアロンアプリケーションの配布ライセンスファイルの生成 (サーバーアプリケーションは OEMライセンスのみ)

exeファイルにアイコンを追加する

Windows では、File クラスの setAppInfo 関数を使用することで、実行ファイルに会社名や著作権などの情報を追加することができます。この関数に、アイコンとして使用する “.ico” ファイルを渡すための、新しい WinIcon 属性が追加されました。

以下が、コードの一例です:

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))

なお、macOS では、setAppInfo 関数が追加されたときから、これはすでに可能です。

“.app” ファイルにアイコンを追加するには、アプリケーションの “Resources” フォルダーに “.icns” ファイルを置く必要があります。次に、”info.plist “ファイルに “CFBundleIconFile” というキーを追加し、”Resources” フォルダーを基準としたアイコンの相対パスを記述します。

var $plistFile : 4D.File  
$pListFile:= Folder(fk desktop folder).file("myApp.app/Contents/Info.plist")
$pListFile.setAppInfo(New object("CFBundleIconFile";"myApp.icns"))

配布ライセンスを生成する

新しい “Create deployment license” コマンドにより、サーバーまたはシングルユーザーアプリケーションのライセンスを作成することができます。これをおこなうには、生成されたアプリケーションフォルダーとライセンスファイルを引数として渡して、配布ライセンスを生成する必要があります。

シングルユーザーアプリケーションの場合

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)

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)

次は…

Github 上には、独自のビルドチェーンを作成するための Build4D というコンポーネントがあります。現在のところは、コンパイルされたデータベースやコンポーネントの作成をカスタマイズして自動化することができます。今後の開発にぜひご期待ください。

Vanessa Talbot
- プロダクトオーナー - Vanessa Talbotは、2014年6月に4Dプログラムチームに参加しました。プロダクトオーナーとして、彼女はユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換する役割を担っています。また彼女の役割は、実装された機能が顧客のニーズを満たしているかどうかを確認することでもあります。入社以来、4Dにおける主要機能の定義に関わってきました。プリエンプティブ/マルチスレッドの新機能の大部分と、非常に複雑なテーマである組み込みアプリケーションの新アーキテクチャに取り組んできました。VanessaはTelecom Saint-Etienneで学位を取得後、Criminal Research Institute でオーディオビジュアル部門の開発者としてキャリアをスタートさせました。また、メディアや医療の分野でも、技術サポートやプロダクションの分野で働いてきました。