C
QmlProjectマニュアル
はじめに
qmlprojectexporterは、プロジェクトに含まれるすべてのリソースと.qmlファイルのC++コードを自動生成するツールです。リソースには、Qmlファイル、画像、フォントファイル、翻訳ファイル、C++インターフェースがあります。qmlprojectexporter 。このファイルはプロジェクトの構造を定義し、他の.qmlprojectモジュールファイルに依存するかもしれません。
qmlprojectファイル
.qmlprojectファイルの構文はQmlドキュメントと同じです。.qmlprojectファイルの目的は、プロジェクトの構造を記述することです。QMLドキュメントと同様に、.qmlprojectファイルはインポートセクションに続いて、ルートノード(この場合はProject)から始まるノードまたはオブジェクトの階層で構成され、各ノードは事前に定義されたプロパティのセットを持ちます。インポートセクションは主に "import QmlProject 1.3 "で構成され、.qmlprojectファイルであることを示し、使用するAPIのバージョンを指定します。
移行ガイド
非推奨の CMake API に依存している既存のプロジェクトを.qmlproject に移行することができます。詳しくはQmlProjectへの移行ガイドを参照してください。
プラットフォームソースを含むプロジェクトのエクスポート
qmlprojectexporter コマンドラインユーティリティを使って、QmlProject をプラットフォームソースと一緒にエクスポートすることができます。これにより、Qt for MCUs をサードパーティの IDE やカスタムビルドシステムに統合するプロセスが簡単になります。この機能の使用方法の詳細については、 Qt for MCUs プロジェクトをプラットフォーム・ソースとともにエクスポートするを参照してください。
ノード
各ノードは、プロジェクトの特定の部分(Qmlファイル、イメージ、モジュールなど)を設定します。ImageFilesのように、プロジェクトのルートノードで何度も定義できるノードもあります。また、MCU.Module.ImageFilesなど、一度しか定義できないノードもあります。
プロパティ
.qmlprojectファイルのPropertiesは設定パラメータと考えることができます。各ノードには定義済みの設定可能なセットがあります。
MCU.Configノードにコンフィギュレーションを配置すると、プロジェクトファイル内でコンフィギュレーションをサポートするすべてのノードにコンフィギュレーションを割り当てることができ、それぞれのプロパティがデフォルトのノード(ImageFilesなど)で見つからない場合、MCU.Config で定義された値が有効になります。これらのコンフィギュレーション・プロパティには、"MCU. "というプレフィックスが付いています。詳細については、MCU.Configを参照してください。
ノード
プロジェクト
各qmlproject ファイルには、ルート・ノードとしてProject ノードがあります。このルート・ノードには、プロジェクトの詳細情報を提供する他のすべてのノードが含まれます。
qmlproject ファイル構造は、Project とその子ノードという2つのレベルに制限されています。qmprojectexporter は、第3レベルに配置されたノードを無視します。
使用方法
Project {
projectRootPath: "..."
...
MCU.Config {...}
...
ImageFiles {...}
...
}以下はProjectノードで使用可能なプロパティのリストです:
テキストIDに基づく翻訳を有効にします。 | |
モジュールファイルが存在するパスのリスト。 | |
QML ソース・ファイルは、アプリケーションの最初の UI 画面を定義します。 | |
アプリケーションの主要言語を設定します。 | |
プロジェクトのルートパス | |
プロジェクトをQt for MCUs プロジェクトとしてマークするフラグ |
QmlFiles
このノードを使うと、プロジェクトの QML ファイルを一覧表示できます。QML ファイルには、相対パスと絶対パスの両方を使用できます。
注意: 相対パスはqmlproject ファイルからの相対パスでなければなりません。
使用方法
QmlFiles {
files: ["src/other.qml"]
}QmlFilesノードで利用可能なプロパティの一覧は以下の通りです:
QML ファイルを出力ディレクトリにコピーします。 | |
QML ファイルを含むディレクトリ | |
文字列のリスト。QML ファイルを選択する際に使用するバリアントを指定します。 | |
QML ファイルのリスト。 |
画像ファイル
ImageFiles ノードは、指定された画像アセットをプロジェクトに追加します。
さらに、与えられたノードで指定されたプロパティは、qulrcc-toolがこれらのアセットをどのようにエンコードするかに影響します。
同じプロジェクトに複数のImageFilesを持つことができ、画像のグループごとに異なるプロパティを設定するときに必要になります。
ImageFilesノードで指定されたプロパティを定義しない場合、qmlprojectexporter 、MCU.Configノードで提供されたデフォルト値が使用されます。そこで定義されていない場合は、グローバルなデフォルト値に依存します。
使用方法
Project {
...
ImageFiles {
files: [...]
MCU.resourceOptimizeForRotation: true
}
...
}以下は、ImageFiles ノードで使用可能なプロパティの一覧です:
アセットのベースパスを定義します。 | |
ファイルのURIに共通のプレフィックスを追加します。 | |
AnimatedSpriteDirectory のフレームとして使用できるイメージを特定します。 | |
スプライト・アニメーションのリソース最適化のために、フレームの高さを指定します。 | |
スプライトアニメーションのリソース最適化のためのフレーム幅を指定します。 | |
使用する切り抜き画像の最適化モードを指定します。 | |
画像のキャッシュポリシーを指定します。 | |
画像を圧縮して保存します。 | |
画像アセットの優先ピクセルフォーマットを設定します。 | |
アセット内のオリジナルデータをそのまま保持します。 | |
実行時に画像を回転させる最適化を有効にします。 | |
実行時に画像を拡大縮小するための最適化を有効にする。 | |
アセットのランタイム割り当てタイプを定義する。 | |
アセットのストレージセクションを定義します。 | |
画像アセットのあるディレクトリを追加します。 | |
文字列のリストで、画像ファイルを選ぶときに使うバリアントを指定します。 | |
画像アセットのリスト。 |
テクスチャデータのバイトアライメント | |
resourceSVGScale を有効にする。 | |
SVG 画像のスケーリング係数 | |
画像を不透明セグメントに分割する最適化を有効にする。 |
フォントファイル
このノードを使用すると、プロジェクトで必要なフォントファイルを一覧表示できます。サポートされているフォントファイル形式については、フォント形式を参照してください。
使用方法
Project {
...
FontFiles {
files: [...]
}
...
}以下は、FontFiles ノードで使用できるプロパティの一覧です:
指定されたディレクトリにあるすべてのフォントファイルを追加します。 | |
文字列のリストで、フォントファイルを選ぶときにどのバリアントを使うかを指定します。 | |
追加するフォントファイルのリスト。 |
TranslationFiles
このノードを使用して、プロジェクトに翻訳ファイルを追加できます (.ts)。
qmlprojectexporterは対応するツールを呼び出して、これらの翻訳ファイルを.qm に変換します。 は Qt が翻訳を管理するために使用するバイナリフォーマットです。
QMLソースでは、翻訳可能な文字列をマークするために、qsTr() またはqsTrId() を使用することができます。実行時に、翻訳システムは現在のシステムロケールの翻訳ファイルから一致する文字列を探します。
使用方法
Project {
...
TranslationFiles {
files: [...]
}
...
}TranslationFilesノードでサポートされているプロパティは次のとおりです:
ソース言語文字列を含めるかどうかを指定します。 | |
翻訳ファイルを含むディレクトリを追加します。 | |
文字列のリストで、翻訳ファイルを選択するときに使用するバリアントを指定します。 | |
翻訳ファイルのリストを追加します。 |
インターフェースファイル
このノードは C++ インタフェース固有の設定を提供します。C++ インタフェースを定義し、QML ファイルにインポートすることなく、Qml から見えるようにすることができます。qmlprojectexporterはこれらのC++インターフェースのヘッダーファイルに基づいてQMLコードを生成するので、同じプロジェクト内の別のQMLファイルから参照することができます。
使用方法
Project {
...
InterfaceFiles {
files: [...]
}
...
}InterfaceFiles ノードで利用可能なプロパティの一覧を以下に示します:
Qt Quick Ultralite に同梱されている標準ライブラリヘッダを含める | |
QML インポートを一覧表示します。 | |
C++ インタフェースファイルを含むディレクトリを指定します。 | |
文字列のリストで、ヘッダー ファイルを選択するときに使用するバリアントを指定します。 | |
C++ インターフェースファイルをリストします。 |
バイナリファイル
BinaryFiles ノードは、指定されたバイナリ資産をプロジェクトに追加します。
さらに、指定されたノードで指定されたプロパティは、qulrcc-toolがこれらのアセットを処理する方法に影響します。
同じプロジェクトに複数のBinaryFilesを持つことができ、バイナリ資産のグループごとに異なるプロパティを設定するときに必要になります。
BinaryFilesノードで所定のプロパティを定義しない場合、qmlprojectexporter 、MCU.Configノードで提供されるデフォルト値が使用されます。そこで定義されていない場合は、グローバルなデフォルト値に依存します。
使用方法
Project {
...
BinaryFiles {
files: [...]
}
...
}以下は、BinaryFiles ノードで使用可能なプロパティのリストです:
リソースのベースパスを定義します。 | |
ファイルの URI に共通のプレフィックスを追加します。 | |
バイナリ・リソースのキャッシュ・ポリシーを定義します。 | |
バイナリ・リソースのランタイム割り当てタイプを定義します。 | |
バイナリ・リソースの格納セクションを定義します。 | |
バイナリ・リソースを含むディレクトリを追加します。 | |
バイナリ・リソースのリスト。 |
バイナリ・データのバイト・アライメント |
MCU.コンフィグ
このノードを使用して、QmlProject ファイルのデフォルト値を定義できます。このノードのコンテキスト内で定義されたプロパティには、"MCU." 接頭辞は必要ありません。同じプロパティが ImageFiles や FontFiles などの特定のノードの一部である場合は、この接頭辞を使用する必要があります。
使用方法
//node1
MCU.Config {
// Project-wide default value for resourceOptimizeForRotation.
resourceOptimizeForRotation: true
}
ImageFiles {
// Here resourceOptimizeForRotation was explicitly defined for a specific ImageFiles node.
MCU.resourceOptimizeForRotation: false // requires the "MCU."prefix
}
//node2
ImageFiles {
// MCU.resourceOptimizeForRotation was not defined but the value \c true will be
// picked from MCU.Config.
}以下は、MCU.Configで使用可能なプロパティのリストです:
Qt for MCUs のデフォルト・フォント・ファイルをプロジェクトに追加します。 | |
このオプションは、静的フォントエンジンの自動グリフ生成を制御します。 | |
画像リソースのバイナリ・アセット・データのインクルード方法を定義します。 | |
複雑なスクリプトのレンダリングを有効にする | |
Qt Quick Controls のスタイルを選択します。 | |
JavaScriptバイトコードを含めるかどうかを指定します。 | |
QMLソースに#lineディレクティブを追加するかどうかを指定します。 | |
テキストアイテムのデフォルトのフォントファミリーを設定します。 | |
テキスト項目のデフォルトのフォント品質を設定します。 | |
画面の内容を時計回りに回転します。 | |
文字列のリストで、qmlproject ファイルのノードにデフォルトで使うバリアントを指定します。 | |
フォントキャッシュバッファの事前割り当てを制御します。 | |
フォントキャッシュのプライミングを制御します。 | |
フォントエンジンが使用する最大キャッシュサイズを設定します。 | |
プロジェクトのフォントエンジンを選択します。 | |
アプリケーションのフォントファイルを RAM にコピーして高速にアクセスできるように設定します。 | |
アプリケーションのフォントファイルの RAM へのコピーを制御します。 | |
フォントファイルのリソース格納セクションを設定します。 | |
フォント・エンジンが使用するヒープ・バッファの事前割り当てを制御します。 | |
フォント エンジンの最大ヒープ サイズを定義します。 | |
テキストのレンダリングにベクター・アウトラインを使用するかどうかを制御します。 | |
より高速にアクセスするために、あらかじめラスタライズされたグリフデータを RAM にコピーする設定。 | |
グリフレイアウトデータのキャッシュサイズをバイト単位で定義します。 | |
プリラスタライズされたグリフデータをRAMにコピーするときに使用されるランタイムアロケーションタイプを設定します。 | |
ラ ス タ ラ イ ズ済みグ リ フ デー タ に用い ら れ る リ ソ ース格納セ ク シ ョ ン を設定 し ます。 | |
段落の最大サイズを文字数で設定する。 | |
ランタイムアロケーションタイプの最大リソースキャッシュサイズを定義する。 | |
StaticText アイテムのグリフを 1 つの画像にまとめます。 | |
MCU.Config.platformAlphaCompressedLosslessResourcePixelFormat | 透過画像アセットのロスレス圧縮のデフォルトフォーマットを定義します。 |
透過画像アセットのデフォルトのピクセル形式。 | |
バイトスワップするリソース記憶セクションのカンマ区切りリスト | |
プラットフォーム レイヤー エンジンのデフォルトのレンダリング ヒントを設定します。 | |
画像データの最小アライメントを定義します。 | |
MCU.Config.platformOpaqueCompressedLosslessResourcePixelFormat | 不透明なイメージ アセットの可逆圧縮のためのデフォルトのピクセル フォーマットを定義します。 |
不透明な画像アセットのデフォルトのピクセル形式を定義します。 | |
画像に必要なピクセル配置を定義します。 | |
指定されたプラットフォームのレンダーバッチの高さを設定します。 | |
Safe ビットマップのランタイム割り当てタイプを定義します。 | |
セーフ ビットマップ リソースのストレージ セクションを定義します。 | |
Qt セーフレイアウトツールの CRC アルゴリズムを定義します。 | |
動的 SafeText リソースのキャッシュポリシーを定義します。 | |
SafeText-items 用のフォントファイルを含むディレクトリを提供します。 | |
動的セーフテキストの実行時の割り当てタイプを定義します。 | |
動的セーフテキストリソースのストレージセクションを定義します。 | |
デスクトップ バックエンドのローテーション機能を有効または無効にします。 | |
翻訳ファイルのリソース格納セクションを設定します。 | |
Qt Quick Ultralite Virtual Keyboardで使用するピンイン辞書を選択します。 | |
Qt Quick Ultralite Virtual Keyboardでピンイン入力メソッドを使用する。 |
複数行テキストエライディングモードを設定する | |
Qt Quick Ultralite バーチャルキーボードの幅を設定する。 |
リソースストレージセクション
このノードを使用して、リソース格納セクションのプロパティを指定できます。アプリケーションで使用する各リソース格納セクションに対して、複数のノードを指定することができます。
ノードはMCU.Configノードの子でなければなりません。
使用方法
MCU.Config {
ResourceStorageSection
{
name: "ResourceDataInInternalFlash"
majorVersion: 2
minorVersion: 1
}
ResourceStorageSection
{
name: "ResourceDataInExternalFlash"
majorVersion: 1
minorVersion: 0
}
}以下は、ResourceStorageSectionで使用可能なプロパティのリストです:
リソース格納セクションのメジャーバージョンを設定します。 | |
リソース格納セクションのマイナーバージョンを設定する | |
リソース格納セクションの名前を指定します |
MCU.モジュール
このノードの役割は、qmlprojectファイルをモジュールとして宣言することです。モジュールには、アセット、インターフェース、QML コンポーネント、および翻訳を含めることができます。qmlprojectベースのプロジェクトは、QmlProjectのModuleFilesノードを使うことで、qmlprojectベースのモジュールを利用することができます。
注: qmlproject ファイルには、MCU.Module ノードのインスタンスを 1 つ含めることができます。
使用方法
// mymodule.qmlproject
import QmlProject 1.3
Project {
MCU.Module {
uri: "custom.module"
}
QmlFiles {
files: ["CustomBox.qml"]
}
}
// CustomBox.qml
// ... some qml code
// main.qmlproject
import QmlProject 1.3
Project {
QmlFiles {
files: ["main.qml"]
}
ModuleFiles {
files: ["mymodule.qmlproject"]
}
// main.qml
import QtQuick 2.15
import custom.module
Rectangle {
CustomBox {}
}Qulモジュール
Qt Quick Ultraliteには、ModuleFiles.MCU.qulModulesでプロジェクトが使用できる以下の定義済みモジュールが付属しています:
- コントロール
- コントロールテンプレート
- レイアウト
- ロケーション
- プロファイリング
- ポジショニング
- セーフレンダラー
- シェイプ
- スタジオコンポーネント
- タイムライン
- バーチャルキーボード
以下は、MCU.Moduleノードで使用可能なプロパティのリストです:
モジュールのタイプ情報ファイルを生成します。 | |
モジュールのURIを定義します。 |
モジュール・ファイル
このノードを使用して、QML モジュールをプロジェクトにインポートすることができます。
使用方法
Project {
...
ModuleFiles {
MCU.qulModules: [...]
...
}
...
}ModuleFiles ノードで使用できるプロパティの一覧は次のとおりです:
プロジェクトがリンクするQt Quick Ultralite モジュールのリスト。 | |
QML モジュールファイルを含むディレクトリを追加します。 | |
モジュールファイルを選択するときに使用するバリアントを指定する文字列のリスト。 | |
qmlproject ファイルのリストを追加します。 |
コマンドラインリファレンス
qmlprojectexporter
qmlprojectexporterはQMLソース、画像アセット、フォントをコンパイル可能なc++コードにエクスポートするために使用します。.qmlproject QMLソースとイメージアセット、フォントをコンパイル可能なc++コードにエクスポートするには、qmlprojectexporterを使ってください。さらに、qmlprojectexporterは、CMakeのようなサードパーティのビルドシステムで自動的に使用するのに便利な、インポートおよびエクスポートされたファイルのプレーンテキストリストもエクスポートします。
CMake プロジェクトでのqmlprojectexporter の使用法
qmlprojectexporter を CMake のビルドシステムで使うのは簡単で、qul_add_target というCMake のカスタムマクロが、qmlprojectexporter を適切なパラメータで呼び出してくれます。
// Adding the \l GENERATE_ENTRYPOINT option will generate an application entrypoint automatically, // but it requires setting the \l Project.mainFile property qul_add_target(my_project QML_PROJECT my_project.qmlproject GENERATE_ENTRYPOINT) // Note for a working Qul application with CMake it is still required to call \l app_target_setup_os macro // after adding the qmlproject target. app_target_setup_os(myproject)
qmlprojectexporter を使う場合、qmlprojectexporter を呼び出すと同じ機能を実行することになるので、以下の CMake マクロは必要ありません。
- qul_target_qml_sources
- qul_target_generate_interfaces
- qul_target_embed_translations
- qul_add_qml_module
QmlProject に置き換わる全ての CMake フラグは、CMake マニュアルで非推奨とされています。
スタンドアロンqmlprojectexporter
CMake 以外のビルドシステムを使う場合でも、qmlprojectexporter を直接使うことができます。生成されたアセットファイルを任意のビルドシステムで使用することができます。
qmlprojectexporter --outdir output_directory myproject.qmlproject
以下はqmlprojectexporter のコマンドライン引数の拡張リストです:
ボードSDKへのパス | |
ボードのデフォルトプロパティ値を持つ BoardDefaults<@op>.</@op>qmlprojectconfig ファイルへのパス | |
オーバーライドコントロールスタイル | |
インターフェース・ファイルに使用するC++標準の指定 | |
生成されるコードに含まれるランタイム情報のレベル。 | |
既存のプロジェクトを更新するときにプラットフォーム・ソースを再エクスポートするには、このフラグを使用します。 | |
既存のプロジェクトをQt for MCUs で拡張します。 | |
グローバルデフォルト値とオプションのボードデフォルト値を含むファイルを生成する | |
qmlprojectexporter がデフォルトのアプリケーション・エントリ・ポイントを生成するかどうかを制御します。 | |
リソースバイナリの生成を強制します。 | |
コマンドラインパラメータのリスト | |
IDE からコピーしたハードウェア・コード・ソース・ファイルの出力ディレクトリ。 | |
インクルード・ディレクトリのカンマ区切りリスト。 | |
IDE が生成したハードウェア・コードをプロジェクトに含めます。 | |
ResourceGenerator.exeへのパス(TRAVEO T2GボードでのRLEサポート用) | |
ビルドシステムの設定情報のエクスポートを無効にするコマンドラインオプション。 | |
C++ソースのエクスポートを無効にします。 | |
プロジェクト内のモジュールのエクスポートを無効にします。 | |
このフラグを使用して、生成されたプロジェクト内のプラットフォーム・ソースをエクスポートしないようにします。 | |
QmlProject のエクスポートをスキップします。 | |
出力ディレクトリ。 | |
並列プロセスの最大数。 | |
対象とするプラットフォームの識別子(オプション | |
カスタマイズされたプラットフォームのビルド・ディレクトリ | |
プラットフォーム・ターゲットを記述するメタデータ・ファイル。 | |
エクスポートされたプラットフォーム・ソースの出力ディレクトリ。 | |
IDE プロジェクト・ファイルの出力ディレクトリ。 | |
エクスポートされるプロジェクトのタイプを設定します。 | |
カスタム QML モジュールとデフォルト・モジュールのマッピング・ファイルが含まれるディレクトリーへのパスを指定します。 | |
生成されたファイルの出力ディレクトリ。 | |
Qt Quick Ultralite ライブラリのビルドタイプを設定します。 | |
rc.exeへのパス(MSVCツールチェーンの場合)。 | |
プロジェクトのバリアントを選択するセレクタのカンマ区切りリスト。 | |
生成されたソース・ファイルを使用するターゲットのタイプを指定します。 | |
生成されたファイルのコンパイルに使用するツールチェーンを指定します。 | |
既存のプロジェクトのQt for MCUs 部分を更新します。 | |
翻訳ファイルの更新を有効にする | |
他のツールの呼び出しを標準出力に出力します。 | |
qmlprojectファイルへのパスを指定します。 |
qmlprojectexporterの生成ファイル
出力ディレクトリに生成されるファイルは、使用するコマンドライン引数によって異なります。プロジェクトのビルドプロセスでqmlprojectexporter がどのような役割を果たすかをよりよく理解するには、Qt Quick Ultralite tools を参照してください。 次の例によって生成される可能性のあるファイルのリストは次のとおりです:
次のスタートアッププロジェクトファイルを考えてみましょう:
| 定数 | 説明 |
|---|---|
my_project.qmlproject | プロジェクトのメイン設定ファイル |
main.qml | プロジェクトのエントリポイントファイル |
エクスポートなし
qmlprojectexporter --no-export-cpp --no-export-modules --no-export-configuration --outdir output my_project.qmlproject
このコマンドを実行すると、output ディレクトリが作成されますが、すべてのエクスポートが無効になるため、その中にファイルは作成されません。
エクスポート設定
qmlprojectexporter --no-export-cpp --no-export-modules --outdir output my_project.qmlproject
no-export-configuration引数を削除すると、以下のファイルが作成されます:
| 定数 | 説明 |
|---|---|
output/config/my_project.1.compiler_outputs.txt | Qt Quick Ultraliteツールによって生成されたすべてのファイルをリストします。 |
output/config/my_project.1.input.txt | qmlprojectexporter 、c++ファイルを生成するために使用される入力ファイルを示します。my_projectの場合は、main.qml のみです。 |
output/config/my_project.1.libraries.txt | ビルドシステムがビルドを成功させるためにリンクする必要があるライブラリをリストします。 |
output/config/my_project.1.linker_options.txt | ビルドシステムがプロジェクトをビルドするために追加しなければならないリンカーオプションを示します。 |
先ほどのコマンドを使うと、ファイルを生成するオーバーヘッドなしに、プロジェクトが期待するリソースや設定に関する情報を取得することができます。
CPPファイルのエクスポート
qmlprojectexporter --no-export-modules --outdir output my_project.qmlproject
--no-export-configuration を削除するとコンフィギュレーションが一覧表示されますが、--no-export-cpp を削除すると、プロジェクトの実際のCPP ファイルがすべて生成されます。 Qt Quick Ultralite toolsでは、どのツールがどのファイルを担当するかを紹介しています。
モジュールのエクスポート
qmlprojectexporter --outdir output my_project.qmlproject
先ほどの例でqmlprojectexporter を--no-export-modulesなしで実行しても、この例ではモジュールファイルを使用していないため、出力フォルダに大きな影響はありません。しかし、プロジェクトがモジュールとともに完全にエクスポートされると、サードパーティツールが使用する出力ディレクトリに2つのファイルが表示されます。これらのファイルは
| 定数 | 説明 |
|---|---|
output/config/input.json | プロジェクトが使用するすべての入力、プロジェクトがインポートしたモジュールが使用するファイル、インポートしたモジュールが使用するファイルを再帰的にリストした構造化されたファイルです。 |
generate_files.txt | キーと値のペアを保持し、CMake がどのエントリポイントファイルqmlprojectexporter を生成するかを推測するために使用します。生成されるファイルはアプリケーションのターゲットタイプ (実行可能ファイル|static_library) によって異なる可能性があるため、主に -generate-entypoint を指定するときに使用されます。 |
--no-export-modules の主な効果を見るために、新しいプロジェクト・ファイルを考えてみましょう:
| 定数 | 説明 |
|---|---|
module1/module1.qmlproject | ModuleFiles を使って my_project.qmlproject にインポートされた module1 の設定ファイル。 |
module1/module1.qml | module1 の QmlFiles に存在する Qml ファイル。main.qml |
新しいファイルを使って先のqmlprojectexporter コマンドを実行すると、次のようになります:
| 定数 | 説明 |
|---|---|
output/module1/* | output/ フォルダーと同様のmodule1 用に生成されたCPP ファイルを含むフォルダー。 |
output/config/module1.1.compiler_outputs.txt | Qt Quick Ultralite ツールがmodule1 用に生成するすべてのファイルをリストします。 |
output/config/module1.1.input.txt | module1 c++ ファイルの生成に使用されるファイルを示します。 |
output/config/module1.1.libraries.txt | module1 によって導入された、より多くのライブラリーの依存関係を示します。 |
output/config/module1.1.linker_options.txt | module1 によって導入されるリンカー・オプションを示します。 |
qmlprojectexporter no-export-modulesを省略し、--no-export-cppを使用すると、設定txtファイルが生成されます。
デフォルトのアプリケーション・エントリポイントを持つモジュールのエクスポート
次のステップで生成されるファイルは、既存のエントリーポイントがある場合には必要ありません。以下のコマンドを考慮してください:
//[1] qmlprojectexporter --generate-entrypoint --target-type executable --outdir output my_project.qmlproject //[2] qmlprojectexporter --generate-entrypoint --target-type static_library --outdir output my_project.qmlproject
qmlprojectexporter --target-type フラグによって、生成されたファイルのリストに新しいファイルを追加します。
実行可能ファイルを使う場合
| 定数 | 説明 |
|---|---|
output/main.cpp | アプリケーションのmain()関数を含むmain.cpp。 |
static_library を使用する場合:
| 定数 | 説明 |
|---|---|
output/qul_run.h | 静的ライブラリのインターフェイス。 |
output/my_project_qul_run.cpp | 静的ライブラリーのインターフェースの実装。 |
qulpreview (テクニカルプレビュー)
用語解説
- Profiler - QMLプロジェクトを特定のプラットフォームにデプロイする方法を記述したJSONドキュメント。デフォルトでは、現在の作業ディレクトリの
profilesディレクトリから探します(--profile-dirコマンドライン引数で上書き可能)。今のところプロファイルのJSONスキーマはありませんが、構造はとてもシンプルです。各プロファイルの構成は以下の通り:- プロファイルID。これはプロファイルを参照するために使用されるため、一意でなければならない。
- 任意で人間が読めるプロファイル名
- 任意で人間が読めるプロファイルの説明
- ユーザー定義変数の配列(以下を参照)。
- ワークフローの配列 (下記参照)
- 変数 - レシピや他の変数で使用できる名前と値のペア。
- ワークフロー - ターゲットプラットフォームでの自己閉鎖的な操作(デプロイ、更新、クリーニングなど)。各ワークフローには以下が含まれる:
- プロファイルを明確に識別する一意のワークフローID
- オプションの人間が読める名前
- オプションの人間が読める説明
- 実行するレシピ(下記参照
- レシピ - 実行するステップ(下記参照)の配列。
- ステップ - 何がどのように起動されるべきかを記述した単一のデプロイコマンド。以下の内容で構成されます:
- 実行するコマンド。シェルで実行されないため、シェルコマンドは使用できません。
- オプションでコマンドライン引数の配列
- オプションで、追加の環境変数の配列。これらは環境に追加されるか、同じ名前の変数がすでに存在する場合は、システム環境の変数を上書きするために使用される。
qulpreview は、QMLプロジェクトをターゲットプラットフォームに素早く簡単にデプロイするために使用できます。最も基本的なシナリオでは、次のように使用します:
qulpreview <QMLPROJECT>
<QMLPROJECT> はプロジェクトの.qmlproject ファイルへのパスです。--profile <PROFILE_ID> と--workflow <WORKFLOW_ID> のコマンドライン引数を使用すると、動作をさらにカスタマイズできます。<PROFILE_ID> と<WORKFLOW_ID> はそれぞれ、ターゲットプロファイルの ID と、デプロイ手順を記述するワークフローの ID です。
win-mingw linux-gcc 現在の技術プレビューでは、Qt for MCUs の 2 つのプロファイルのみがバンドルされており、どちらもデスクトップ Qt を対象としています。
注意: この 2 つのプロファイルでは、特に Qt のインストール場所について多くの仮定がなされており、少々脆弱です。今後、改良と追加プロファイルが期待されます。また、ユーザーは、作業するボード用に独自のプロファイルを作成することが推奨されます。
利用可能なプロファイルのリストは、qulpreview --list-profiles を実行することで得られます。
プロファイルは変数を利用して、パターンの繰り返しを最小限に抑えることができる。構文は${VAR_NAME} 。
注: 変数の置換ロジックは非常に基本的です:変数は定義順に展開されるので、変数の後に定義された変数を含まないようにしてください。
環境変数も利用可能で、${env:PATH} のようにenv: という接頭辞を使って参照できます。
プロファイル作成者の便宜のために、このツールはいくつかの定義済みの、主にプロジェクト関連の変数を提供しています:
OUT_DIR-qulpreviewはそれ自体では成果物を生成しませんが、ツールの出力をカスタマイズするためのレシピでこの変数を使用できます。--out-dirコマンドラインパラメーターで指定できる。PROJECT_FILE_PATH-.qmlprojectファイルへのフルパス(プロジェクトファイル自体を含む)PROJECT_FILE_NAME- プロジェクトファイル名(拡張子あり)PROJECT_BASE_NAME- プロジェクトファイル名(拡張子なし)PROJECT_DIR- プロジェクト・ファイルの親ディレクトリ
注: ユーザー定義変数名と定義済み変数名は大文字と小文字を区別します。環境変数については、ホストシステムに依存します。
レシピのステップは順次実行され、あるステップが失敗した場合(開始できない、クラッシュした、0 以外のコードで終了したなど)、それに続くステップは実行されない。
qulpreview でエラーが発生した場合、EXIT_FAILURE のエラーコードで終了し、stderr にエラーが出力される。
以下は、qulpreview コマンドライン引数の拡張リストである:
コマンドライン引数の一覧。 | |
利用可能なプロファイルを一覧表示します。 | |
出力ディレクトリへのパスを指定します。 | |
使用するプロファイルの ID。 | |
プロファイル定義ファイルを含むディレクトリ。 | |
使用するワークフローの ID。 |
特定の Qt ライセンスの下で利用可能です。
詳細はこちら。