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-baremetalCMAKE_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 ライセンスの下で利用可能です。
詳細はこちらをご覧ください。