Installing Targets¶

install(TARGETS targets... ] ] ] )

TARGETSフォームは、プロジェクトからのターゲットインストールのためのルールを指定するものである。 実行可能ファイルは、ARCHIVELIBRARYRUNTIMEFRAMEWORKBUNDLE の 5 種類です。実行可能ファイルは RUNTIME ターゲットとして扱われますが、OS X では MACOSX_BUNDLE 属性が付いたものは BUNDLE ターゲットと扱われます。 スタティック・ライブラリはARCHIVEターゲットとして扱われますが、OS XではFRAMEWORKプロパティでマークされたものはFRAMEWORKターゲットとして扱われます。モジュール・ライブラリは常にLIBRARYターゲットとして扱われます。 DLLプラットフォームでは、共有ライブラリのDLL部分はRUNTIMEターゲットとして扱われ、対応するインポートライブラリはARCHIVEターゲットとして扱われます。ARCHIVELIBRARYRUNTIMEFRAMEWORK引数は、以降のプロパティを適用するターゲットの種類を変更します。 PRIVATE_HEADER, PUBLIC_HEADER, RESOURCE 引数は、Apple 以外のプラットフォームで FRAMEWORK 共有ライブラリ ターゲットの関連ファイルをインストールする際に、後続のプロパティを適用させるためのものです。 Apple プラットフォームでは、関連ファイルはフレームワーク フォルダー内の適切な場所にインストールされるため、これらの引数で定義されたルールは無視されます。 詳細は、PRIVATE_HEADER, PUBLIC_HEADER, RESOURCE ターゲットプロパティのドキュメントを参照してください。

LIBRARY オプションとして、NAMELINK_ONLY または NAMELINK_SKIP を指定できます。 いくつかのプラットフォームでは、バージョン管理された共有ライブラリは

lib<name>.so -> lib<name>.so.1

のようなシンボリックリンクを持っています。 NAMELINK_ONLY を指定すると、ターゲットとなるライブラリがインストールされる際に、namelink のみをインストールする。 NAMELINK_SKIP を指定すると、ライブラリ・ターゲットがインストールされる際に namelink 以外のライブラリ・ファイルがインストールされる。 どちらのオプションも指定しない場合、両方がインストールされる。 バージョン管理された共有ライブラリがネームリンクを持たないプラットフォームや、バージョン管理されていないライブラリの場合、NAMELINK_SKIPオプションはライブラリをインストールし、NAMELINK_ONLYオプションは何もインストールしない。

The INCLUDES DESTINATION specifies a list of directories which will be added to the INTERFACE_INCLUDE_DIRECTORIEStarget property of the <targets> when exported by the install(EXPORT) command. 相対パスが指定された場合、$<INSTALL_PREFIX> からの相対パスとして扱われる。これは他の引数グループとは独立しており、実際には何もインストールしない。 ターゲットは異なる場所に複数回インストールすることができます。 仮想的なターゲットmyExemySharedLibmyStaticLibを考えてみましょう。 コード:

install(TARGETS myExe mySharedLib myStaticLib RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib/static)install(TARGETS mySharedLib DESTINATION /some/full/path)

myExe<prefix>/bin へ、myStaticLib<prefix>/lib/static へインストールします。 非DLLプラットフォームでは、mySharedLib<prefix>/lib/some/full/path にインストールされます。 DLL プラットフォームでは、mySharedLib DLL は <prefix>/bin/some/full/path に、そのインポートライブラリは <prefix>/lib/static/some/full/path にインストールされます。

EXPORT オプションは、インストールされたターゲットファイルと <export-name> というエクスポートを関連付けます。 このオプションは、RUNTIMELIBRARY または ARCHIVE オプションの前に指定する必要があります。

ターゲットプロパティを TRUE に設定したターゲットをインストールすることは未定義の動作です。

ターゲットインストール DESTINATION に与えられるインストール先は、構文 $<...> の “generator expression” を使用することができます。 利用可能な式については、cmake-generator-expressions(7) マニュアルを参照してください。

admin

コメントを残す

メールアドレスが公開されることはありません。

lg