aboutsummaryrefslogtreecommitdiff
path: root/cmake/Util.cmake
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2023-01-25 18:23:01 +0000
committerJosh Rahm <joshuarahm@gmail.com>2023-01-25 18:23:01 +0000
commit142d9041391780ac15b89886a54015fdc5c73995 (patch)
tree0f6b5cac1a60810a03f52826c9e67c9e2780b033 /cmake/Util.cmake
parentad86b5db74922285699ab2a1dbb2ff20e6268a33 (diff)
parent3c48d3c83fc21dbc0841f9210f04bdb073d73cd1 (diff)
downloadrneovim-142d9041391780ac15b89886a54015fdc5c73995.tar.gz
rneovim-142d9041391780ac15b89886a54015fdc5c73995.tar.bz2
rneovim-142d9041391780ac15b89886a54015fdc5c73995.zip
Merge remote-tracking branch 'upstream/master' into userreg
Diffstat (limited to 'cmake/Util.cmake')
-rw-r--r--cmake/Util.cmake18
1 files changed, 14 insertions, 4 deletions
diff --git a/cmake/Util.cmake b/cmake/Util.cmake
index 343a729305..e15b44d29a 100644
--- a/cmake/Util.cmake
+++ b/cmake/Util.cmake
@@ -49,12 +49,13 @@
# simple be added to FILES
# GLOB_DIRS - The directories to recursively search for files with extension
# GLOB_PAT
-#
-function(add_glob_targets)
+# EXCLUDE - List of paths to skip (regex). Works on both directories and
+# files.
+function(add_glob_target)
cmake_parse_arguments(ARG
"REQUIRED"
"TARGET;COMMAND;GLOB_PAT;TOUCH_STRATEGY"
- "FLAGS;FILES;GLOB_DIRS"
+ "FLAGS;FILES;GLOB_DIRS;EXCLUDE"
${ARGN}
)
@@ -72,10 +73,19 @@ function(add_glob_targets)
endif()
foreach(gd ${ARG_GLOB_DIRS})
- file(GLOB_RECURSE globfiles ${PROJECT_SOURCE_DIR}/${gd}/${ARG_GLOB_PAT})
+ file(GLOB_RECURSE globfiles_unnormalized ${PROJECT_SOURCE_DIR}/${gd}/${ARG_GLOB_PAT})
+ set(globfiles)
+ foreach(f ${globfiles_unnormalized})
+ file(TO_CMAKE_PATH "${f}" f)
+ list(APPEND globfiles ${f})
+ endforeach()
list(APPEND ARG_FILES ${globfiles})
endforeach()
+ foreach(exclude_pattern ${ARG_EXCLUDE})
+ list(FILTER ARG_FILES EXCLUDE REGEX ${exclude_pattern})
+ endforeach()
+
if(NOT ARG_TOUCH_STRATEGY)
set(ARG_TOUCH_STRATEGY PER_FILE)
endif()