source_group: Add options create groups matching directory tree

Add `TREE` and `PREFIX` arguments to enable this behavior.
This commit is contained in:
Mateusz Janek
2016-12-21 15:27:49 +01:00
committed by Brad King
parent 6154a2cddc
commit b42330be21
10 changed files with 227 additions and 3 deletions
+12 -1
View File
@@ -30,6 +30,17 @@ source_group(Base\\Sub1\\Base FILES bar.c)
# a group without files, is currently not created
source_group(EmptyGroup)
set(root ${CMAKE_CURRENT_SOURCE_DIR})
add_executable(SourceGroups main.c bar.c foo.c sub1/foo.c sub1/foobar.c baz.c README.txt)
set(tree_files_without_prefix ${root}/sub1/tree_bar.c
${root}/sub1/tree_baz.c
${root}/sub1/tree_subdir/tree_foobar.c)
set(tree_files_with_prefix ${root}/tree_foo.c)
source_group(TREE ${root} FILES ${tree_files_without_prefix})
source_group(TREE ${root} PREFIX tree_root/subgroup FILES ${tree_files_with_prefix})
add_executable(SourceGroups main.c bar.c foo.c sub1/foo.c sub1/foobar.c baz.c
${tree_files_with_prefix} ${tree_files_without_prefix} README.txt)
+7
View File
@@ -5,10 +5,17 @@ extern int bar(void);
extern int foobar(void);
extern int barbar(void);
extern int baz(void);
extern int tree_foo(void);
extern int tree_bar(void);
extern int tree_foobar(void);
extern int tree_baz(void);
int main()
{
printf("foo: %d bar: %d foobar: %d barbar: %d baz: %d\n", foo(), bar(),
foobar(), barbar(), baz());
printf("tree_foo: %d tree_bar: %d tree_foobar: %d tree_baz: %d\n",
tree_foo(), tree_bar(), tree_foobar(), tree_baz());
return 0;
}
+4
View File
@@ -0,0 +1,4 @@
int tree_bar(void)
{
return 8;
}
+4
View File
@@ -0,0 +1,4 @@
int tree_baz(void)
{
return 9;
}
@@ -0,0 +1,4 @@
int tree_foobar(void)
{
return 7;
}
+4
View File
@@ -0,0 +1,4 @@
int tree_foo(void)
{
return 6;
}