CMake: mimic folder hierarchy with source_group for MSVC
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@10973 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
27
cmake/SourceGroupFunctions.cmake
Normal file
27
cmake/SourceGroupFunctions.cmake
Normal file
@@ -0,0 +1,27 @@
|
||||
# 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)
|
||||
foreach(source_file ${${SRCS}})
|
||||
source_group_file(${source_file} "Source Files\\")
|
||||
endforeach()
|
||||
|
||||
foreach(header_file ${${HDRS}})
|
||||
source_group_file(${header_file} "Header Files\\")
|
||||
endforeach()
|
||||
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()
|
||||
Reference in New Issue
Block a user