mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-11 03:09:01 +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 "*")
|
file(GLOB Eigen_directory_files "*")
|
||||||
|
|
||||||
|
escape_string_as_regex(ESCAPED_CMAKE_CURRENT_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||||
|
|
||||||
foreach(f ${Eigen_directory_files})
|
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})
|
list(APPEND Eigen_directory_files_to_install ${f})
|
||||||
endif()
|
endif()
|
||||||
endforeach(f ${Eigen_directory_files})
|
endforeach(f ${Eigen_directory_files})
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
file(GLOB Eigen_src_subdirectories "*")
|
file(GLOB Eigen_src_subdirectories "*")
|
||||||
|
escape_string_as_regex(ESCAPED_CMAKE_CURRENT_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||||
foreach(f ${Eigen_src_subdirectories})
|
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})
|
add_subdirectory(${f})
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
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…
x
Reference in New Issue
Block a user