Compile project
Compile project {( {projectFile}{;}{options} )} : Object
引数 | 型 | 説明 | |
---|---|---|---|
projectFile | 4D.File | → | コンパイルする.4DProject ファイル |
options | Object | → | コンパイルオプションを指定するオブジェクト |
戻り値 | Object | ← | コンパイルのステータスの情報を格納したオブジェクト |
このコマンドはスレッドセーフではないので、プリエンプティブなコードでは使用できません。
履歴
リリース | 内容 |
---|---|
20 R8 | "formObjectExpression" 型 のサポート |
説明
Compile project は、 カレントのホストプロジェクト、またはprojectFile 引数で指定したプロジェクトをコンパイルします。コンパイルについてのより詳細な情報については、コンパイルページ を参照してください。
デフォルトでは、このコマンドはストラクチャー設定で定義されているコンパイラオプションを使用します。 任意のoptions 引数を渡すことで、それらを上書きすることができます。 以下のシンタックスがサポートされています: 任意のoptions 引数を渡すことで、それらを上書きすることができます。 以下のシンタックスがサポートされています:
- Compile project(): 現在開かれているプロジェクトを、ストラクチャー設定で定義されているオプションを使用してコンパイルします。
- Compile project(options): 現在開かれているプロジェクトをコンパイルします。 options 引数で定義されたオプションでストラクチャー設定を上書きします。 options 引数で定義されたオプションでストラクチャー設定を上書きします。 options 引数で定義されたオプションでストラクチャー設定を上書きします。
- Compile project(projectFile): projectFile 引数で指定された4DProject ファイルを、ストラクチャー設定で定義されているオプションを使用してコンパイルします。
- Compile project(projectFile; options): projectFile 引数で指定された4DProject ファイルを、options 引数で定義されたオプションでストラクチャー設定を上書きしてコンパイルします。
注: このコマンドを使用してバイナリーデータベースをコンパイルすることはできません。
コンパイラウィンドウとは異なり、このコマンドではコンパイルするコンポーネントを明示的に指定する必要があります。 Compile project でプロジェクトをコンパイルする場合、options 引数のcomponents プロパティを使用してそのコンポーネントを宣言する必要があります。 なお、そのコンポーネントは既にコンパイルされている必要があるという点に注意してください(バイナリーコンポーネントはサポートされます)。 Compile project でプロジェクトをコンパイルする場合、options 引数のcomponents プロパティを使用してそのコンポーネントを宣言する必要があります。 なお、そのコンポーネントは既にコンパイルされている必要があるという点に注意してください(バイナリーコンポーネントはサポートされます)。 Compile project でプロジェクトをコンパイルする場合、options 引数のcomponents プロパティを使用してそのコンポーネントを宣言する必要があります。 なお、そのコンポーネントは既にコンパイルされている必要があるという点に注意してください(バイナリーコンポーネントはサポートされます)。
コンパイルされたコードは、options 引数のtargets プロパティでの指定によって、DerivedData または Libraries フォルダに格納されています。 コンパイルされたコードは、options 引数のtargets プロパティでの指定によって、DerivedData または Libraries フォルダに格納されています。 .4dz ファイルを作成したい場合でも、コンパイルされたプロジェクトを手動でZIP圧縮するか、ビルドアプリケーション 機能を使用する必要があります。
targets プロパティに空のコレクションを渡した場合、Compile project コマンドはコンパイルせずにシンタックスチェックを実行します。
コンパイルエラーがもしあれば、errors コレクション内にオブジェクトとして返されます。
注: 他のコンパイルの実行中に、このコマンドを呼び出すことはできません(例えば、コンパイルウィンドウからローンチしたコンパイルが実行中である場合など)。
options 引数
options 引数はオブジェクト型です。 利用可能なコンパイルオプションは次のとおりです: 利用可能なコンパイルオプションは次のとおりです:
プロパティ | 型 | 説明 |
---|---|---|
components | Collection | 依存したコンポーネントへの4D.File オブジェクトのコレクション(コンポーネントは既にコンパイルされている必要があります)。 |
defaultTypeForButtons | Integer | 取り得る値: Is real または Is longint |
defaultTypeForNumerics | Integer | 取り得る値: Is real または Is longint |
generateSymbols | Boolean | 返された.symbol オブジェクト内にsymbol 情報を生成するためにはTrue |
generateSyntaxFile | Boolean | プロジェクトの\Resources\en.lproj フォルダに コード補完用のシンタックスファイルを生成する ためにはTrue |
generateTypingMethods | Text | 型指定メソッドを生成する際にリセット("reset") するか追加("append") するかを選択します。 値が"append" だった場合、既存の変数宣言は変更されません(コンパイラウィンドウの振る舞い)。 値が"reset" だった場合、既存の変数宣言は事前に削除されます。 |
plugins | 4D.Folder object | Plugins folder of the current project ではなく、独自に使用したいプラグインのフォルダ。 このプロパティは、projectFile シンタックスを使用した場合にのみ利用可能です。 このプロパティは、projectFile シンタックスを使用した場合にのみ利用可能です。 このプロパティは、projectFile シンタックスを使用した場合にのみ利用可能です。 |
targets | String の Collection | 取り得る値: "x86_64_generic"、"arm64_macOS_lib"。 また空のコレクションを渡すことでシンタックスチェックのみを実行させることもできます。 また空のコレクションを渡すことでシンタックスチェックのみを実行させることもできます。 また空のコレクションを渡すことでシンタックスチェックのみを実行させることもできます。 |
typeInference | Text | "all": コンパイラは、明示的に宣言されていない全ての変数の型を類推します。 "locals": コンパイラは、明示的に宣言されていないローカル変数の型を類推します。 "none": 自動変数定義は行いません。全ての変数はコード内で明示的に宣言されている必要があります(旧式モード)。"direct": 全ての変数はコード内で明示的に宣言されている必要があります(直接型指定)。 |
warnings | Object の Collection | 警告の有効化状態を定義します |
[].major | Number | 指定する警告のメインの番号、ドットの前 |
[].minor | Number | 指定する警告の2つ目の番号、ドットの後 |
[].enabled | Boolean | 警告の有効化状態 |
Note: options オブジェクト内においてwarnings 属性が定義されていない場合、Compile project コマンドはストラクチャー設定内で定義されているデフォルトの警告生成ステータスを使用します。
戻り値
Compile project によって返されるオブジェクトには、以下のプロパティが格納されています(最大で3つ):
プロパティ | 型 | 説明 |
---|---|---|
success | Boolean | 保存に成功した場合には true、それ以外は false |
errors | Object の Collection | 以下はerror または warningの場合にのみ返されます。 コンパイルのエラーまたは警告の詳細を格納したオブジェクトのコレクションです。 |
[].isError | Boolean | エラーならTrue、それ以外の場合は警告 |
[].message | Text | エラーメッセージ |
[].code | Object | コードオブジェクト |
[].line | Number | コード内でのエラーが発生した行番号。 コード内でのエラーが発生した行番号。 コード内でのエラーが発生した行番号。 クラスメソッドに対しては、ファンクション内の行番号 |
[].lineInFile | Number | ファイル内での行番号(クラスメソッドの"line"とは異なります、また%attributes プリフィックス行を考慮に入れます) |
symbols | Object | generateSymbols オプションがTrue に設定されている場合にのみ返されます: |
symbols.interprocessVariables | Object | 全てのインタープロセス変数の一覧 |
symbols.interprocessVariables.variables | Collection | 変数オブジェクト のコレクション |
symbols.interprocessVariables.size | Number | |
symbols.processVariables | Object | 全てのプロセス変数の一覧 |
symbols.processVariables.variables | Collection | 変数オブジェクト のコレクション |
symbols.processVariables.size | Number | |
symbols.localVariables | Object の Collection | メソッドごとのローカル変数の一覧 |
symbols.localVariables[].code | Object | コードオブジェクト |
symbols.localVariables[].variables | Collection | 変数オブジェクト のコレクション |
symbols.methods | Object の Collection | メソッドの一覧 |
symbols.methods[].code | Object | コードオブジェクト |
symbols.methods[].callCount | Number | このメソッドが呼び出された回数 |
symbols.methods[].params | Collection | 引数タイプのコレクション(Value Type の数値コード) |
symbols.methods[]. threadSafe | Boolean | このメソッドがスレッドセーフであるかを示します。 |
より詳細な情報については、コンパイルツール を参照してください。
変数オブジェクト
interprocessVariables.variables
および processVariables.variables
には以下の構造を持ったオブジェクトが格納されます:
プロパティ | 型 | 説明 |
---|---|---|
name | Text | 変数名 |
type | number | 変数の型(Value type コマンドで返される値) |
arrayDimension | number | 配列のみ: 1 は1次元配列を、2 は2次元配列を意味します |
code | Object | プロセス変数とインタープロセス変数のみ: 変数がどこで定義されたかの詳細 |
コードオブジェクト
methods.code
および errors.code
内のcode
プロパティは、以下のプロパティを持ったオブジェクトです:
プロパティ | 型 | 説明 |
---|---|---|
type | Text | "projectMethod"、 "formObjectMethod"、 "formMethod"、 "databaseMethod"、 "triggerMethod"、 "executeOnServer" (サーバー上で実行属性つきのプロジェクトメソッドを呼び出した場合)、 "executeFormula" (when executing a formula via PROCESS 4D TAGS からフォーミュラを実行した場合または4D Write Pro ドキュメント内のフォーミュラを評価した場合)、 "class"、 "classFunction"、 "formObjectExpression" (フォームオブジェクトに割り当てられた式の中で発生したエラー) |
path | Text | メソッドパス(METHOD OPEN PATH と同じフォーマット) |
file | 4D.File | メソッドファイル |
以下はtype プロパティの値に応じて返されます: | ||
methodName | Text | プロジェクトメソッド |
table | Number | テーブル番号(トリガ、テーブルフォームメソッドまたはテーブルフォームオブジェクトメソッドに対して返されます) |
formName | Text | フォーム名(フォームメソッドに対して返されます) |
objectName | Text | フォームオブジェクト名(オブジェクトメソッドに対して返されます) |
propertyName | Text | フォームオブジェクトプロパティ名(フォームオブジェクトの式に対して返されます) |
className | Text | クラス名 |
functionName | Text | クラス関数名 |
databaseMethod | Number | データベースメソッドのインデックス |
例題
シンタックスチェックのみを実行したいので、空のコレクションをtargets 引数に渡す場合を考えます:
var $status : Object
var $options:={}
$options.targets:=New collection // 空のコレクションを渡してシンタックスチェックを行う
$status:=Compile project($options)
ストラクチャー設定のコンパイラオプションのみを使用してカレントのプロジェクトをコンパイルする:
var $status : Object
$status:=Compile project
Silicon Mac 上にて、カレントのプロジェクトをARM 用にのみコンパイルする:
var $status : Object
var $options:={}
$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 $status : Object
var $component : 4D.File
var $options:={}
$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)