mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-02-17 18:09:55 +08:00
Improves the filter for hidden files in "Eigen" and "Eigen/src".
This generic solution prevent cmake from having an error .svn folders when the source folder is under subversion.
This commit is contained in:
parent
5a65d7970a
commit
4c5932f8f5
@ -1,6 +1,12 @@
|
||||
include(RegexUtils)
|
||||
test_escape_string_as_regex()
|
||||
|
||||
file(GLOB Eigen_directory_files "*")
|
||||
|
||||
escape_string_as_regex(ESCAPED_CMAKE_CURRENT_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
||||
foreach(f ${Eigen_directory_files})
|
||||
if(NOT f MATCHES ".txt" AND NOT f MATCHES "${CMAKE_CURRENT_SOURCE_DIR}/src")
|
||||
if(NOT f MATCHES "\\.txt" AND NOT f MATCHES "${ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/[.].+" AND NOT f MATCHES "${ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/src")
|
||||
list(APPEND Eigen_directory_files_to_install ${f})
|
||||
endif()
|
||||
endforeach(f ${Eigen_directory_files})
|
||||
|
@ -1,6 +1,7 @@
|
||||
file(GLOB Eigen_src_subdirectories "*")
|
||||
escape_string_as_regex(ESCAPED_CMAKE_CURRENT_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
foreach(f ${Eigen_src_subdirectories})
|
||||
if(NOT f MATCHES ".txt")
|
||||
if(NOT f MATCHES "\\.txt" AND NOT f MATCHES "${ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/[.].+" )
|
||||
add_subdirectory(${f})
|
||||
endif()
|
||||
endforeach()
|
||||
|
19
cmake/RegexUtils.cmake
Normal file
19
cmake/RegexUtils.cmake
Normal file
@ -0,0 +1,19 @@
|
||||
function(escape_string_as_regex _str_out _str_in)
|
||||
STRING(REGEX REPLACE "\\\\" "\\\\\\\\" FILETEST2 "${_str_in}")
|
||||
STRING(REGEX REPLACE "([.$+*?|-])" "\\\\\\1" FILETEST2 "${FILETEST2}")
|
||||
STRING(REGEX REPLACE "\\^" "\\\\^" FILETEST2 "${FILETEST2}")
|
||||
STRING(REGEX REPLACE "\\(" "\\\\(" FILETEST2 "${FILETEST2}")
|
||||
STRING(REGEX REPLACE "\\)" "\\\\)" FILETEST2 "${FILETEST2}")
|
||||
STRING(REGEX REPLACE "\\[" "\\\\[" FILETEST2 "${FILETEST2}")
|
||||
STRING(REGEX REPLACE "\\]" "\\\\]" FILETEST2 "${FILETEST2}")
|
||||
SET(${_str_out} "${FILETEST2}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(test_escape_string_as_regex)
|
||||
SET(test1 "\\.^$-+*()[]?|")
|
||||
escape_string_as_regex(test2 "${test1}")
|
||||
SET(testRef "\\\\\\.\\^\\$\\-\\+\\*\\(\\)\\[\\]\\?\\|")
|
||||
if(NOT test2 STREQUAL testRef)
|
||||
message("Error in the escape_string_for_regex function : \n ${test1} was escaped as ${test2}, should be ${testRef}")
|
||||
endif(NOT test2 STREQUAL testRef)
|
||||
endfunction()
|
Loading…
Reference in New Issue
Block a user