fix undefined-behavior src/pid_fuzzy.c:119:25
[liba.git] / cmake / core / file.cmake
blobf6b9c99ce6c17f0b1f9073318aeb3839669c9f40
1 function(file_scaner var)
2   cmake_parse_arguments(FILE "RECURSE" "RELATIVE" "OPTIONS;DIR;EXT" ${ARGN})
4   if(FILE_RELATIVE)
5     list(APPEND FILE_OPTIONS RELATIVE ${FILE_RELATIVE})
6   endif()
8   string(REPLACE ";." ";" FILE_EXT ";${FILE_EXT};")
9   foreach(dir ${FILE_DIR} ${FILE_UNPARSED_ARGUMENTS})
10     foreach(ext ${FILE_EXT})
11       list(APPEND FILE_OPTIONS "${dir}/*.${ext}")
12     endforeach()
13   endforeach()
15   if(FILE_RECURSE)
16     file(GLOB_RECURSE FILES ${FILE_OPTIONS})
17   else()
18     file(GLOB FILES ${FILE_OPTIONS})
19   endif()
21   set(${var} ${FILES} PARENT_SCOPE)
22 endfunction()
24 function(file_filter var)
25   cmake_parse_arguments(FILE "" "VAR" "EXT" ${ARGN})
27   set(FILES)
28   string(REPLACE ";." ";" FILE_EXT ";${FILE_EXT};")
29   foreach(arg ${${FILE_VAR}} ${FILE_UNPARSED_ARGUMENTS})
30     get_filename_component(ext ${arg} EXT)
31     string(REGEX REPLACE "^\\." "" ext "${ext}")
32     list(FIND FILE_EXT "${ext}" index)
33     if(${index} GREATER -1)
34       list(APPEND FILES ${arg})
35     endif()
36   endforeach()
38   set(${var} ${FILES} PARENT_SCOPE)
39 endfunction()