Mam strukturę katalogów Źródło:Instalacja niektórych plików z CMake
projectSource
|---src
|---include
|---CMakeLists.txt
i chciałoby się zainstalować strukturę katalogów
projectInstall
|---bin
|---include
|---lib
mojego drzewa katalogu źródłowego wszystko jest pod kontrolą wersji, więc każde źródło folder zawiera dodatkowy katalog .svn/
. Jaki jest najłatwiejszy sposób instalacji wszystkich plików nagłówkowych od projectSource/include
do projectInstall/include
, pomijając katalogi .svn
?
chciałbym użyć czegoś takiego:
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)
ale chociaż jestem (próby) zainstalować tylko pliki pasujące *.h
, ja wciąż podnosząc katalogu .svn/
i zawartość.
Korzystanie 'wzorcem ".svn" EXCLUDE' pracował, ale moje wrażenie' FILES_MATCHING wzorca "* .h" 'było to, że tylko pliki pasujące do tego wzoru zostanie zainstalowany. Czy tak nie jest? – Chris
Tak, gdy 'PATTERN' jest używany bez' EXCLUDE', instaluje tylko dopasowane wzorce. Widziałeś, że rzeczy svn są dopasowane, ponieważ .svn/dir zawiera pliki o nazwach kończących się na ".h". Więc wyraźnie musisz powiedzieć CMake, aby nie zaglądał do .svn/dirs. – arrowd
Rozumiem, dziękuję za wyjaśnienie. – Chris