|
|
|
cmake_minimum_required (VERSION 3.8)
|
|
|
|
project(SourceGroups)
|
|
|
|
|
|
|
|
# this is not really a test which can fail
|
|
|
|
# it is more an example with several source_group()
|
|
|
|
# commands.
|
|
|
|
# The created projects have to be loaded manually
|
|
|
|
# in Visual Studio/Xcode/Eclipse/...
|
|
|
|
# to see whether the correct groups have been created.
|
|
|
|
|
|
|
|
source_group(Base FILES main.c)
|
|
|
|
|
|
|
|
# a sub group
|
|
|
|
source_group(Base\\Sub1 FILES sub1/foo.c)
|
|
|
|
|
|
|
|
# a sub sub group
|
|
|
|
source_group(Base\\Sub1\\Sub2 FILES sub1/foobar.c)
|
|
|
|
|
|
|
|
# a group with empty name
|
|
|
|
source_group("" FILES foo.c)
|
|
|
|
|
|
|
|
# a group, whose name consists only of the delimiter
|
|
|
|
#should be handled the same way as an empty name
|
|
|
|
source_group("\\" FILES baz.c)
|
|
|
|
|
|
|
|
# a sub sub group whose last component has the same name
|
|
|
|
# as an already existing group
|
|
|
|
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})
|
|
|
|
|
|
|
|
set(tree_files_without_prefix ${root}/sub1/tree_bar.c
|
|
|
|
sub1/tree_baz.c
|
|
|
|
sub1/../sub1/tree_subdir/tree_foobar.c)
|
|
|
|
|
|
|
|
set(tree_files_with_prefix ${root}/tree_prefix_foo.c
|
|
|
|
tree_prefix_bar.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)
|