C
アーキテクチャおよびプラットフォーム固有のビルド設定
Qt Quick Ultraliteは、コアライブラリとプラットフォームライブラリに分かれています。これらの各コンポーネントのコンパイル設定は、複数のプロジェクトで再利用できます。
各BoardArchitectureConfig.cmake ファイル内で、QUL_PLATFORM_ARCHITECTURE というCMake変数を使用してボードのアーキテクチャを設定します。
set (QUL_PLATFORM_ARCHITECTURE "cortex-m7-hf-fpv5-d16")Qt Quick Ultraliteがサポートするデフォルトのアーキテクチャは、platform\architecture に記載されています。CMakeは、指定された文字列に一致するアーキテクチャを検索し、それに対して定義されたプリセットを読み込みます。
カスタムアーキテクチャの使用
お使いの CPU が事前定義されたアーキテクチャのいずれにも該当しない場合は、独自のアーキテクチャを作成できます。既存のアーキテクチャと重複しないカスタムアーキテクチャ名を指定するとともに、カスタムアーキテクチャの設定を含むファイルの場所を指定する必要があります。
set(QUL_PLATFORM_ARCHITECTURE SomeCustomName)
set(QUL_PLATFORM_ARCHITECTURE_FILE "${CMAKE_CURRENT_LIST_DIR}/${QUL_COMPILER_NAME}/architecture.cmake")上記の2つの変数を設定すると、その他のアーキテクチャ処理はすべて無効になります。platform\architecture にあるファイルのいずれかを、カスタムファイルの作成のベースとして利用できます。
設定の継承
プロジェクトの各部分へのコンパイル設定を伝達するために、CMakeインターフェースライブラリが使用されます。これらは実際のライブラリではありませんが、設定を継承することができます。これらの設定をアプリケーションに継承させるには、それらに対してリンクを行う必要があります。標準的な使用法として、qul_add_target を使用してアプリケーションを登録すると、これは自動的に行われます。
利用可能なコンパイル設定
アーキテクチャ
ライブラリターゲット `Qul::PlatformArchitecture ` には、お使いの CPU アーキテクチャに固有の設定が含まれています。
# Copyright (C) 2025 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial
target_link_options(PlatformArchitecture INTERFACE
-mthumb
-mfloat-abi=hard
-mfpu=fpv5-d16
-mcpu=cortex-m7
)
target_compile_options(PlatformArchitecture INTERFACE
-mthumb
-mcpu=cortex-m7
-mfloat-abi=hard
-mfpu=fpv5-d16
-fno-common
-ffunction-sections
-fdata-sections
-ffreestanding
-fno-builtin
)プラットフォーム
ライブラリ `Qul::Platform ` には、Qt Quick Ultralite が提供する API を使用するアプリケーション向けに、お使いのプラットフォーム固有の設定が含まれています。
プラットフォーム SDK 設定
ライブラリ `Qul::PlatformBSPConfig ` には、SDK固有の関数やヘッダーへのアクセスを必要とするアプリケーションに必要な設定が含まれています。これには、ハードウェア固有のコンテキスト関数や割り込みハンドラなどが含まれます。Qt Quick Ultraliteが提供するAPIのみを使用するアプリケーションでは、これをリンクする必要はありません。
ベンダーのSDK固有の設定の指定については、移植ガイドを参照してください。
リンカースクリプト
ライブラリ `Qul::PlatformDefaultLinkerScript ` には、デフォルトのリンカースクリプトの設定が含まれています。これらは、各プラットフォームが `LinkerScriptConfig.cmake ` 内で CMake 関数を呼び出すことで指定されます。
qul_platform_add_default_linker_script(<LINKER_SCRIPT_FILE>)例については、「リンカースクリプトの追加」を参照してください。
プラットフォームで複数のリンカースクリプトが必要な場合は、この関数を複数回呼び出すことができます。これにより、各リンカースクリプトがライブラリQul::PlatformDefaultLinkerScript に追加されます。
リンカースクリプトをアプリケーションに渡すには、このライブラリに対してリンクを行う必要があります。関数 `qul_add_target` を使用してアプリケーションを追加する場合、これは自動的に行われます。
リンカースクリプトを自動処理ではなく、ご自身で管理したい場合は、変数 `QUL_NO_DEFAULT_LINKER_SCRIPT` を設定してください。これにより、アプリケーションへのリンカースクリプトの追加が防止されます。
コアライブラリのカスタム最適化
通常、コアライブラリはプラットフォーム非依存でビルドされます。プラットフォームによっては、最適化などの理由でコアライブラリにカスタムコンパイル設定が必要な場合があります。その場合は、プラットフォームの `cmake ` フォルダ内に `coreLibrary.cmake ` ファイルを作成できます。このファイルでは、Core ターゲットに対して追加のフラグを設定できます。
注:この ファイルは 、Qt Quick のUltraliteコアライブラリとプラットフォームライブラリが一緒にビルドされた場合にのみ読み込まれます。
特定の Qt ライセンスの下で利用可能です。
詳細はこちら。