project(SourceGroups)

# We need ansi C support, otherwise it doesn't build e.g. on HP-UX:
# main.c", line 3: error 1705: Function prototypes are an ANSI feature.
IF(CMAKE_ANSI_CFLAGS)
  SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_ANSI_CFLAGS}")
ENDIF(CMAKE_ANSI_CFLAGS)


# 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)


add_executable(SourceGroups main.c bar.c foo.c sub1/foo.c sub1/foobar.c baz.c)