メインコンテンツまでスキップ
バージョン: 開発中

Compile project

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

引数説明
projectFile4D.Fileコンパイルする.4DProject ファイル
optionsObjectコンパイルオプションを指定するオブジェクト
戻り値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 引数はオブジェクト型です。 利用可能なコンパイルオプションは次のとおりです: 利用可能なコンパイルオプションは次のとおりです:

プロパティ説明
componentsCollection依存したコンポーネントへの4D.File オブジェクトのコレクション(コンポーネントは既にコンパイルされている必要があります)。
defaultTypeForButtonsInteger取り得る値: Is real または Is longint
defaultTypeForNumericsInteger取り得る値: Is real または Is longint
generateSymbolsBoolean返された.symbol オブジェクト内にsymbol 情報を生成するためにはTrue
generateSyntaxFileBooleanプロジェクトの\Resources\en.lproj フォルダに コード補完用のシンタックスファイルを生成する ためにはTrue
generateTypingMethodsText型指定メソッドを生成する際にリセット("reset") するか追加("append") するかを選択します。 値が"append" だった場合、既存の変数宣言は変更されません(コンパイラウィンドウの振る舞い)。 値が"reset" だった場合、既存の変数宣言は事前に削除されます。
plugins4D.Folder objectPlugins folder of the current project ではなく、独自に使用したいプラグインのフォルダ。 このプロパティは、projectFile シンタックスを使用した場合にのみ利用可能です。 このプロパティは、projectFile シンタックスを使用した場合にのみ利用可能です。 このプロパティは、projectFile シンタックスを使用した場合にのみ利用可能です。
targetsString の Collection取り得る値: "x86_64_generic"、"arm64_macOS_lib"。 また空のコレクションを渡すことでシンタックスチェックのみを実行させることもできます。 また空のコレクションを渡すことでシンタックスチェックのみを実行させることもできます。 また空のコレクションを渡すことでシンタックスチェックのみを実行させることもできます。
typeInferenceText"all": コンパイラは、明示的に宣言されていない全ての変数の型を類推します。 "locals": コンパイラは、明示的に宣言されていないローカル変数の型を類推します。 "none": 自動変数定義は行いません。全ての変数はコード内で明示的に宣言されている必要があります(旧式モード)。"direct": 全ての変数はコード内で明示的に宣言されている必要があります(直接型指定)。
warningsObject の Collection警告の有効化状態を定義します
[].majorNumber指定する警告のメインの番号、ドットの前
[].minorNumber指定する警告の2つ目の番号、ドットの後
[].enabledBoolean警告の有効化状態

Note: options オブジェクト内においてwarnings 属性が定義されていない場合、Compile project コマンドはストラクチャー設定内で定義されているデフォルトの警告生成ステータスを使用します。

戻り値

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

プロパティ説明
successBoolean保存に成功した場合には true、それ以外は false
errorsObject の Collection以下はerror または warningの場合にのみ返されます。 コンパイルのエラーまたは警告の詳細を格納したオブジェクトのコレクションです。
[].isErrorBooleanエラーならTrue、それ以外の場合は警告
[].messageTextエラーメッセージ
[].codeObjectコードオブジェクト
[].lineNumberコード内でのエラーが発生した行番号。 コード内でのエラーが発生した行番号。 コード内でのエラーが発生した行番号。 クラスメソッドに対しては、ファンクション内の行番号
[].lineInFileNumberファイル内での行番号(クラスメソッドの"line"とは異なります、また%attributes プリフィックス行を考慮に入れます)
symbolsObjectgenerateSymbols オプションがTrue に設定されている場合にのみ返されます:
symbols.interprocessVariablesObject全てのインタープロセス変数の一覧
symbols.interprocessVariables.variablesCollection変数オブジェクト のコレクション
symbols.interprocessVariables.sizeNumber
symbols.processVariablesObject全てのプロセス変数の一覧
symbols.processVariables.variablesCollection変数オブジェクト のコレクション
symbols.processVariables.sizeNumber
symbols.localVariablesObject の Collectionメソッドごとのローカル変数の一覧
symbols.localVariables[].codeObjectコードオブジェクト
symbols.localVariables[].variablesCollection変数オブジェクト のコレクション
symbols.methodsObject の Collectionメソッドの一覧
symbols.methods[].codeObjectコードオブジェクト
symbols.methods[].callCountNumberこのメソッドが呼び出された回数
symbols.methods[].paramsCollection引数タイプのコレクション(Value Type の数値コード)
symbols.methods[]. threadSafeBooleanこのメソッドがスレッドセーフであるかを示します。

より詳細な情報については、コンパイルツール を参照してください。

変数オブジェクト

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

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

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

プロパティ説明
typeText"projectMethod"、 "formObjectMethod"、 "formMethod"、 "databaseMethod"、 "triggerMethod"、 "executeOnServer" (サーバー上で実行属性つきのプロジェクトメソッドを呼び出した場合)、 "executeFormula" (when executing a formula via PROCESS 4D TAGS からフォーミュラを実行した場合または4D Write Pro ドキュメント内のフォーミュラを評価した場合)、 "class"、 "classFunction"、 "formObjectExpression" (フォームオブジェクトに割り当てられた式の中で発生したエラー)
pathTextメソッドパス(METHOD OPEN PATH と同じフォーマット)
file4D.Fileメソッドファイル
以下はtype プロパティの値に応じて返されます:
methodNameTextプロジェクトメソッド
tableNumberテーブル番号(トリガ、テーブルフォームメソッドまたはテーブルフォームオブジェクトメソッドに対して返されます)
formNameTextフォーム名(フォームメソッドに対して返されます)
objectNameTextフォームオブジェクト名(オブジェクトメソッドに対して返されます)
propertyNameTextフォームオブジェクトプロパティ名(フォームオブジェクトの式に対して返されます)
classNameTextクラス名
functionNameTextクラス関数名
databaseMethodNumberデータベースメソッドのインデックス

例題

シンタックスチェックのみを実行したいので、空のコレクションを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)

参照

BUILD APPLICATION