ho una struttura di directory di origine:l'installazione di alcuni file con CMake
projectSource
|---src
|---include
|---CMakeLists.txt
e vorrei una struttura di directory di installazione di
projectInstall
|---bin
|---include
|---lib
La mia fonte di directory è tutto sotto controllo di versione, in modo che ogni fonte la cartella contiene una directory aggiuntiva .svn/
. Qual è il modo più semplice per installare tutti i file di intestazione da projectSource/include
a projectInstall/include
, ignorando le directory .svn
?
mi piacerebbe usare qualcosa come:
set(PROJECT_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/include)
include_directories(${PROJECT_INCLUDE_DIR})
install(DIRECTORY ${PROJECT_INCLUDE_DIR}/
DESTINATION "include"
FILES_MATCHING PATTERN "*.h"
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
ma anche se sto (cercando di) installare solo i file che corrispondono *.h
, sto ancora raccogliendo la directory .svn/
e contenuti.
Usando 'A FUOCO ".svn" EXCLUDE' ha funzionato, ma la mia impressione di' FILES_MATCHING FUOCO '* .h' 'era che solo i file che corrispondono quel modello sarebbe installato. Non è questo il caso? – Chris
Sì, quando 'PATTERN' è usato senza' EXCLUDE', installa solo pattern abbinati. Stavi vedendo roba svn abbinata perché .svn/dir contiene file con nomi che terminano con ".h". Quindi hai esplicitamente bisogno di dire a CMake di non guardare in .svn/dirs. – arrowd
Vedo, grazie per la spiegazione. – Chris