Qt4モジュール

このモジュールは、Qt4のmocuic、およびrccツールをサポートします。 Qt 5モジュールと同じように使用されます。

compile_resources

0.59.0で新規追加

Qtのリソースコレクションファイル(.qrc)をコンパイル用にc++ファイルにコンパイルします。

位置引数はなく、以下のキーワード引数を取ります。

  • name(string | empty):指定された場合、単一の.cppファイルが生成され、すべてのqrcファイルの出力がこのファイルに結合されます。そうでない場合は、各qrcファイルが独自のcppファイルに書き込まれます。
  • sources(File | string | custom_target | custom_target index | generator_output)[]:トランスパイルされるソースのリスト。必須で、少なくとも1つのソースが必要です。0.60.0で新規追加:custom_target、custom_target_index、およびgenerator_outputのサポート。
  • extra_args string[]:qt-rccに直接渡す追加の引数
  • method string:Qtを検出するために使用する方法。詳細についてはdependency()を参照してください。

compile_ui

0.59.0で新規追加

Qtのuiファイル(.ui)をヘッダーファイルにコンパイルします。

位置引数はなく、以下のキーワード引数を取ります。

  • sources(File | string | custom_target | custom_target index | generator_output)[]:トランスパイルされるソースのリスト。必須で、少なくとも1つのソースが必要です。0.60.0で新規追加:custom_target、custom_target_index、およびgenerator_outputのサポート。
  • extra_args string[]:qt-uicに直接渡す追加の引数
  • method string:Qtを検出するために使用する方法。詳細についてはdependency()を参照してください。
  • preserve_paths bool:1.4.0以降trueの場合、出力ファイルがターゲットの一時ディレクトリ内でディレクトリ構造を維持する必要があることを指定します。たとえば、subdir/one.inputというファイルが処理されると、trueの場合はファイル{target private directory}/subdir/one.outが生成され、falseの場合は{target private directory}/one.outが生成されます(デフォルト)。

compile_moc

0.59.0で新規追加

Qtのmocファイル(.moc)をヘッダーファイルおよび/またはソースファイルにコンパイルします。キーワード引数headerssourcesの少なくとも1つを指定する必要があります。

位置引数はなく、以下のキーワード引数を取ります。

  • sources(File | string | custom_target | custom_target index | generator_output)[]:手動でインクルードするために.mocファイルにトランスパイルされるソースのリスト。0.60.0で新規追加:custom_target、custom_target_index、およびgenerator_outputのサポート。
  • headers(File | string | custom_target | custom_target index | generator_output)[]:.cppファイルにトランスパイルされるヘッダーのリスト。0.60.0で新規追加:custom_target、custom_target_index、およびgenerator_outputのサポート。
  • extra_args string[]:qt-mocに直接渡す追加の引数
  • method string:Qtを検出するために使用する方法。詳細についてはdependency()を参照してください。
  • dependencies:mocによってインクルードディレクトリが使用される依存関係オブジェクト。
  • include_directories(string | IncludeDirectory)[]:.mocファイルのトランスパイル時に使用されるinclude_directory()オブジェクトのリスト
  • preserve_paths bool:1.4.0で新規追加trueの場合、出力ファイルがターゲットの一時ディレクトリ内でディレクトリ構造を維持する必要があることを指定します。たとえば、subdir/one.inputというファイルが処理されると、trueの場合はファイル{target private directory}/subdir/one.outが生成され、falseの場合は{target private directory}/one.outが生成されます(デフォルト)。

preprocess

代わりにcompile_resourcescompile_ui、およびcompile_mocを使用することを検討してください。

moc、uic、およびrccのソースを取得し、コンパイル用にc++ファイルに変換します。

次のシグネチャを持っています。qt.preprocess(name: str | None, *sources: str)

nameパラメーターが渡されると、すべてのrccファイルが単一の出力ファイルに書き込まれます

可変個のsources引数は、Meson 0.59.0以降非推奨になりました。sourcesキーワード引数も同様です。これらの渡されたファイルはプリプロセッサを介して変更されずに渡されます。これを行わないで、ジェネレーターの出力を別のソースリストに追加するだけです。

sources = files('a.cpp', 'main.cpp', 'bar.c')
sources += qt.preprocess(qresources : ['resources'])

このメソッドは、以下のキーワード引数を取ります。

  • qresources(string | File)[]:RCCコンパイラーに渡されます
  • ui_files:(string | File | CustomTarget)[]:uicコンパイラーに渡されます
  • moc_sources:(string | File | CustomTarget)[]:mocコンパイラーに渡されます。これらは、#includeされるように.mocファイルに変換されます。
  • moc_headers:(string | File | CustomTarget)[]:mocコンパイラーに渡されます。これらは.cppファイルに変換されます
  • include_directories(IncludeDirectories | string)[]、mocのヘッダー検索パスに追加するディレクトリ
  • moc_extra_arguments string[]:mocへの追加の引数。v0.44.0以降。
  • uic_extra_arguments string[]:uicへの追加の引数。v0.49.0以降。
  • rcc_extra_arguments string[]:rccへの追加の引数。v0.49.0以降。
  • dependencies Dependency[]:mocに必要な依存関係オブジェクト。v0.48.0以降使用可能。
  • sources:出力に追加される追加のソースのリスト。0.59.0で非推奨になりました。
  • preserve_paths bool:1.4.0で新規追加trueの場合、出力ファイルがターゲットの一時ディレクトリ内でディレクトリ構造を維持する必要があることを指定します。たとえば、subdir/one.inputというファイルが処理されると、trueの場合はファイル{target private directory}/subdir/one.outが生成され、falseの場合は{target private directory}/one.outが生成されます(デフォルト)。

コンパイルターゲットに渡すターゲットとソースの配列を返します。

compile_translations

0.44.0以降

このメソッドは、lreleaseで翻訳ファイルをビルドするために必要なターゲットを生成します。位置引数はなく、以下のキーワード引数を取ります。

  • ts_files(File | string | custom_target | custom_target index | generator_output)[]:Qtのlupdateツールによって生成された入力翻訳ファイルのリスト。0.60.0で新規追加:custom_target、custom_target_index、およびgenerator_outputのサポート。
  • install bool:trueの場合、このターゲットはインストールステップ中にインストールされます(オプション)。
  • install_dir string:インストール先のディレクトリ(オプション)。
  • build_by_default bool:trueに設定すると、このターゲットはデフォルトでビルドされます。つまり、meson compileを呼び出す場合です。デフォルト値はfalseです(オプション)。
  • qresource string:ts_filesを抽出するrccソースファイル。ts_files kwargでは使用できません。v0.56.0以降使用可能。
  • rcc_extra_arguments string[]:qresourceで使用する場合のrccへの追加の引数(オプション)。v0.56.0以降使用可能。

コンパイルされた翻訳のカスタムターゲットのリスト、またはqresourceファイルを使用する場合は、処理されたソースファイルを含む単一のカスタムターゲットを返します。これはメインビルドターゲットに渡される必要があります。

has_tools

0.54.0以降

このメソッドは、このモジュールで使用されるすべてのツールが見つかった場合はtrue、そうでない場合はfalseを返します。

オプションのQtコードをコンパイルするために使用する必要があります

qt5 = import('qt5')
if qt5.has_tools(required: get_option('qt_feature'))
  moc_files = qt5.preprocess(...)
  ...
endif

このメソッドは、以下のキーワード引数を取ります。

  • required bool | FeatureOption:デフォルトでは、requiredfalseに設定されています。requiredtrueまたは有効なfeatureに設定されており、一部のツールが見つからない場合、Mesonは中止されます。
  • method string:Qtの依存関係を見つけるために使用されるメソッド(デフォルトはauto)。

依存関係

Qtの依存関係を参照してください

'modules'引数は、プロジェクトにQtモジュールを含めるために使用されます。モジュールのリストについては、Qtドキュメントを参照してください。

'private_headers'引数を使用すると、Qtモジュールのプライベートヘッダーを使用できます(v0.47.0以降)。

簡単な例は次のようになります。

qt5 = import('qt5')
qt5_dep = dependency('qt5', modules: ['Core', 'Gui'])
inc = include_directories('includes')
moc_files = qt5.compile_moc(headers : 'myclass.h',
                            extra_args: ['-DMAKES_MY_MOC_HEADER_COMPILE'],
                            include_directories: inc,
                            dependencies: qt5_dep)
translations = qt5.compile_translations(ts_files : 'myTranslation_fr.ts', build_by_default : true)
executable('myprog', 'main.cpp', 'myclass.cpp', moc_files,
           include_directories: inc,
           dependencies : qt5_dep)

場合によっては、翻訳はqresourceファイルを使用してバイナリ内に埋め込まれます。この場合、tsファイルを明示的にリストする必要はありませんが、qresourceファイルにリストされているビルド済みのqmファイルから推論されます。例えば

qt5 = import('qt5')
qt5_dep = dependency('qt5', modules: ['Core', 'Gui'])
lang_cpp = qt5.compile_translations(qresource: 'lang.qrc')
executable('myprog', 'main.cpp', lang_cpp,
           dependencies: qt5_dep)

検索結果は次のとおりです