プラットフォーム

多くのクロスプラットフォームプロジェクトは、qmake の基本的な設定機能で扱うことができます。qmakeはこれらの機能の多くについて知っており、特定の変数を使ってアクセスすることができます。

macOS、iOS、tvOS、watchOS

これらのプラットフォーム特有の機能には、ユニバーサルバイナリ、フレームワーク、バンドルの作成サポートが含まれます。

ソースパッケージとバイナリパッケージ

ソースパッケージで提供されるqmakeのバージョンは、バイナリパッケージで提供されるものとは異なる機能仕様を使用するという点で、若干異なる設定になっています。ソースパッケージが通常macx-g++ 仕様を使用するのに対し、バイナリパッケージは通常macx-xcode 仕様を使用するように設定されています。

各パッケージのユーザーは、-spec オプションを指定して qmake を起動することで、この設定を上書きすることができます(詳細はqmake の実行を参照してください)。例えば、バイナリパッケージからqmakeを使ってプロジェクトディレクトリにMakefileを作成するには、以下のコマンドを実行する:

qmake -spec macx-g++

フレームワークの使用

qmakeは、/Library/Frameworks/ にあるmacOSの標準フレームワークディレクトリにあるフレームワークに対してリンクするためのビルドルールを自動的に生成することができます。

標準フレームワークディレクトリ以外のディレクトリはビルドシステムに指定する必要があり、これは次の例に示すように、リンカーオプションをLIBS変数に追加することで実現されます:

LIBS += -F/path/to/framework/directory/

フレームワーク自体は、-framework オプションとフレームワーク名をLIBS変数に追加することでリンクされます:

LIBS += -framework TheFramework

フレームワークの作成

任意のライブラリープロジェクトは、出来上がったライブラリーファイルがフレームワークの中に配置されるように設定することができます。これを行うには、lib テンプレートを使うようにプロジェクトを設定し、lib_bundle オプションをCONFIG変数に追加します:

TEMPLATE = lib
CONFIG += lib_bundle

ライブラリに関連するデータは、QMAKE_BUNDLE_DATA変数を使用して指定します。これは、ライブラリバンドルと一緒にインストールされる項目を保持し、次の例のようにヘッダーファイルのコレクションを指定するためによく使用されます:

FRAMEWORK_HEADERS.version = Versions
FRAMEWORK_HEADERS.files = path/to/header_one.h path/to/header_two.h
FRAMEWORK_HEADERS.path = Headers
QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS

FRAMEWORK_HEADERS 変数を使用して、特定のフレームワークで必要なヘッダーを指定します。この変数をQMAKE_BUNDLE_DATA 変数に追加することで、これらのヘッダーに関する情報が、ライブラリバンドルと一緒にインストールされるリソースのコレクションに追加されるようになります。また、フレームワーク名とバージョンはQMAKE_FRAMEWORK_BUNDLE_NAME変数とQMAKE_FRAMEWORK_VERSION変数で指定します。デフォルトでは、これらの変数に使用される値はTARGET変数とVERSION変数から取得されます。

アプリケーションやライブラリのデプロイについての詳細は、Qt for macOS - デプロイメントを参照してください。

Xcode プロジェクトの作成と移動

macOS では、開発者は既存の qmake プロジェクトファイルから Xcode プロジェクトファイルを生成することができます。例えば

qmake -spec macx-xcode project.pro

注意: プロジェクトが後でディスク上に移動された場合、qmake は、プロジェクトファイルを処理し、新しい Xcode プロジェクトファイルを作成するために再度実行する必要があります。

同時に2つのビルドターゲットをサポートする

XcodeのActive Build Configurationsの概念は、ビルドターゲットのqmakeの考えとは概念的に異なるため、これを実装することは、現在のところ実現可能ではありません。

XcodeのActive Build Configurationsの設定は、Xcodeの設定、コンパイラフラグ、および同様のビルドオプションを変更するためのものです。Visual Studio とは異なり、Xcode では、デバッグまたはリリースビルド構成が選択されているかどうかに基づいて、特定のライブラリファイルを選択することはできません。qmake の debug および release 設定は、どのライブラリファイルが実行ファイルにリンクされるかを制御します。

現在のところ、qmake が生成した Xcode プロジェクトファイルから Xcode のコンフィギュレーション設定でファイルを設定することはできません。Xcode のビルドシステムのFrameworks & Librariesフェーズでライブラリがリンクされる方法です。

さらに、選択されたアクティブなビルド構成は.pbxuserファイルに保存され、これはqmakeによって作成されるのではなく、最初のロード時にXcodeによって生成されます。

Windows

このプラットフォーム固有の機能には、Windows リソースファイル(提供または自動生成)のサポート、Visual Studio プロジェクトファイルの作成、および Visual Studio 2005 以降を使用して開発された Qt アプリケーションをデプロイする際のマニフェストファイルの処理が含まれます。

Windows リソース ファイルの追加

このセクションでは、アプリケーション実行ファイル(EXE)またはダイナミックリンクライブラリ(DLL)にリンクさせるために qmake で Windows リソースファイルを処理する方法について説明します。

リンクされたWindowsリソースファイルには、EXEやDLLからアクセスできる多くの要素が含まれている可能性があります。しかし、Qtリソースシステムは、プラットフォームに依存しない方法でリンクされたリソースにアクセスするために使用されるべきです。しかし、リンクされたWindowsリソースファイルのいくつかの標準的な要素は、Windows自身によってアクセスされます。例えば、Windowsエクスプローラでは、ファイルプロパティのバージョンタブがリソース要素で埋められています。さらに、EXEのプログラムアイコンはこれらの要素から読み取られる。そのため、Qtで作成されたWindows EXEやDLLは、Qtリソースシステムを介してプラットフォームに依存しないリソースをリンクし、Windowsリソースファイルを介してWindows固有のリソースを追加するという、両方のテクニックを同時に使用するのが良い方法です。

通常、リソース定義スクリプト(.rcファイル)はWindowsリソースファイルにコンパイルされます。Microsoftツールチェーン内で、RCツールは.resファイルを生成し、MicrosoftリンカでリンクしてEXEまたはDLLにすることができます。MinGWツールチェーンでは、windresツールを使用して.oファイルを生成し、MinGWリンカでEXEまたはDLLにリンクできます。

qmakeによる、適切に充填された.rcファイルの自動生成は、システム変数VERSIONと RC_ICONSの少なくとも1つを設定することによって、オプションでトリガーされます。生成された.rcファイルは自動的にコンパイルされ、リンクされます。.rcファイルに追加される要素は、システム変数VERSIONとRC_ICONSによって定義される。.rcファイルに追加される要素は、システム変数QMAKE_TARGET_COMPANYQMAKE_TARGET_DESCRIPTIONQMAKE_TARGET__COPYRIGHTQMAKE_TARGET_PRODUCTによって定義されます、QMAKE_TARGET_ORIGINAL_FILENAMEQMAKE_TARGET_INTERNALNAMEQMAKE_TARGET_COMMENTSQMAKE_TARGET_TRADEMARKSQMAKE_MANIFESTRC_CODEPAGERC_ICONSRC_LANGVERSION

これらの要素で十分でない場合、qmakeには、外部で作成された.rcまたは.resファイルを直接指す2つのシステム変数RC_FILEと RES_FILEがあります。これらの変数のいずれかを設定することにより、指定されたファイルがEXEまたはDLLにリンクされる。

注意: RC_FILEまたはRES_FILEが設定されている場合、qmakeによる.rcファイルの生成はブロックされます。この場合、qmakeによって指定された.rcファイルや.resファイル、.oファイルにそれ以上の変更が加えられることはなく、.rcファイルの生成に関連する変数は影響しません。

Visual Studioプロジェクト・ファイルの作成

このセクションでは、既存のqmakeプロジェクトをVisual Studioにインポートする方法について説明します。qmakeはプロジェクトファイルを受け取り、開発環境で必要なすべての情報を含むVisual Studioプロジェクトを作成することができます。これは、qmakeプロジェクトテンプレートをvcapp (アプリケーションプロジェクト用)またはvclib (ライブラリプロジェクト用)のいずれかに設定することで実現できます。

これはコマンドラインオプションなどでも設定できます:

qmake -tp vc

とタイプすることで、サブディレクトリに.vcproj ファイルを、メインディレクトリに.sln ファイルを再帰的に生成することができます:

qmake -tp vc -r

プロジェクト・ファイルを更新するたびに、qmake を実行して更新された Visual Studio* プロジェクトを生成する必要があります。

注: Visual Studio* Add-in を使用している場合は、Qt>Import from .pro fileを選択して、.pro ファイルをインポートします。

Visual Studio マニフェストファイル

Visual Studio* 2005 以降を使用してビルドされた Qt アプリケーションをデプロイする場合、アプリケーショ ンのリンク時に作成されたマニフェストファイルが正しく処理されることを確認してください。DLL を生成するプロジェクトでは自動的に処理されます。

アプリケーション実行ファイルのマニフェスト埋め込みを削除するには、CONFIG変数に次のように代入します:

CONFIG -= embed_manifest_exe

また、CONFIG 変数に次のように代入すると、DLL のマニフェスト埋め込みを削除できます:

CONFIG -= embed_manifest_dll

これについては、Windows 用のデプロイメントガイドで詳しく説明しています。

©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。