Cmake install: Exclude some files from being installed

Files like CMakeLists.txt or *.lyx~ should not be part
of an installation.
This commit is contained in:
Kornel Benko 2016-04-14 11:15:08 +02:00
parent f6dd83a936
commit 882b7b01d0

View File

@ -9,6 +9,9 @@ endif()
# the macro scans the directories "_parent_src_dir/_dir/_current_dir" for *._file_type files
# and installs the files in CMAKE_INSTALL_PREFIX/_current_dir
# dir_item is on item of the remaining arguments
#
# Special handling for ${_file_type} == "*"
# Here we try to exclude files which we do not want to install
macro(lyx_install _parent_src_dir _gl_dir _file_type)
#message("checking parents ${_parent_src_dir}")
file(GLOB _dirs RELATIVE "${_parent_src_dir}" ${_parent_src_dir}/${_gl_dir})
@ -36,17 +39,13 @@ macro(lyx_install _parent_src_dir _gl_dir _file_type)
#message(STATUS "removing dir ${_current_item}")
list(REMOVE_ITEM files_list "${_current_item}")
else()
if(_current_item MATCHES "/\\.[^/]+$")
#message(STATUS "removing hidden ${_current_item}")
list(REMOVE_ITEM files_list "${_current_item}")
endif()
if(_current_item MATCHES "\\.in$")
#message(STATUS "removing .in file ${_current_item}")
list(REMOVE_ITEM files_list "${_current_item}")
endif()
if(_current_item MATCHES "\\.py$")
list(REMOVE_ITEM files_list "${_current_item}")
list(APPEND program_list "${_current_item}")
if ("${_file_type}" STREQUAL "*")
foreach(_mask "/\\.[^/]+$" "\\.in$" "\\.py$" "CMakeLists\\.txt$" "\\.lyx~$")
if(_current_item MATCHES ${_mask})
#message(STATUS "removing item ${_current_item}")
list(REMOVE_ITEM files_list "${_current_item}")
endif()
endforeach()
endif()
endif()
endif()
@ -97,6 +96,7 @@ lyx_install(${TOP_SRC_DIR}/lib kbd * .)
lyx_install(${TOP_SRC_DIR}/lib layouts * .)
lyx_install(${TOP_SRC_DIR}/lib lyx2lyx *.py .)
lyx_install(${TOP_SRC_DIR}/lib scripts *.py .)
lyx_install(${TOP_SRC_DIR}/lib . *.py .)
lyx_install(${TOP_SRC_DIR}/lib scripts *.R .)
lyx_install(${TOP_SRC_DIR}/lib templates * . springer)
lyx_install(${TOP_SRC_DIR}/lib tex * .)