Installing specific files with CMake

I have a source directory structure:

projectSource
|---src
|---include
|---CMakeLists.txt

and would like to set the installation directory structure

projectInstall
|---bin
|---include
|---lib

The source directory tree is versioned, so each source folder contains an additional directory .svn/. The easiest way to install all header files from projectSource/includeto projectInstall/includeby skipping directories .svn?

I would like to use something like:

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)

but even if I (try) to install only the files that match *.h, I still collect the directory and contents .svn/.

+5
source share
1 answer

You can add a keyword EXCLUDEin PATTERN:

install(DIRECTORY ${PROJECT_INCLUDE_DIR}/
    DESTINATION "include"
    FILES_MATCHING
    PATTERN "*.h"
    PATTERN ".svn" EXCLUDE
    PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
+12
source

All Articles