Installing Targets¶
install(TARGETS targets... ] ] ] )
TARGETS
フォームは、プロジェクトからのターゲットインストールのためのルールを指定するものである。 実行可能ファイルは、ARCHIVE
、LIBRARY
、RUNTIME
、FRAMEWORK
、BUNDLE
の 5 種類です。実行可能ファイルは RUNTIME
ターゲットとして扱われますが、OS X では MACOSX_BUNDLE
属性が付いたものは BUNDLE
ターゲットと扱われます。 スタティック・ライブラリはARCHIVE
ターゲットとして扱われますが、OS XではFRAMEWORK
プロパティでマークされたものはFRAMEWORK
ターゲットとして扱われます。モジュール・ライブラリは常にLIBRARY
ターゲットとして扱われます。 DLLプラットフォームでは、共有ライブラリのDLL部分はRUNTIME
ターゲットとして扱われ、対応するインポートライブラリはARCHIVE
ターゲットとして扱われます。ARCHIVE
、LIBRARY
、RUNTIME
、FRAMEWORK
引数は、以降のプロパティを適用するターゲットの種類を変更します。 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_DIRECTORIES
target property of the <targets>
when exported by the install(EXPORT)
command. 相対パスが指定された場合、$<INSTALL_PREFIX>
からの相対パスとして扱われる。これは他の引数グループとは独立しており、実際には何もインストールしない。 ターゲットは異なる場所に複数回インストールすることができます。 仮想的なターゲットmyExe
、mySharedLib
、myStaticLib
を考えてみましょう。 コード:
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>
というエクスポートを関連付けます。 このオプションは、RUNTIME
、LIBRARY
または ARCHIVE
オプションの前に指定する必要があります。
ターゲットプロパティを TRUE
に設定したターゲットをインストールすることは未定義の動作です。
ターゲットインストール DESTINATION
に与えられるインストール先は、構文 $<...>
の “generator expression” を使用することができます。 利用可能な式については、cmake-generator-expressions(7)
マニュアルを参照してください。