stk-code_catmod/cmake/SourceGroupFunctions.cmake
hikerstk af70fc938d On VS don't use a Source folder, which is just one
unnecessary hierarchy.


git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14451 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2013-11-15 22:45:14 +00:00

40 lines
1.4 KiB
CMake

# Generate source groups which mimic the original folder hierarchy.
# This is mainly useful for MSVC's project explorer
# - SRCS list of source files
# - HDRS list of header files
function(source_group_hierarchy SRCS HDRS)
if(MSVC)
# This removes the 'Source Files' folder, which is
# not really necessary. Also, put header and source
# files into the same folder
foreach(source_file ${${SRCS}})
source_group_file(${source_file} "")
endforeach()
foreach(header_file ${${HDRS}})
source_group_file(${header_file} "")
endforeach()
else()
foreach(source_file ${${SRCS}})
source_group_file(${source_file} "Source Files\\")
endforeach()
foreach(header_file ${${HDRS}})
source_group_file(${header_file} "Source Files\\")
endforeach()
endif()
endfunction()
# Determine source_group depending on file path
# - FILE path to a file (header or source)
# - GROUP_PREFIX prefix for group name
function(source_group_file file group_prefix)
get_filename_component(file_path ${file} PATH)
if(${file_path} STREQUAL "src")
source_group("${group_prefix}" FILES ${file})
else()
string(REGEX REPLACE "^src/(.*)$" "\\1" group_name ${file_path})
string(REPLACE "/" "\\\\" group_name ${group_name})
source_group("${group_prefix}${group_name}" FILES ${file})
endif()
endfunction()