+# Debugging function
+function(ocv_cmake_dump_vars)
+ cmake_parse_arguments(DUMP "" "TOFILE" "" ${ARGN})
+ set(regex "${DUMP_UNPARSED_ARGUMENTS}")
+ get_cmake_property(_variableNames VARIABLES)
+ set(VARS "")
+ foreach(_variableName ${_variableNames})
+ if(_variableName MATCHES "${regex}")
+ set(VARS "${VARS}${_variableName}=${${_variableName}}\n")
+ endif()
+ endforeach()
+ if(DUMP_TOFILE)
+ file(WRITE ${CMAKE_BINARY_DIR}/${DUMP_TOFILE} "${VARS}")
+ else()
+ message(AUTHOR_WARNING "${VARS}")
+ endif()
+endfunction()
+
+
# Search packages for host system instead of packages for target system
# in case of cross compilation thess macro should be defined by toolchain file
if(NOT COMMAND find_host_package)
################################################################################################
# short command to setup source group
function(ocv_source_group group)
- cmake_parse_arguments(OCV_SOURCE_GROUP "" "" "GLOB" ${ARGN})
- file(GLOB srcs ${OCV_SOURCE_GROUP_GLOB})
- source_group(${group} FILES ${srcs})
+ cmake_parse_arguments(SG "" "DIRBASE" "GLOB;GLOB_RECURSE;FILES" ${ARGN})
+ set(files "")
+ if(SG_FILES)
+ list(APPEND files ${SG_FILES})
+ endif()
+ if(SG_GLOB)
+ file(GLOB srcs ${SG_GLOB})
+ list(APPEND files ${srcs})
+ endif()
+ if(SG_GLOB_RECURSE)
+ file(GLOB_RECURSE srcs ${SG_GLOB_RECURSE})
+ list(APPEND files ${srcs})
+ endif()
+ if(SG_DIRBASE)
+ foreach(f ${files})
+ file(RELATIVE_PATH fpart "${SG_DIRBASE}" "${f}")
+ if(fpart MATCHES "^\\.\\.")
+ message(AUTHOR_WARNING "Can't detect subpath for source_group command: Group=${group} FILE=${f} DIRBASE=${SG_DIRBASE}")
+ set(fpart "")
+ else()
+ get_filename_component(fpart "${fpart}" PATH)
+ if(fpart)
+ set(fpart "/${fpart}") # add '/'
+ string(REPLACE "/" "\\" fpart "${fpart}")
+ endif()
+ endif()
+ source_group("${group}${fpart}" FILES ${f})
+ endforeach()
+ else()
+ source_group(${group} FILES ${files})
+ endif()
endfunction()