C

CMakeの始め方

CMakeLists.txt ファイルは、常に以下のコマンドで始める必要があります:cmake_minimum_required およびproject 。現在、Qt Quick Ultralite では、最小バージョンとして v3.21.1 が指定されていますが、プロジェクトが最新の CMake 機能に依存している場合は、より高いバージョンに設定することも可能です。project コマンドは、name と、プロジェクトで使用されるプログラミング言語のリストを定義します。Qt Quick Ultraliteは、言語リストにC およびCXX (C++)を期待していますが、一部のサポート対象プラットフォームやGNUコンパイラではASM (アセンブリ言語)も必要です。言語リストが長くなっても問題はないため、これら3つの言語すべてをリストに含めることがベストプラクティスです。

一般的な CMake の設定が完了したら、find_package を実行して、Qt Quick Ultralite に同梱されているライブラリおよびヘッダーファイルの場所を特定してください。qul_add_target コマンドを使用すると、これらのライブラリおよびヘッダーファイルを使用して、Qt Quick Ultralite ベースのアプリケーションをビルドできます。このコマンドにより、適切なインクルードディレクトリ、コンパイル定義、およびライブラリが自動的に追加されます。

cmake_minimum_required (VERSION 3.21.1)

project(example_project LANGUAGE C CXX ASM)

find_package(Qul)
qul_add_target(example)

次に、ソースファイルを追加します。QML ソースファイルは `qul_target_qml_sources` コマンドを使用して追加し、エクスポートされるクラスを定義する C++ ファイルは `qul_target_generate_interfaces` コマンドを使用して追加します。ビルド中に、QML ソースは C++ に変換され、その後コンパイルされます。 インターフェースヘッダー内のエクスポートされた型の記述は、QML コードから利用可能になります。詳細については、「C++ コードと QML の統合」を参照してください。

target_sources(example PRIVATE example.cpp)
qul_target_qml_sources(example ExampleView.qml)
qul_target_generate_interfaces(example example.h)

アプリケーションを翻訳したい場合は、`qul_target_embed_translations` を使用して翻訳を設定します。これにより、QML ソース内の翻訳済み文字列に基づいて、指定された `.ts ` ファイルを生成・更新し、それらの翻訳をバイナリに埋め込むための `update_translations ` ターゲットが作成されます。詳細については、「Qt Quick Ultralite による国際化とローカライズ」を参照してください。

qul_target_embed_translations(example translation.nb_NO.ts translation.lv_LV.ts)

最後に、app_target_setup_osを使用して、QUL_OS変数の値に応じて OS 向けの追加設定を行います。このコマンドは、適切なプラットフォームライブラリをリンクし、FreeRTOS ソースのコンパイルやリンクなどの追加処理を実行します。

set(QUL_OS "baremetal")
app_target_setup_os(example)

CMakeLists.txt ファイルと、ビルド対象のプラットフォームを選択するためのコマンドラインオプションを指定して、cmake をディレクトリ上で実行し、プロジェクトをビルドします。たとえば、STM32F769I-Discoveryボード向けにビルドする場合は、次のようにします:

cmake <source_directory>
    -DCMAKE_TOOLCHAIN_FILE=<qul_directory>/lib/cmake/Qul/toolchain/armgcc.cmake
    -DQUL_PLATFORM=STM32F769I-DISCOVERY-baremetal

CMAKE_TOOLCHAIN_FILE 変数はarmgcc ツールチェーンに切り替えるために使用され、QUL_PLATFORM変数は、どのボード向けにビルドするかを決定します。

注: Qt Quick Ultraliteプロジェクトでは 、CMAKE_BUILD_TYPE はデフォルトでMinSizeRel に設定されています。MinSizeRel は、Qt Quick Ultralite に同梱されている事前ビルド済みのプラットフォームライブラリに使用されるビルドタイプです。ビルドタイプを変更するには(例えばRelease に変更する場合など)、-DCMAKE_BUILD_TYPE=Release オプションを指定して CMake を実行してください。詳細については、CMAKE_BUILD_TYPE を参照してください。

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