12,964
回編集
(ページの作成:「== 概要 == <br><br> == Qt6 CoreのCMakeコマンド == ==== Qt6 CoreのCMakeコマンド一覧 ==== 下表のCMakeコマンドは、Qt6::Coreが読み込まれた時に定義される。<br> <syntaxhighlight lang="cmake"> find_package(Qt6 REQUIRED COMPONENTS Core) </syntaxhighlight> <br> <center> {| class="wikitable" | style="background-color:#fefefe;" |+ Qt6 CoreのCMakeコマンド |- ! style="background-color:#66CCFF;" | CMakeコマンド ! style="backgrou…」) |
編集の要約なし タグ: 差し戻し済み |
||
159行目: | 159行目: | ||
**: <br> | **: <br> | ||
**: qt_add_resourcesコマンドは、特殊ターゲットの名前を指定された変数に格納する。 | **: qt_add_resourcesコマンドは、特殊ターゲットの名前を指定された変数に格納する。 | ||
<br><br> | |||
== バージョンレスコマンド == | |||
Qt 5.15以降、Qtモジュールはバージョンレスのコマンドも提供している。<br> | |||
例えば、Qt5とQt6のどちらを使用していても、<code>qt_add_translation</code>コマンドを使用して、翻訳ファイルをコンパイルすることができる。<br> | |||
<br> | |||
最初の<code>find_package</code>コマンドの実行の前に、<code>QT_NO_CREATE_VERSIONLESS_FUNCTIONS</code>を設定して、バージョンレスコマンドの作成を防ぐ。<br> | |||
<br> | |||
* <code>QT_NO_CREATE_VERSIONLESS_FUNCTIONS</code> | |||
*: qt_で始まるコマンドを非表示にして、qt6_で始まるバージョン管理されたコマンドのみを残す。 | |||
<br> | |||
このマクロを定義することで、Qtのバージョン付きのシンボルのみが使用されるようになる。<br> | |||
これは、特にQtの異なるバージョンを混在させる場合や明示的にバージョン管理を行う場合に有用である。<br> | |||
<br> | |||
以下の例では、<code>find_package</code>コマンドの前に<code>set</code>コマンドで<code>QT_NO_CREATE_VERSIONLESS_FUNCTIONS</code>を<code>TRUE</code>に設定している。<br> | |||
これにより、Qtのバージョンなしのシンボルが生成されないようになる。<br> | |||
CMake 3.16以降が必要な場合があるため、<code>cmake_minimum_required</code>コマンドを適切に設定する必要がある。<br> | |||
<syntaxhighlight lang="cmake"> | |||
cmake_minimum_required(VERSION 3.16) | |||
# Set QT_NO_CREATE_VERSIONLESS_FUNCTIONS before calling find_package | |||
set(QT_NO_CREATE_VERSIONLESS_FUNCTIONS TRUE) | |||
project(MyQtProject) | |||
# 使用するQtライブラリ | |||
find_package(Qt6 REQUIRED COMPONENTS Core Widgets) | |||
# 実行ファイルのソースファイルおよびヘッダファイル | |||
add_executable(MyApp main.cpp) | |||
# Qtライブラリのリンク | |||
target_link_libraries(MyApp Qt6::Core Qt6::Widgets) | |||
</syntaxhighlight> | |||
<br><br> | |||
== バージョンレスターゲット == | |||
* <code>QT_NO_CREATE_VERSIONLESS_TARGETS</code> | |||
*: Qt::で始まるインポートされたターゲットを隠す。 | |||
*: 代わりに、Qt6::で始まるターゲットを使用する必要がある。 | |||
<br><br> | <br><br> | ||