Create cmake_function.cmake
This commit is contained in:
40
cmake/cmake_function.cmake
Normal file
40
cmake/cmake_function.cmake
Normal file
@@ -0,0 +1,40 @@
|
||||
#collect source files from given directory
|
||||
FUNCTION(collect_files output base_dir do_recurse globbing_exprs exclude_dirs)
|
||||
IF("${do_recurse}")
|
||||
SET(glob GLOB_RECURSE)
|
||||
ELSE()
|
||||
SET(glob GLOB)
|
||||
ENDIF()
|
||||
|
||||
SET(base_dir "${CMAKE_SOURCE_DIR}/${base_dir}")
|
||||
LIST(TRANSFORM globbing_exprs PREPEND "${base_dir}/")
|
||||
FILE(${glob} files CONFIGURE_DEPENDS ${globbing_exprs})
|
||||
|
||||
FOREACH(file IN LISTS files)
|
||||
SET(match FALSE)
|
||||
|
||||
FOREACH(dir IN LISTS exclude_dirs)
|
||||
IF("${file}" MATCHES "/${dir}/")
|
||||
SET(match TRUE)
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
|
||||
IF(NOT ${match})
|
||||
LIST(APPEND result "${file}")
|
||||
ENDIF()
|
||||
|
||||
ENDFOREACH()
|
||||
SET(${output} "${result}" PARENT_SCOPE)
|
||||
ENDFUNCTION()
|
||||
|
||||
FUNCTION(contains_filter output files regex)
|
||||
|
||||
FOREACH(file IN LISTS files)
|
||||
FILE(STRINGS "${file}" contents REGEX "${regex}")
|
||||
IF("${contents}")
|
||||
LIST(APPEND result "${file}")
|
||||
MESSAGE("Moced: ${file}")
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
SET(${output} "${result}" PARENT_SCOPE)
|
||||
ENDFUNCTION()
|
||||
Reference in New Issue
Block a user