diff options
author | Lioncash <mathew1800@gmail.com> | 2018-01-17 19:37:34 -0500 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2018-01-17 21:51:43 -0500 |
commit | e710a1b9894d835d740ed63c03098fd637f61f63 (patch) | |
tree | 7585a15cdf38ea2913a847c738c84e769e43ea77 /CMakeLists.txt | |
parent | ee08c39b7251c6a037014b503ecf70ebf8dc5ed5 (diff) |
CMakeLists: Derive the source directory grouping from targets themselves
Removes the need to store to separate SRC and HEADER variables, and then
construct the target in most cases.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index d814bb74f..aa2154cb1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -323,12 +323,14 @@ endif() # This function should be passed a list of all files in a target. It will automatically generate # file groups following the directory hierarchy, so that the layout of the files in IDEs matches the # one in the filesystem. -function(create_directory_groups) +function(create_target_directory_groups target_name) # Place any files that aren't in the source list in a separate group so that they don't get in # the way. source_group("Other Files" REGULAR_EXPRESSION ".") - foreach(file_name ${ARGV}) + get_target_property(target_sources "${target_name}" SOURCES) + + foreach(file_name IN LISTS target_sources) get_filename_component(dir_name "${file_name}" PATH) # Group names use '\' as a separator even though the entire rest of CMake uses '/'... string(REPLACE "/" "\\" group_name "${dir_name}") |