このページでは

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ノードで使用可能なプロパティのリストです:

Project.idBasedTranslations

テキストIDに基づく翻訳を有効にします。

Project.importPaths

モジュールファイルが存在するパスのリスト。

Project.mainFile

QML ソース・ファイルは、アプリケーションの最初の UI 画面を定義します。

Project.primaryLanguage

アプリケーションの主要言語を設定します。

Project.projectRootPath

プロジェクトのルートパス

Project.qtForMCUs

プロジェクトをQt for MCUs プロジェクトとしてマークするフラグ

QmlFiles

このノードを使うと、プロジェクトの QML ファイルを一覧表示できます。QML ファイルには、相対パスと絶対パスの両方を使用できます。

注意: 相対パスはqmlproject ファイルからの相対パスでなければなりません。

使用方法

QmlFiles {
    files: ["src/other.qml"]
}

QmlFilesノードで利用可能なプロパティの一覧は以下の通りです:

QmlFiles.copyQmlFiles

QML ファイルを出力ディレクトリにコピーします。

QmlFiles.directory

QML ファイルを含むディレクトリ

QmlFiles.fileSelector

文字列のリスト。QML ファイルを選択する際に使用するバリアントを指定します。

QmlFiles.files

QML ファイルのリスト。

画像ファイル

ImageFiles ノードは、指定された画像アセットをプロジェクトに追加します。

さらに、与えられたノードで指定されたプロパティは、qulrcc-toolがこれらのアセットをどのようにエンコードするかに影響します。

同じプロジェクトに複数のImageFilesを持つことができ、画像のグループごとに異なるプロパティを設定するときに必要になります。

ImageFilesノードで指定されたプロパティを定義しない場合、qmlprojectexporterMCU.Configノードで提供されたデフォルト値が使用されます。そこで定義されていない場合は、グローバルなデフォルト値に依存します。

使用方法

Project {
    ...
    ImageFiles {
        files: [...]
        MCU.resourceOptimizeForRotation: true
    }
    ...
}

以下は、ImageFiles ノードで使用可能なプロパティの一覧です:

ImageFiles.MCU.base

アセットのベースパスを定義します。

ImageFiles.MCU.prefix

ファイルのURIに共通のプレフィックスを追加します。

ImageFiles.MCU.resourceAnimatedSprite

AnimatedSpriteDirectory のフレームとして使用できるイメージを特定します。

ImageFiles.MCU.resourceAnimatedSpriteFrameHeight

スプライト・アニメーションのリソース最適化のために、フレームの高さを指定します。

ImageFiles.MCU.resourceAnimatedSpriteFrameWidth

スプライトアニメーションのリソース最適化のためのフレーム幅を指定します。

ImageFiles.MCU.resourceAnimatedSpriteOptimizations

使用する切り抜き画像の最適化モードを指定します。

ImageFiles.MCU.resourceAsFile

ImageFiles.MCU.resourceCachePolicy

画像のキャッシュポリシーを指定します。

ImageFiles.MCU.resourceCompression

画像を圧縮して保存します。

ImageFiles.MCU.resourceImagePixelFormat

画像アセットの優先ピクセルフォーマットを設定します。

ImageFiles.MCU.resourceKeepRawData

アセット内のオリジナルデータをそのまま保持します。

ImageFiles.MCU.resourceOptimizeForRotation

実行時に画像を回転させる最適化を有効にします。

ImageFiles.MCU.resourceOptimizeForScale

実行時に画像を拡大縮小するための最適化を有効にする。

ImageFiles.MCU.resourceRuntimeAllocationType

アセットのランタイム割り当てタイプを定義する。

ImageFiles.MCU.resourceStorageSection

アセットのストレージセクションを定義します。

ImageFiles.directory

画像アセットのあるディレクトリを追加します。

ImageFiles.fileSelector

文字列のリストで、画像ファイルを選ぶときに使うバリアントを指定します。

ImageFiles.files

画像アセットのリスト。

実験的なプロパティ:

ImageFiles.MCU.Experimental.resourceAlignment

テクスチャデータのバイトアライメント

ImageFiles.MCU.Experimental.resourceEnableSVGScaling

resourceSVGScale を有効にする。

ImageFiles.MCU.Experimental.resourceSVGScale

SVG 画像のスケーリング係数

ImageFiles.MCU.Experimental.resourceSplitImageOptimization

画像を不透明セグメントに分割する最適化を有効にする。

フォントファイル

このノードを使用すると、プロジェクトで必要なフォントファイルを一覧表示できます。サポートされているフォントファイル形式については、フォント形式を参照してください。

使用方法

Project {
    ...
    FontFiles {
        files: [...]
    }
    ...
}

以下は、FontFiles ノードで使用できるプロパティの一覧です:

FontFiles.directory

指定されたディレクトリにあるすべてのフォントファイルを追加します。

FontFiles.fileSelector

文字列のリストで、フォントファイルを選ぶときにどのバリアントを使うかを指定します。

FontFiles.files

追加するフォントファイルのリスト。

TranslationFiles

このノードを使用して、プロジェクトに翻訳ファイルを追加できます (.ts)。

qmlprojectexporterは対応するツールを呼び出して、これらの翻訳ファイルを.qm に変換します。 は Qt が翻訳を管理するために使用するバイナリフォーマットです。

QMLソースでは、翻訳可能な文字列をマークするために、qsTr() またはqsTrId() を使用することができます。実行時に、翻訳システムは現在のシステムロケールの翻訳ファイルから一致する文字列を探します。

使用方法

Project {
    ...
    TranslationFiles {
        files: [...]
    }
    ...
}

TranslationFilesノードでサポートされているプロパティは次のとおりです:

TranslationFiles.MCU.omitSourceLanguage

ソース言語文字列を含めるかどうかを指定します。

TranslationFiles.directory

翻訳ファイルを含むディレクトリを追加します。

TranslationFiles.fileSelector

文字列のリストで、翻訳ファイルを選択するときに使用するバリアントを指定します。

TranslationFiles.files

翻訳ファイルのリストを追加します。

インターフェースファイル

このノードは C++ インタフェース固有の設定を提供します。C++ インタフェースを定義し、QML ファイルにインポートすることなく、Qml から見えるようにすることができます。qmlprojectexporterはこれらのC++インターフェースのヘッダーファイルに基づいてQMLコードを生成するので、同じプロジェクト内の別のQMLファイルから参照することができます。

使用方法

Project {
    ...
    InterfaceFiles {
        files: [...]
    }
    ...
}

InterfaceFiles ノードで利用可能なプロパティの一覧を以下に示します:

InterfaceFiles.MCU.includeStdHeaders

Qt Quick Ultralite に同梱されている標準ライブラリヘッダを含める

InterfaceFiles.MCU.qmlImports

QML インポートを一覧表示します。

InterfaceFiles.directory

C++ インタフェースファイルを含むディレクトリを指定します。

InterfaceFiles.fileSelector

文字列のリストで、ヘッダー ファイルを選択するときに使用するバリアントを指定します。

InterfaceFiles.files

C++ インターフェースファイルをリストします。

バイナリファイル

BinaryFiles ノードは、指定されたバイナリ資産をプロジェクトに追加します。

さらに、指定されたノードで指定されたプロパティは、qulrcc-toolがこれらのアセットを処理する方法に影響します。

同じプロジェクトに複数のBinaryFilesを持つことができ、バイナリ資産のグループごとに異なるプロパティを設定するときに必要になります。

BinaryFilesノードで所定のプロパティを定義しない場合、qmlprojectexporterMCU.Configノードで提供されるデフォルト値が使用されます。そこで定義されていない場合は、グローバルなデフォルト値に依存します。

使用方法

Project {
    ...
    BinaryFiles {
        files: [...]
    }
    ...
}

以下は、BinaryFiles ノードで使用可能なプロパティのリストです:

BinaryFiles.MCU.base

リソースのベースパスを定義します。

BinaryFiles.MCU.prefix

ファイルの URI に共通のプレフィックスを追加します。

BinaryFiles.MCU.resourceCachePolicy

バイナリ・リソースのキャッシュ・ポリシーを定義します。

BinaryFiles.MCU.resourceRuntimeAllocationType

バイナリ・リソースのランタイム割り当てタイプを定義します。

BinaryFiles.MCU.resourceStorageSection

バイナリ・リソースの格納セクションを定義します。

BinaryFiles.directory

バイナリ・リソースを含むディレクトリを追加します。

BinaryFiles.files

バイナリ・リソースのリスト。

実験的プロパティ:

BinaryFiles.MCU.Experimental.resourceAlignment

バイナリ・データのバイト・アライメント

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で使用可能なプロパティのリストです:

MCU.Config.addDefaultFonts

Qt for MCUs のデフォルト・フォント・ファイルをプロジェクトに追加します。

MCU.Config.autoGenerateGlyphs

このオプションは、静的フォントエンジンの自動グリフ生成を制御します。

MCU.Config.binaryAssetOptions

画像リソースのバイナリ・アセット・データのインクルード方法を定義します。

MCU.Config.complexTextRendering

複雑なスクリプトのレンダリングを有効にする

MCU.Config.controlsStyle

Qt Quick Controls のスタイルを選択します。

MCU.Config.debugBytecode

JavaScriptバイトコードを含めるかどうかを指定します。

MCU.Config.debugLineDirectives

QMLソースに#lineディレクティブを追加するかどうかを指定します。

MCU.Config.defaultFontFamily

テキストアイテムのデフォルトのフォントファミリーを設定します。

MCU.Config.defaultFontQuality

テキスト項目のデフォルトのフォント品質を設定します。

MCU.Config.displayRotationAngle

画面の内容を時計回りに回転します。

MCU.Config.fileSelector

文字列のリストで、qmlproject ファイルのノードにデフォルトで使うバリアントを指定します。

MCU.Config.fontCachePrealloc

フォントキャッシュバッファの事前割り当てを制御します。

MCU.Config.fontCachePriming

フォントキャッシュのプライミングを制御します。

MCU.Config.fontCacheSize

フォントエンジンが使用する最大キャッシュサイズを設定します。

MCU.Config.fontEngine

プロジェクトのフォントエンジンを選択します。

MCU.Config.fontFilesCachePolicy

アプリケーションのフォントファイルを RAM にコピーして高速にアクセスできるように設定します。

MCU.Config.fontFilesRuntimeAllocationType

アプリケーションのフォントファイルの RAM へのコピーを制御します。

MCU.Config.fontFilesStorageSection

フォントファイルのリソース格納セクションを設定します。

MCU.Config.fontHeapPrealloc

フォント・エンジンが使用するヒープ・バッファの事前割り当てを制御します。

MCU.Config.fontHeapSize

フォント エンジンの最大ヒープ サイズを定義します。

MCU.Config.fontVectorOutlinesDrawing

テキストのレンダリングにベクター・アウトラインを使用するかどうかを制御します。

MCU.Config.glyphsCachePolicy

より高速にアクセスするために、あらかじめラスタライズされたグリフデータを RAM にコピーする設定。

MCU.Config.glyphsLayoutCacheSize

グリフレイアウトデータのキャッシュサイズをバイト単位で定義します。

MCU.Config.glyphsRuntimeAllocationType

プリラスタライズされたグリフデータをRAMにコピーするときに使用されるランタイムアロケーションタイプを設定します。

MCU.Config.glyphsStorageSection

ラ ス タ ラ イ ズ済みグ リ フ デー タ に用い ら れ る リ ソ ース格納セ ク シ ョ ン を設定 し ます。

MCU.Config.maxParagraphSize

段落の最大サイズを文字数で設定する。

MCU.Config.maxResourceCacheSize

ランタイムアロケーションタイプの最大リソースキャッシュサイズを定義する。

MCU.Config.mergeStaticTextGlyphs

StaticText アイテムのグリフを 1 つの画像にまとめます。

MCU.Config.platformAlphaCompressedLosslessResourcePixelFormat

透過画像アセットのロスレス圧縮のデフォルトフォーマットを定義します。

MCU.Config.platformAlphaPixelFormat

透過画像アセットのデフォルトのピクセル形式。

MCU.Config.platformByteSwapResourceStorageSections

バイトスワップするリソース記憶セクションのカンマ区切りリスト

MCU.Config.platformDefaultLayerRenderingHints

プラットフォーム レイヤー エンジンのデフォルトのレンダリング ヒントを設定します。

MCU.Config.platformImageAlignment

画像データの最小アライメントを定義します。

MCU.Config.platformOpaqueCompressedLosslessResourcePixelFormat

不透明なイメージ アセットの可逆圧縮のためのデフォルトのピクセル フォーマットを定義します。

MCU.Config.platformOpaquePixelFormat

不透明な画像アセットのデフォルトのピクセル形式を定義します。

MCU.Config.platformPixelWidthAlignment

画像に必要なピクセル配置を定義します。

MCU.Config.platformRenderBatchHeight

指定されたプラットフォームのレンダーバッチの高さを設定します。

MCU.Config.safeBitmapRuntimeAllocationType

Safe ビットマップのランタイム割り当てタイプを定義します。

MCU.Config.safeBitmapStorageSection

セーフ ビットマップ リソースのストレージ セクションを定義します。

MCU.Config.safeRendererCrcAlgorithm

Qt セーフレイアウトツールの CRC アルゴリズムを定義します。

MCU.Config.safeTextCachePolicy

動的 SafeText リソースのキャッシュポリシーを定義します。

MCU.Config.safeTextFontDirectory

SafeText-items 用のフォントファイルを含むディレクトリを提供します。

MCU.Config.safeTextRuntimeAllocationType

動的セーフテキストの実行時の割り当てタイプを定義します。

MCU.Config.safeTextStorageSection

動的セーフテキストリソースのストレージセクションを定義します。

MCU.Config.showDesktopPreviewInNaturalDisplayOrientation

デスクトップ バックエンドのローテーション機能を有効または無効にします。

MCU.Config.translationStorageSection

翻訳ファイルのリソース格納セクションを設定します。

MCU.Config.vkbPinyinDictionary

Qt Quick Ultralite Virtual Keyboardで使用するピンイン辞書を選択します。

MCU.Config.vkbPinyinSupport

Qt Quick Ultralite Virtual Keyboardでピンイン入力メソッドを使用する。

実験的なプロパティです:

MCU.Config.Experimental.multiLineElide

複数行テキストエライディングモードを設定する

MCU.Config.Experimental.vkbScreenWidth

Qt Quick Ultralite バーチャルキーボードの幅を設定する。

リソースストレージセクション

このノードを使用して、リソース格納セクションのプロパティを指定できます。アプリケーションで使用する各リソース格納セクションに対して、複数のノードを指定することができます。

ノードはMCU.Configノードの子でなければなりません。

使用方法

MCU.Config {
        ResourceStorageSection
        {
            name: "ResourceDataInInternalFlash"
            majorVersion: 2
            minorVersion: 1
        }

        ResourceStorageSection
        {
            name: "ResourceDataInExternalFlash"
            majorVersion: 1
            minorVersion: 0
        }
}

以下は、ResourceStorageSectionで使用可能なプロパティのリストです:

ResourceStorageSection.majorVersion

リソース格納セクションのメジャーバージョンを設定します。

ResourceStorageSection.minorVersion

リソース格納セクションのマイナーバージョンを設定する

ResourceStorageSection.name

リソース格納セクションの名前を指定します

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ノードで使用可能なプロパティのリストです:

MCU.Module.generateQmltypes

モジュールのタイプ情報ファイルを生成します。

MCU.Module.uri

モジュールのURIを定義します。

モジュール・ファイル

このノードを使用して、QML モジュールをプロジェクトにインポートすることができます。

使用方法

Project {
    ...
    ModuleFiles {
        MCU.qulModules: [...]
        ...
    }
    ...
}

ModuleFiles ノードで使用できるプロパティの一覧は次のとおりです:

ModuleFiles.MCU.qulModules

プロジェクトがリンクするQt Quick Ultralite モジュールのリスト。

ModuleFiles.directory

QML モジュールファイルを含むディレクトリを追加します。

ModuleFiles.fileSelector

モジュールファイルを選択するときに使用するバリアントを指定する文字列のリスト。

ModuleFiles.files

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 マクロは必要ありません。

QmlProject に置き換わる全ての CMake フラグは、CMake マニュアルで非推奨とされています。

スタンドアロンqmlprojectexporter

CMake 以外のビルドシステムを使う場合でも、qmlprojectexporter を直接使うことができます。生成されたアセットファイルを任意のビルドシステムで使用することができます。

qmlprojectexporter --outdir output_directory myproject.qmlproject

以下はqmlprojectexporter のコマンドライン引数の拡張リストです:

--board-sdk

ボードSDKへのパス

--boarddefaults

ボードのデフォルトプロパティ値を持つ BoardDefaults<@op>.</@op>qmlprojectconfig ファイルへのパス

--controls-style

オーバーライドコントロールスタイル

--cxx-standard

インターフェース・ファイルに使用するC++標準の指定

--debug-rtti-information

生成されるコードに含まれるランタイム情報のレベル。

--export-platform

既存のプロジェクトを更新するときにプラットフォーム・ソースを再エクスポートするには、このフラグを使用します。

--extend-project

既存のプロジェクトをQt for MCUs で拡張します。

--generate-default-values

グローバルデフォルト値とオプションのボードデフォルト値を含むファイルを生成する

--generate-entrypoint

qmlprojectexporter がデフォルトのアプリケーション・エントリ・ポイントを生成するかどうかを制御します。

--generate-resource-binaries

リソースバイナリの生成を強制します。

--help

コマンドラインパラメータのリスト

--ide-sources-outdir

IDE からコピーしたハードウェア・コード・ソース・ファイルの出力ディレクトリ。

--include-dirs

インクルード・ディレクトリのカンマ区切りリスト。

--include-ide-generated-hw-code

IDE が生成したハードウェア・コードをプロジェクトに含めます。

--infineon-resource-generator

ResourceGenerator.exeへのパス(TRAVEO T2GボードでのRLEサポート用)

--no-export-configuration

ビルドシステムの設定情報のエクスポートを無効にするコマンドラインオプション。

--no-export-cpp

C++ソースのエクスポートを無効にします。

--no-export-modules

プロジェクト内のモジュールのエクスポートを無効にします。

--no-export-platform

このフラグを使用して、生成されたプロジェクト内のプラットフォーム・ソースをエクスポートしないようにします。

--no-export-qml

QmlProject のエクスポートをスキップします。

--outdir

出力ディレクトリ。

--parallel

並列プロセスの最大数。

--platform

対象とするプラットフォームの識別子(オプション

--platform-build-dir

カスタマイズされたプラットフォームのビルド・ディレクトリ

--platform-metadata

プラットフォーム・ターゲットを記述するメタデータ・ファイル。

--platform-outdir

エクスポートされたプラットフォーム・ソースの出力ディレクトリ。

--project-outdir

IDE プロジェクト・ファイルの出力ディレクトリ。

--project-type

エクスポートされるプロジェクトのタイプを設定します。

--qml-mappings-dir

カスタム QML モジュールとデフォルト・モジュールのマッピング・ファイルが含まれるディレクトリーへのパスを指定します。

--qmlproject-outdir

生成されたファイルの出力ディレクトリ。

--qul-build-type

Qt Quick Ultralite ライブラリのビルドタイプを設定します。

--resource-compiler

rc.exeへのパス(MSVCツールチェーンの場合)。

--selector

プロジェクトのバリアントを選択するセレクタのカンマ区切りリスト。

--target-type

生成されたソース・ファイルを使用するターゲットのタイプを指定します。

--toolchain

生成されたファイルのコンパイルに使用するツールチェーンを指定します。

--update-project

既存のプロジェクトのQt for MCUs 部分を更新します。

--update-translations

翻訳ファイルの更新を有効にする

--verbose

他のツールの呼び出しを標準出力に出力します。

qmlprojectfile

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.txtQt Quick Ultraliteツールによって生成されたすべてのファイルをリストします。
output/config/my_project.1.input.txtqmlprojectexporter 、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.qmlprojectModuleFiles を使って my_project.qmlproject にインポートされた module1 の設定ファイル。
module1/module1.qmlmodule1 の QmlFiles に存在する Qml ファイル。main.qml

新しいファイルを使って先のqmlprojectexporter コマンドを実行すると、次のようになります:

定数説明
output/module1/*output/ フォルダーと同様のmodule1 用に生成されたCPP ファイルを含むフォルダー。
output/config/module1.1.compiler_outputs.txtQt Quick Ultralite ツールがmodule1 用に生成するすべてのファイルをリストします。
output/config/module1.1.input.txtmodule1 c++ ファイルの生成に使用されるファイルを示します。
output/config/module1.1.libraries.txtmodule1 によって導入された、より多くのライブラリーの依存関係を示します。
output/config/module1.1.linker_options.txtmodule1 によって導入されるリンカー・オプションを示します。

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 コマンドライン引数の拡張リストである:

qulpreview --help

コマンドライン引数の一覧。

qulpreview --list-profiles

利用可能なプロファイルを一覧表示します。

qulpreview --out-dir

出力ディレクトリへのパスを指定します。

qulpreview --profile

使用するプロファイルの ID。

qulpreview --profile-dir

プロファイル定義ファイルを含むディレクトリ。

qulpreview --workflow

使用するワークフローの ID。

特定の Qt ライセンスの下で利用可能です。
詳細はこちら。