tengo una estructura de directorio de origen:la instalación de ciertos archivos con CMake
projectSource
|---src
|---include
|---CMakeLists.txt
y quisiera una estructura de directorio de instalación de
projectInstall
|---bin
|---include
|---lib
Mi fuente árbol de directorios está todo bajo control de versiones, por lo que cada fuente carpeta contiene un directorio adicional .svn/
. ¿Cuál es la forma más fácil de instalar todos los archivos de encabezado desde projectSource/include
hasta projectInstall/include
, omitiendo los directorios .svn
?
me gustaría usar algo como:
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)
pero a pesar de que estoy (intentar) instalar sólo los archivos que coinciden *.h
, todavía estoy recogiendo el directorio .svn/
y contenidos.
Uso de 'PATRÓN ".svn" EXCLUDE' funcionó, pero mi impresión de' PATRÓN FILES_MATCHING '* .h' 'era que sólo los archivos que coincide con el patrón sería instalado. No es ese el caso? – Chris
Sí, cuando 'PATTERN' se usa sin' EXCLUDE', solo instala patrones coincidentes. Estabas viendo svn cosas emparejadas porque .svn/dir contiene archivos con nombres que terminan en ".h". Entonces, explícitamente debes decirle a CMake que no mire en .svn/dirs. – arrowd
Ya veo, gracias por la explicación. – Chris