12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #
- # Licensed to the Apache Software Foundation (ASF) under one
- # or more contributor license agreements. See the NOTICE file
- # distributed with this work for additional information
- # regarding copyright ownership. The ASF licenses this file
- # to you under the Apache License, Version 2.0 (the
- # "License"); you may not use this file except in compliance
- # with the License. You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- #
- FUNCTION(AUTO_SOURCES RETURN_VALUE PATTERN SOURCE_SUBDIRS)
- IF ("${SOURCE_SUBDIRS}" STREQUAL "RECURSE")
- SET(PATH ".")
- IF (${ARGC} EQUAL 4)
- LIST(GET ARGV 3 PATH)
- ENDIF ()
- ENDIF()
- IF ("${SOURCE_SUBDIRS}" STREQUAL "RECURSE")
- UNSET(${RETURN_VALUE})
- FILE(GLOB SUBDIR_FILES "${PATH}/${PATTERN}")
- LIST(APPEND ${RETURN_VALUE} ${SUBDIR_FILES})
- FILE(GLOB SUBDIRS RELATIVE ${PATH} ${PATH}/*)
- FOREACH(DIR ${SUBDIRS})
- IF (IS_DIRECTORY ${PATH}/${DIR})
- IF (NOT "${DIR}" STREQUAL "CMAKEFILES")
- FILE(GLOB_RECURSE SUBDIR_FILES "${PATH}/${DIR}/${PATTERN}")
- LIST(APPEND ${RETURN_VALUE} ${SUBDIR_FILES})
- ENDIF()
- ENDIF()
- ENDFOREACH()
- ELSE ()
- FILE(GLOB ${RETURN_VALUE} "${PATTERN}")
- FOREACH (PATH ${SOURCE_SUBDIRS})
- FILE(GLOB SUBDIR_FILES "${PATH}/${PATTERN}")
- LIST(APPEND ${RETURN_VALUE} ${SUBDIR_FILES})
- ENDFOREACH(PATH ${SOURCE_SUBDIRS})
- ENDIF ()
- IF (${FILTER_OUT})
- LIST(REMOVE_ITEM ${RETURN_VALUE} ${FILTER_OUT})
- ENDIF()
- SET(${RETURN_VALUE} ${${RETURN_VALUE}} PARENT_SCOPE)
- ENDFUNCTION(AUTO_SOURCES)
- FUNCTION(CONTAINS_STRING FILE SEARCH RETURN_VALUE)
- FILE(STRINGS ${FILE} FILE_CONTENTS REGEX ".*${SEARCH}.*")
- IF (FILE_CONTENTS)
- SET(${RETURN_VALUE} TRUE PARENT_SCOPE)
- ENDIF()
- ENDFUNCTION(CONTAINS_STRING)
|