
#-------------------------------------------------------------------------------
# Generate Source Groups
#-------------------------------------------------------------------------------

function(smtg_generate_source_groups root)
    foreach(source ${ARGN})
        set(path ${source})
        string(REGEX REPLACE "${root}/" "" path "${path}")
        string(REGEX REPLACE "[\\\\/][^\\\\/]*$" "" path "${path}")
        string(REGEX REPLACE "^[\\\\/]" "" path "${path}")
        string(REGEX REPLACE "\\.\\.[\\\\/]" "" path "${path}")
        string(REGEX REPLACE "/" "\\\\\\\\" path "${path}")
        source_group(${path} FILES ${source})
    endforeach()
endfunction()

function(smtg_target_generate_source_groups target)
	get_target_property(_source_list ${target} SOURCES)

	foreach(_source IN ITEMS ${_source_list})
		get_filename_component(_source_path "${_source}" PATH)
		string(REPLACE "/" "\\" _source_path_msvc "${_source_path}")
		source_group("${_source_path_msvc}" FILES "${_source}")
	endforeach()
endfunction()