C
qul_add_qml_module
警告 このCMakeコマンドは2.4以降非推奨です。代わりにMCU.Moduleを使うことを検討してください。
概要
qul_add_qml_module(<target>
URI <uri>
[QML_FILES <file paths...>]
[HEADERS <file paths...>]
[SOURCES <file paths...>]
[IMPORTS <uris...>]
[OUTPUT_DIRECTORY <path>]
[GENERATE_QMLTYPES]
[INSTALL_HEADERS_LOCATION <path>]
[INSTALL_HEADERS_COMPONENT <name>]
[INSTALL_LIBRARY_LOCATION <path>]
[INSTALL_LIBRARY_COMPONENT <name>]
[INSTALL_LIBRARY_EXPORT <name>]
[QML_PROJECT <qmlproject_file>]
)説明
与えられた URI で QML モジュールのスタティックライブラリをビルドするための CMake ターゲットを作成します。
QMLモジュールのディレクトリは現在のビルドディレクトリのサブディレクトリに作成されます (OUTPUT_DIRECTORY を参照)。
このターゲットをリンクするアプリケーションターゲットがQMLモジュールをインポートできるように設定されます。
オプションとして、INSTALL_ の引数でモジュールのインストールを設定することができます。
オプション
URI の引数にはドット区切りのQMLモジュールURIを指定します。このURIをQMLにインポートしてモジュールを使用する必要があります。例えば、"Ui.Buttons "というURIは、"import Ui.Buttons 1.0 "としてインポートされるモジュールを意味します。
QML_FILES,HEADERS,SOURCES の引数はモジュールの一部であるファイルをリストアップします。これらは、他のCMakeコマンドの便利なラッパーです:
| 引数 | ファイルの種類 | 同等のコマンド |
|---|---|---|
QML_FILES | QMLソース | qul_target_qml_sources |
HEADERS | C++ ヘッダー(エクスポートされた型があるかもしれない) | qul_target_generate_interfaces |
SOURCES | C++ソースファイル | target_sources |
IMPORTS 引数には、新しいモジュールの依存関係にある QML モジュールの URI のリストを指定することができます。例えば、"IMPORTSQtQuick QtQuick .Templates "などです。
OUTPUT_DIRECTORY 引数には、QMLモジュールがビルドされるサブディレクトリを指定します。デフォルトはCMAKE_CURRENT_BINARY_DIR です。モジュールファイルはimport URIに基づいたサブディレクトリに置かれます。例えば、QtQuick.Timeline のサブディレクトリはOUTPUT_DIRECTORY の下のQtQuick/Timeline となります。
QMLモジュールファイルはOUTPUT_DIRECTORY のサブディレクトリに置かれます。このサブディレクトリはURIを受け取り、すべての". "を"/"に置き換えて生成されます。
引数GENERATE_QMLTYPES が使われた場合、"plugins.qmltypes" ファイルがモジュール用に生成され、生成された "qmldir" ファイルの隣に置かれます。
インストール
OUTPUT_DIRECTORY の以下のファイルが、このモジュールのユーザーに必要です:
- 生成された "qmldir "ファイル
- ソース
.qmlファイル (QML_FILESにリストされている) - 生成された
.hファイル (QML_FILESのファイルから) - 生成された
.fontsファイル (QML_FILESのファイルから) - 生成された
.qmlファイル (HEADERSのヘッダーから)
さらに、このモジュールのユーザーは、HEADERS にリストされているヘッダーにアクセスする必要があります。これらのヘッダーは、このコマンドではインストールされません。
INSTALL_HEADERS_LOCATION 引数が指定されている場合、OUTPUT_DIRECTORY の必要なファイルが、指定されたパスにインストールされます。モジュール URI のサブディレクトリが自動的にパスに追加されることに注意してください。
オプションのINSTALL_HEADERS_COMPONENT 引数は、CMakeinstall(DIRECTORY) コマンドに使用されるCOMPONENT を制御します。
INSTALL_LIBRARY_LOCATION 引数がある場合、コンパイルされたライブラリは指定された場所にインストールされます。オプションのINSTALL_LIBRARY_COMPONENT およびINSTALL_LIBRARY_EXPORT 引数は、CMakeinstall(TARGETS) コマンドに渡されるCOMPONENT およびEXPORT 引数を指定します。
プロジェクトが .qmlproject ファイルを使用して構成されている場合、QML_PROJECT が指定されます。
例
qul_add_qml_module(simple_qml_only_module
URI MySimpleModule
QML_FILES
Foo.qml
Bar.qml
)
# myapp has QML files that "import MySimpleModule" and use Foo and Bar
target_link_libraries(myapp PRIVATE simple_qml_only_module)
qul_add_qml_module(myqmlmodule
URI MyOrg.Styles
QML_FILES
Foo.qml
HEADERS
include/backend.h
SOURCES
source/backend.cpp
IMPORTS
QtQuick.Templates
OUTPUT_DIRECTORY
# Means that files will be ${CMAKE_CURRENT_BINARY_DIR}/imports/MyOrg/Styles/...
${CMAKE_CURRENT_BINARY_DIR}/imports/
GENERATE_QMLTYPES
INSTALL_HEADERS_LOCATION "${CMAKE_INSTALL_INCLUDEDIR}/qmlmodules"
INSTALL_HEADERS_COMPONENT ModuleHeaders
INSTALL_LIBRARY_LOCATION ${CMAKE_INSTALL_LIBDIR}
INSTALL_LIBRARY_COMPONENT ObjectLibraries
INSTALL_LIBRARY_EXPORT SharedExportName
)
target_include_directories(myqmlmodule
PUBLIC
"include/"
)
target_link_libraries(myqmlmodule PUBLIC
Qul::ControlsTemplates
)
# Need to ensure that backend.h is installed and in the include path separately.
install(
DIRECTORY "include/"
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/imports/include/
)
target_include_directories(myqmlmodule
INTERFACE
$<INSTALL_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/imports/include/>
)QML におけるシングルトンの定義も参照してください 。