メインコンテンツまでスキップ
バージョン: 20 R7 BETA

Compile project

Compile project {( {projectFile}{;}{options} )} : Object

引数説明
projectFile4D.Fileコンパイルするプロジェクトの.4DProject ファイル
optionsObjectコンパイルオプションを指定するオブジェクト
戻り値Objectコンパイルのステータスの情報を格納したオブジェクト

このコマンドはスレッドセーフではないため、プリエンプティブなコードには使えません。

説明

Compile project は、カレントのホストプロジェクト、またはprojectFile 引数で指定したプロジェクトをコンパイルします。コンパイルについてのより詳細な情報については、Compilation page on developer.4d.com を参照してください。

デフォルトで、このコマンドはストラクチャー設定で定義されているコンパイラオプションを使用します。任意のoptions 引数を渡すことで、それらを上書きすることができます。以下のシンタックスがサポートされています:

  • Compile project(): 現在開かれているプロジェクトを、ストラクチャー設定で定義されているオプションを使用してコンパイルします。
  • Compile project (options): 現在開かれているプロジェクトをコンパイルします。options 引数で定義されたオプションでストラクチャー設定を上書きします。
  • Compile project (projectFile): projectFile 引数で指定された4DProject ファイルを、ストラクチャー設定で定義されているオプションを使用してコンパイルします。
  • Compile project (projectFile; options): 引数で指定された4DProject ファイルを、options 引数で定義されたオプションでストラクチャー設定を上書きします。

注: このコマンドを使用してバイナリーデータベースをコンパイルすることはできません。

コンパイラウィンドウとは異なり、このコマンドではコンパイルするコンポーネントを明示的に指定する必要があります。Compile project でプロジェクトをコンパイルする場合、options 引数のcomponents プロパティを使用してそのコンポーネントを宣言する必要があります。なお、そのコンポーネントは既にコンパイルされている必要があるという点に注意してください(バイナリーコンポーネントはサポートされません)。

コンパイルされたコードは、options 引数のtargets プロパティでの指定によって、DerivedData または Libraries フォルダに格納されています。.4dz ファイルを作成したい場合、コンパイルされたプロジェクトを手動でZIP圧縮するか、プロジェクトパッケージのビルド 機能を使用する必要があります。

プロパティに空のコレクションを渡した場合、Compile project はコンパイルせずにシンタックスチェックを実行します。

コンパイルエラーがもしあれば、errors コレクション内にオブジェクトとして返されます。

注: 他のコンパイルの実行中に、このコマンドを呼び出すことはできません(例えば、コンパイルウィンドウからローンチしたコンパイルが実行中である場合など)。

options 引数

options 引数はオブジェクト型です。利用可能なコンパイルオプションは以下の通りです。

プロパティ詳細
componentsコレクション依存したコンポーネントへの4D.File オブジェクトのコレクション(コンポーネントは既にコンパイルされている必要があります)。
defaultTypeForButtons整数取り得る値: Is real または Is longint
defaultTypeForNumerics整数取り得る値: Is real または Is longint
generateSymbolsブール返された.symbol オブジェクト内にsymbol 情報を生成するためにはTrue
generateSyntaxFileブールプロジェクトの\Resources\en.lproj フォルダに コード補完のためのシンタックスファイル を生成するためにはTrue
generateTypingMethods文字列型指定メソッドを生成する際にリセット(Reset)するか追加(append)するかを選択します。値が"append"だった場合、既存の変数宣言は変更されません(コンパイラウィンドウの振る舞い)。値が"reset" だった場合、既存の変数宣言は事前に削除されます。
plugins4D.Folder オブジェクトカレントのプロジェクトのPlugins フォルダ ではなく、使用したいプラグインのフォルダ。このプロパティは、projectFile シンタックスを使用した場合にのみ利用可能です。
targets文字列のコレクション取り得る値: "x86_64_generic"、"arm64_macOS_lib"。また空のコレクションを渡すことでシンタックスチェックのみを実行させることもできます。
typeInference文字列"all": 全ての変数を定義させる "locals": ローカル変数のみ自動定義させる "none": 自動変数定義は行わない
warningsオブジェクトのコレクション警告の有効化状態を定義します
[].major数値指定する警告のメインの番号、ドットの前
[].minor数値指定する警告の2つ目の番号、ドットの後
[].enabledブール警告の有効化状態
戻り値

Compile project によって返されるオブジェクトには、最大で以下3つのプロパティが格納されています:

プロパティ詳細
successブール保存アクションが成功した場合にはTrue、それ以外の場合にはFalse
以下は error または warningの場合にのみ返されます:
errorsオブジェクトのコレクションコンパイルエラーまたは警告の詳細を格納したオブジェクトのコレクション
isErrorブールエラーであればTrue、それ以外の場合にはwarning
message文字列エラーメッセージ
codeオブジェクトコードオブジェクト
line数値コード内でのエラーが発生した行番号。クラスメソッドについては、ファンクション内の行番号
lineInFile数値ファイル内での行番号(クラスメソッドの"line"とは異なります、また%attributes プリフィックス行を考慮に入れます)
*generateSymbols オプションがTrue に設定されている場合にのみ返されます:
symbolオブジェクト
interprocessVariablesオブジェクト全てのインタープロセス変数の一覧
variablesコレクション変数オブジェクト のコレクション
size数値
processVariablesオブジェクト全てのプロセス変数の一覧
variablesコレクション変数オブジェクト のコレクション
size数値
localVariablesオブジェクトのコレクションメソッドごとのローカル変数の一覧
codeオブジェクトコードオブジェクト
variablesコレクション変数オブジェクト のコレクション
methodsオブジェクトのコレクションメソッドの一覧
codeオブジェクトコードオブジェクト
callCount数値このメソッドが呼び出された回数
paramsコレクション引数タイプのコレクション(Value Type の数値コード)
threadSafeブールこのメソッドがスレッドセーフであるかを示します

詳細な情報については、Compilation tools を参照してください。

変数オブジェクト

interprocessVariables.variables および processVariables.variables には以下の構造を持ったオブジェクトが格納されます:

プロパティ詳細
name文字列変数名
type数値変数の型(Value type コマンドで返される型)
arrayDimension数値配列のみ: 1 は1次元配列を、2 は2次元配列を意味します
codeObjectプロセス変数とインタープロセス変数のみ: 変数がどこで定義されたかの詳細
コードオブジェクト

methods[ ].code および errors[ ].code 内のcode プロパティは、以下のプロパティを持ったオブジェクトです:

プロパティ詳細
type文字列"projectMethod", "formObjectMethod", "formmethod","databaseMethod", "triggerMethod", "executeOnServer" (サーバー上で実行属性 をつけてプロジェクトメソッドを呼び出した場合), "executeFormula" (フォーミュラをPROCESS 4D TAGS 経由で実行した、または4D Write Pro ドキュメント内でフォーミュラを評価した),"class", "classFunction"
path文字列メソッドパス(METHOD OPEN PATH と同じフォーマット)
file4D.Fileメソッドファイル
Returned depending on the value of the type property:
methodName文字列プロジェクトメソッド
tableNumberテーブル数(トリガ、テーブルフォームメソッドまたはテーブルフォームオブジェクトメソッドに対して返されます)
formName文字列フォーム名(フォームメソッドに対して返されます)
objectName文字列フォームオブジェクト名(オブジェクトメソッドに対して返されます)
className文字列クラス名
functionName文字列クラスのファンクション名
databaseMethodNumberデータベースメソッドのインデックス

警告

シンタックスチェックのみを実行したい場合、targets 引数には空のコレクションを渡します:

 var $options;$status : Object
 $options:=New object
 $options.targets:=New collection // シンタックスチェックのために空のコレクションを渡す
 $status:=Compile project($options)

カレントのプロジェクトを、ストラクチャー設定のコンパイルオプションだけを使用してコンパイルする場合:

 var $status : Object
 $status:=Compile project

Silicon Mac 上において、カレントのプロジェクトをARM のみに対してコンパイルする場合:

 var $options;$status : Object
 $options:=New object
 $options.targets:=New collection("arm64_macOS_lib")
 $status:=Compile project($options)

カレントプロジェクトでないプロジェクトをコンパイルする場合:

 var $status : Object
 var $projectFile: 4D.File
 $projectFile:=Folder(fk documents folder).file("Databases/myApp/Project/myApp.4DProject")
 $status:=Compile project($projectFile)

プロジェクトをコンパイルし、そのコンポーネントを宣言する場合:

 var $options;$status : Object
 var $component : 4D.File
 $options:=New object
 $component:=Folder(fk documents folder).file("Components/myComponent.4dz")
 $options.components:=New collection($component)
 $status:=Compile project($options)

プロジェクトをコンパイルするときに、518.1と518.2の警告を無効化してコンパイルする場合:

var $options:={}
$options.warnings:=[]
$options.warnings.push({major: 518; minor: 1; enabled: False})
$options.warnings.push({major: 518; minor: 2; enabled: False})
var $result:=Compile project($options)

参照

BUILD APPLICATION