このページでは

C

QmlProject マニュアル

はじめに

qmlprojectexporter は、プロジェクトに含まれるすべてのリソースおよび .qml ファイルに対して、C++ コードを自動生成できるツールです。リソースには、Qml ファイル、画像、フォントファイル、翻訳ファイル、および C++ インターフェースが含まれます。qmlprojectexporter の主な引数として、.qmlproject ファイルを指定する必要があります。このファイルはプロジェクトの構造を定義しており、他の .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など、1回しか定義できないノードもあります。

プロパティ

.qmlproject ファイル内のプロパティは、設定パラメータと見なすことができます。各ノードには、設定可能な値の事前定義されたセットがあります。

プロジェクトファイル内で設定をサポートするすべてのノードに対し、MCU.Configノード内に配置することで設定を割り当てることができます。また、MCU.Config で定義された値は、対応するプロパティがデフォルトのノード(ImageFilesなど)に見つからない場合に有効になります。 これらの設定プロパティには「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

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

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

FontFiles

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

使用方法

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

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

InterfaceFiles

このノードは、C++インターフェース固有の設定を提供します。QMLファイルにインポートすることなく、C++インターフェースを定義し、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.Config

このノードを使用すると、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 コントロールのスタイルを選択します。

MCU.Config.debugBytecode

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

MCU.Config.debugLineDirectives

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

MCU.Config.defaultFontFamily

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

MCU.Config.defaultFontQuality

Text アイテムのデフォルトのフォント品質を設定します。

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.ideographicCharacterWrap

WordWrapモードにおけるCJK表意文字の改行設定を行います

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

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

MCU.Config.safeBitmapStorageSection

Safe Bitmap リソースのストレージセクションを定義します。

MCU.Config.safeRendererCrcAlgorithm

Qt Safe Layout Tool 用の CRC アルゴリズムを定義します。

MCU.Config.safeTextCachePolicy

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

MCU.Config.safeTextFontDirectory

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

MCU.Config.safeTextRuntimeAllocationType

動的 SafeText の実行時割り当てタイプを定義します。

MCU.Config.safeTextStorageSection

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

MCU.Config.showDesktopPreviewInNaturalDisplayOrientation

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

MCU.Config.translationStorageSection

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

MCU.Config.vkbPinyinDictionary

Qt Quick Ultralite 仮想キーボードで使用するピンイン辞書を選択します。

MCU.Config.vkbPinyinSupport

Qt Quick Ultralite 仮想キーボードでピンイン入力方式を使用する

実験的なプロパティ:

MCU.Config.Experimental.multiLineElide

複数行テキストの省略モードを設定します

MCU.Config.Experimental.vkbScreenWidth

Qt Quick Ultralite 仮想キーボードの幅を設定する

ResourceStorageSection

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

これらのノードは、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.Module

このノードの役割は、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 を使用して利用できる、以下の事前定義済みモジュールが付属しています:

  • Controls
  • ControlsTemplates
  • レイアウト
  • Location
  • プロファイリング
  • 配置
  • SafeRenderer
  • 形状
  • StudioComponents
  • Timeline
  • VirtualKeyboard

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

MCU.Module.generateQmltypes

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

MCU.Module.uri

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

ModuleFiles

このノードを使用して、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 ` ファイルを解析します。 さらに、qmlprojectexporter は、インポートおよびエクスポートされたファイルのプレーンテキストリストもエクスポートするため、CMake などのサードパーティ製ビルドシステムで自動的に利用しやすくなっています。

CMakeプロジェクトにおけるqmlprojectexporter の使用方法

CMakeビルドシステムでのqmlprojectexporter の使用方法は簡単で、カスタムCMakeマクロqul_add_targetが、適切なパラメータを指定してqmlprojectexporter を呼び出す処理をすでに担当しています。これを使用するには、次のようにQML_PROJECT引数を定義し、その後にqmlprojectファイルを指定する必要があります。

// 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 のコマンドライン引数の詳細な一覧を示します:

qmlprojectfile

qmlproject ファイルへのパス。

–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 または ResourceGenerator<@op>.</@op>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

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

qmlprojectexporterによって生成されたファイル

出力ディレクトリに生成されるファイルは、使用するコマンドライン引数によって異なります。プロジェクトのビルドプロセスにおいてqmlprojectexporter がどのような役割を果たしているかをより深く理解するには、Qt Quick参照してください。Ultraliteツール以下のリストは、次の例に基づいて生成される可能性のあるファイルの一覧です:

以下のスタートアッププロジェクトファイルを例に考えてみましょう:

定数説明
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

先の例で、--no-export-modulesオプションを指定せずにqmlprojectexporter を実行しても、その例ではモジュールファイルが一切使用されていないため、出力フォルダに大きな変化はありません。しかし、プロジェクトをモジュールごと完全にエクスポートすると、サードパーティ製ツールが使用する出力ディレクトリに 2 つのファイルが表示されます。それらのファイルは以下の通りです:

定数説明
output/config/input.jsonプロジェクトで使用されるすべての入力、プロジェクトがインポートしたモジュールが使用するファイル、およびインポートされたモジュール内でインポートされたモジュールが使用するファイルを再帰的に列挙した構造化ファイルです。
generate_files.txtキーと値のペアを保持しており、CMakeはこれを使用してqmlprojectexporter が生成するエントリポイントファイルを推定します。主に–generate-entrypointを指定する際に使用され、生成されるファイルはアプリケーションのターゲットタイプ(実行ファイル|静的ライブラリ)によって異なる場合があります。

--no-export-modules の主効果を確認するには、以下の新しいプロジェクトファイルを参照してください:

定数説明
module1/module1.qmlprojectmodule1 の設定ファイル。ModuleFilesを使用してmy_project.qmlproject にインポートされます
module1/module1.qmlmodule1のQmlFilesに含まれ、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 (テクノロジープレビュー)

用語
  • プロファイル - 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 です。

現在のテクノロジープレビュー段階では、Qt for MCUs には2つのプロファイルのみが同梱されており、いずれもデスクトップ向けQt XMLを対象としています。Windows用がwin-mingw 、Linux用がlinux-gcc です。

注: これら2つのプロファイルでは、特にQt Locationに関して多くの 仮定が設けられているため、多少不安定な面があります。将来的には改善や追加のプロファイルが予定されています。また、ユーザーは自身が使用するボードに合わせて独自のプロファイルを作成することも推奨されています。

利用可能なプロファイルの一覧は、qulpreview --list-profiles を実行することで取得できます。

プロファイルでは、繰り返しパターンを最小限に抑えるために変数を利用できます。構文は${VAR_NAME} です。

注:変数の置換ロジックは非常に 単純です。変数は定義順に展開されるため、変数の中にそれ以降に定義された変数が含まれていないことを確認してください。含まれている場合、その変数はそのままの形で扱われます。

環境変数も利用可能で、env: というプレフィックスを使用して参照できます(例:${env:PATH} )。

プロファイル作成者の利便性を考慮し、このツールでは、主にプロジェクトに関連するいくつかの事前定義済み変数が用意されています:

  • OUT_DIR - 推奨出力先。qulpreview 自体はアーティファクトを生成しませんが、この変数をレシピ内で使用することで、ツールの出力をカスタマイズできます。--out-dir のコマンドライン引数で指定可能です
  • PROJECT_FILE_PATH -.qmlproject ファイルへのフルパス(プロジェクトファイル自体を含む)
  • PROJECT_FILE_NAME - プロジェクトファイル名(拡張子を含む)
  • PROJECT_BASE_NAME - プロジェクトファイル名(拡張子を除く)
  • PROJECT_DIR - プロジェクトファイルの親ディレクトリ

注: ユーザー定義および事前定義された変数名は大 文字と小文字が区別されます。環境変数については、ホストシステムによって異なります。

レシピ内のステップは順次実行され、あるステップが失敗した場合(開始できない、クラッシュする、ゼロ以外の終了コードで終了するなど)、その後のステップは実行されません。

qulpreview でエラーが発生した場合、EXIT_FAILURE のエラーコードで終了し、エラーはstderr に出力されます。

以下に、qulpreview コマンドライン引数の詳細な一覧を示します。

qulpreview –help

コマンドライン引数を一覧表示します。

qulpreview –list-profiles

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

qulpreview –out-dir

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

qulpreview –profile

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

qulpreview –profile-dir

プロファイル定義ファイルが含まれるディレクトリ。

qulpreview –workflow

使用するワークフローの ID。特定の Qt ライセンスの下で利用可能です。xml-ph-0000@deepl.internal 詳細はこちらをご覧ください。

特定の Qt ライセンスの下で利用可能です。
詳細はこちらをご覧ください。