「CMake - qt finalize executableコマンド」の版間の差分

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
ナビゲーションに移動 検索に移動
(ページの作成:「== 概要 == <code>qt_finalize_executable</code>コマンドは、Qt 6で導入された新しいCMakeのコマンドである。<br> このコマンドは、Qtアプリケーションのビルドプロセスの最後に呼び出される。<br> <br> <code>qt_finalize_executable</code>コマンドは、ターゲット (実行可能ファイル) が定義された後に呼び出す必要があることに注意する。<br> <br> <u><code>qt_finalize_executable</code>…」)
 
11行目: 11行目:
<code>qt_finalize_executable</code>コマンドは、主に、実行可能ファイルに必要なQt関連のリソースや依存関係を設定するために使用される。<br>
<code>qt_finalize_executable</code>コマンドは、主に、実行可能ファイルに必要なQt関連のリソースや依存関係を設定するために使用される。<br>
<br>
<br>
例えば、Windowsの場合は、必要なDLLを実行可能ファイルと同じディレクトリにコピーする等の処理を行う。<br>
<code>qt_finalize_executable</code>コマンドの主な機能を、以下に示す。<br>
MacOSの場合は、.appバンドルの設定を行う。<br>
* 依存するQtライブラリの配置
*: 例: Windowsの場合は、必要なDLLを実行可能ファイルと同じディレクトリにコピーする等の処理を行う。
* プラットフォーム固有の設定
*: 例: Windowsでのmanifestファイルの処理等を行う。
* リソースファイルの処理
* MacOSでの.appバンドルの設定
<br>
また、このコマンドを使用しなくても問題が生じにくい状況も存在する。<br>
* 単純なコンソールアプリケーション
* 開発マシン上でのみ実行するアプリケーション
* Qt Coreモジュールのみを使用する小規模なアプリケーション
<br><br>
<br><br>



2024年7月27日 (土) 02:46時点における版

概要

qt_finalize_executableコマンドは、Qt 6で導入された新しいCMakeのコマンドである。
このコマンドは、Qtアプリケーションのビルドプロセスの最後に呼び出される。

qt_finalize_executableコマンドは、ターゲット (実行可能ファイル) が定義された後に呼び出す必要があることに注意する。

qt_finalize_executableコマンドを使用するには、CMake 3.16以降が必要である。


qt_finalize_executableコマンドの意味

qt_finalize_executableコマンドは、主に、実行可能ファイルに必要なQt関連のリソースや依存関係を設定するために使用される。

qt_finalize_executableコマンドの主な機能を、以下に示す。

  • 依存するQtライブラリの配置
    例: Windowsの場合は、必要なDLLを実行可能ファイルと同じディレクトリにコピーする等の処理を行う。
  • プラットフォーム固有の設定
    例: Windowsでのmanifestファイルの処理等を行う。
  • リソースファイルの処理
  • MacOSでの.appバンドルの設定


また、このコマンドを使用しなくても問題が生じにくい状況も存在する。

  • 単純なコンソールアプリケーション
  • 開発マシン上でのみ実行するアプリケーション
  • Qt Coreモジュールのみを使用する小規模なアプリケーション



qt_finalize_executableコマンドの設定

qt_finalize_executableコマンドは、Qt 6 Coreコンポーネントで定義されている。

 find_package(Qt6 REQUIRED COMPONENTS Core)


引数MANUAL_FINALIZATION (存在する場合) 以外の全ての引数は、標準のCMake add_executableコマンドに渡される。

 qt_add_executable(<プロジェクトのターゲット名>
                  [WIN32] [MACOSX_BUNDLE]
                  [MANUAL_FINALIZATION]
                  <ソースファイル 1>
                  <ソースファイル 2>
                  # ...略
 )
 
 # または
 
 qt_add_executable(<プロジェクトのターゲット名>)


以下の例では、ファイナライズは自動的に処理される。
CMake 3.18以前を使用している場合、ファイナライズは呼び出しの一部として即座に実行される。
CMake 3.19以降を使用している場合、ファイナライズは現在のディレクトリスコープの最後で行われる。

 qt_add_executable(SampleApp)