このページでは

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_FILESQMLソースqul_target_qml_sources
HEADERSC++ ヘッダー(エクスポートされた型があるかもしれない)qul_target_generate_interfaces
SOURCESC++ソースファイル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 におけるシングルトンの定義も参照してください


Qt のライセンスによっては利用可能です。