Installing Targets¶

install(TARGETS targets... ] ] ] )

O formulário TARGETS especifica regras para instalar alvos a partir de aproject. Há cinco tipos de arquivos de destino que podem ser instalados:ARCHIVE, LIBRARY, RUNTIME, FRAMEWORK, e BUNDLE.Executables são tratados como RUNTIME alvos, exceto que aqueles marcados com a propriedade MACOSX_BUNDLE são tratados como BUNDLE alvos no OS X. As bibliotecas estáticas são tratadas como ARCHIVE alvos, exceto que as marcadas com a propriedade FRAMEWORK são tratadas como FRAMEWORK alvos no OS X. As bibliotecas estáticas são sempre tratadas como LIBRARY alvos. Para plataformas não-DLL as bibliotecas compartilhadas são tratadas como LIBRARY alvos, exceto que as marcadas com a propriedade FRAMEWORK são tratadas como FRAMEWORK alvos no OS X. Para plataformas DLL a parte DLL de uma biblioteca compartilhada é tratada como um alvo RUNTIME e a biblioteca de importação correspondente é tratada como um alvo ARCHIVE. Todos os sistemas baseados em Windows, incluindo Cygwin são plataformas DLL. Os argumentos ARCHIVE, LIBRARY, RUNTIME, e FRAMEWORK mudam o tipo de alvo ao qual as propriedades subseqüentes se aplicam. Se apenas um for dado, então apenas alvos desse tipo serão instalados (que podem ser usados para instalar apenas uma DLL ou apenas uma importlibrary).

>

Os PRIVATE_HEADER, PUBLIC_HEADER, e RESOURCE argumentoscausam as propriedades subsequentes a serem aplicadas à instalação de um arquivo associado a uma biblioteca de FRAMEWORK arquivos associados à biblioteca compartilhada em plataformas não-Apple. As regras definidas por estes argumentos são ignoradas nas plataformas Apple porque os arquivos associados são instalados nos locais apropriados dentro da pasta do framework. Veja a documentação da opçãoPRIVATE_HEADER, PUBLIC_HEADER, eRESOURCE propriedades do alvo para detalhes.

>A opção NAMELINK_ONLY ou NAMELINK_SKIP pode ser especificada como uma opçãoLIBRARY. Em algumas plataformas uma biblioteca compartilhada versionada tem um link simbólico como:

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

onde lib<name>.so.1 é o soname da biblioteca e lib<name>.so é um “namelink” que permite aos linkers encontrar a biblioteca quando dado-l<name>. A opção NAMELINK_ONLY causa a instalação de apenas um link de então quando um alvo da biblioteca é instalado. A opção NAMELINK_SKIP causa a instalação de arquivos de biblioteca diferentes do namelink quando o alvo alibrary é instalado. Quando nenhuma das duas opções é dada, ambas as partes são instaladas. Em plataformas onde bibliotecas compartilhadas versionadas não possuem namelinks ou quando uma biblioteca não está versionada a opção NAMELINK_SKIP instala a biblioteca e a opção NAMELINK_ONLYopção não instala nada. Veja as propriedades VERSION e SOVERSION alvo para detalhes sobre a criação de bibliotecas compartilhadas versionadas.

O INCLUDES DESTINATION especifica uma lista de diretórios que serão adicionados à propriedade INTERFACE_INCLUDE_DIRECTORIESalvo do <targets> quando exportados pelo comandoinstall(EXPORT). Se um caminho relativo é especificado, ele é tratado como relativo a $<INSTALL_PREFIX>.Isto é independente do resto dos grupos de argumentos e não instala realmente nada.

Um ou mais grupos de propriedades podem ser especificados em uma única chamada para a forma de TARGETS deste comando. Um alvo pode ser instalado mais do que uma vez em diferentes locais. Considere alvos hipotéticos myExe,mySharedLib, e myStaticLib. O código:

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

irá instalar myExe a <prefix>/bin e myStaticLib a <prefix>/lib/static. Em plataformas não-DLL mySharedLib será instalado até <prefix>/lib e /some/full/path. Em plataformas DLL-mySharedLib DLL será instalado até <prefix>/bin e /some/full/path e sua biblioteca de importação será instalada até <prefix>/lib/static e /some/full/path.

A opção EXPORT associa os arquivos de destino instalados com anexport chamado <export-name>. Ela deve aparecer antes de qualquer RUNTIME,LIBRARY, ou ARCHIVE opções. Para instalar o arquivo de exportação em si, ligue para install(EXPORT), documentado abaixo.

Instalando um alvo com o conjunto EXCLUDE_FROM_ALL target propertyset para TRUE tem comportamento indefinido.

The install destination given to the target install DESTINATION mayuse use “generator expressions” with the syntax $<...>. Veja o manualcmake-generator-expressions(7) para as expressões disponíveis.

admin

Deixe uma resposta

O seu endereço de email não será publicado.

lg