# Sets the source files to use
set (Epiar_src
	${Epiar_SRC_DIR}/main.cpp
	${Epiar_SRC_DIR}/menu.cpp
	${Epiar_SRC_DIR}/menu.h
	${Epiar_SRC_DIR}/common.h
	${Epiar_SRC_DIR}/defines.h
	${Epiar_SRC_DIR}/includes.h
	${Epiar_SRC_DIR}/version.h
	)
set (Epiar_src ${Epiar_src}
	)
set (Epiar_src ${Epiar_src}
	${Epiar_SRC_DIR}/audio/audio.cpp
	${Epiar_SRC_DIR}/audio/audio_lua.cpp
	${Epiar_SRC_DIR}/audio/music.cpp
	${Epiar_SRC_DIR}/audio/sound.cpp
	${Epiar_SRC_DIR}/audio/audio.h
	${Epiar_SRC_DIR}/audio/audio_lua.h
	${Epiar_SRC_DIR}/audio/music.h
	${Epiar_SRC_DIR}/audio/sound.h
	)
set (Epiar_src ${Epiar_src}
	${Epiar_SRC_DIR}/Engine/alliances.h
	${Epiar_SRC_DIR}/Engine/camera.h
	${Epiar_SRC_DIR}/Engine/console.h
	${Epiar_SRC_DIR}/Engine/commodities.h
	${Epiar_SRC_DIR}/Engine/engines.h
	${Epiar_SRC_DIR}/Engine/hud.h
	${Epiar_SRC_DIR}/Engine/mission.h
	${Epiar_SRC_DIR}/Engine/models.h
	${Epiar_SRC_DIR}/Engine/outfit.h
	${Epiar_SRC_DIR}/Engine/simulation.h
	${Epiar_SRC_DIR}/Engine/simulation_lua.h
	${Epiar_SRC_DIR}/Engine/starfield.h
	${Epiar_SRC_DIR}/Engine/technologies.h
	${Epiar_SRC_DIR}/Engine/weapons.h
	${Epiar_SRC_DIR}/Engine/alliances.cpp
	${Epiar_SRC_DIR}/Engine/camera.cpp
	${Epiar_SRC_DIR}/Engine/console.cpp
	${Epiar_SRC_DIR}/Engine/commodities.cpp
	${Epiar_SRC_DIR}/Engine/engines.cpp
	${Epiar_SRC_DIR}/Engine/hud.cpp
	${Epiar_SRC_DIR}/Engine/mission.cpp
	${Epiar_SRC_DIR}/Engine/models.cpp
	${Epiar_SRC_DIR}/Engine/outfit.cpp
	${Epiar_SRC_DIR}/Engine/simulation.cpp
	${Epiar_SRC_DIR}/Engine/simulation_lua.cpp
	${Epiar_SRC_DIR}/Engine/starfield.cpp
	${Epiar_SRC_DIR}/Engine/technologies.cpp
	${Epiar_SRC_DIR}/Engine/weapons.cpp
	)
set (Epiar_src ${Epiar_src}
	${Epiar_SRC_DIR}/Graphics/animation.h
	${Epiar_SRC_DIR}/Graphics/font.h
	${Epiar_SRC_DIR}/Graphics/image.h
	${Epiar_SRC_DIR}/Graphics/video.h
	${Epiar_SRC_DIR}/Graphics/animation.cpp
	${Epiar_SRC_DIR}/Graphics/font.cpp
	${Epiar_SRC_DIR}/Graphics/image.cpp
	${Epiar_SRC_DIR}/Graphics/video.cpp
	)
set (Epiar_src ${Epiar_src}
	${Epiar_SRC_DIR}/Input/input.cpp
	)
set (Epiar_src ${Epiar_src}
	${Epiar_SRC_DIR}/Sprites/ai.h
	${Epiar_SRC_DIR}/Sprites/ai_lua.h
	${Epiar_SRC_DIR}/Sprites/ai.cpp
	${Epiar_SRC_DIR}/Sprites/ai_lua.cpp
	${Epiar_SRC_DIR}/Sprites/effects.h
	${Epiar_SRC_DIR}/Sprites/gate.h
	${Epiar_SRC_DIR}/Sprites/planets.h
	${Epiar_SRC_DIR}/Sprites/planets_lua.h
	${Epiar_SRC_DIR}/Sprites/player.h
	${Epiar_SRC_DIR}/Sprites/projectile.h
	${Epiar_SRC_DIR}/Sprites/ship.h
	${Epiar_SRC_DIR}/Sprites/sprite.h
	${Epiar_SRC_DIR}/Sprites/spritemanager.h
	${Epiar_SRC_DIR}/Sprites/effects.cpp
	${Epiar_SRC_DIR}/Sprites/gate.cpp
	${Epiar_SRC_DIR}/Sprites/planets.cpp
	${Epiar_SRC_DIR}/Sprites/planets_lua.cpp
	${Epiar_SRC_DIR}/Sprites/player.cpp
	${Epiar_SRC_DIR}/Sprites/projectile.cpp
	${Epiar_SRC_DIR}/Sprites/ship.cpp
	${Epiar_SRC_DIR}/Sprites/sprite.cpp
	${Epiar_SRC_DIR}/Sprites/spritemanager.cpp
	)
set (Epiar_src ${Epiar_src}
	${Epiar_SRC_DIR}/UI/widgets.h
	${Epiar_SRC_DIR}/UI/ui_action.cpp
	${Epiar_SRC_DIR}/UI/ui_action.h
	${Epiar_SRC_DIR}/UI/ui_button.cpp
	${Epiar_SRC_DIR}/UI/ui_button.h
	${Epiar_SRC_DIR}/UI/ui_checkbox.cpp
	${Epiar_SRC_DIR}/UI/ui_checkbox.h
	${Epiar_SRC_DIR}/UI/ui_container.cpp
	${Epiar_SRC_DIR}/UI/ui_container.h
	${Epiar_SRC_DIR}/UI/ui_dialogs.cpp
	${Epiar_SRC_DIR}/UI/ui_dialogs.h
	${Epiar_SRC_DIR}/UI/ui.cpp
	${Epiar_SRC_DIR}/UI/ui.h
	${Epiar_SRC_DIR}/UI/ui_dropdown.h
	${Epiar_SRC_DIR}/UI/ui_dropdown.cpp
	${Epiar_SRC_DIR}/UI/ui_frame.h
	${Epiar_SRC_DIR}/UI/ui_frame.cpp
	${Epiar_SRC_DIR}/UI/ui_label.cpp
	${Epiar_SRC_DIR}/UI/ui_label.h
	${Epiar_SRC_DIR}/UI/ui_lua.cpp
	${Epiar_SRC_DIR}/UI/ui_lua.h
	${Epiar_SRC_DIR}/UI/ui_map.cpp
	${Epiar_SRC_DIR}/UI/ui_map.h
	${Epiar_SRC_DIR}/UI/ui_picture.cpp
	${Epiar_SRC_DIR}/UI/ui_picture.h
	${Epiar_SRC_DIR}/UI/ui_paragraph.cpp
	${Epiar_SRC_DIR}/UI/ui_paragraph.h
	${Epiar_SRC_DIR}/UI/ui_scrollbar.cpp
	${Epiar_SRC_DIR}/UI/ui_scrollbar.h
	${Epiar_SRC_DIR}/UI/ui_slider.cpp
	${Epiar_SRC_DIR}/UI/ui_slider.h
	${Epiar_SRC_DIR}/UI/ui_tabs.cpp
	${Epiar_SRC_DIR}/UI/ui_tabs.h
	${Epiar_SRC_DIR}/UI/ui_text.cpp
	${Epiar_SRC_DIR}/UI/ui_text.h
	${Epiar_SRC_DIR}/UI/ui_textarea.cpp
	${Epiar_SRC_DIR}/UI/ui_textarea.h
	${Epiar_SRC_DIR}/UI/ui_textbox.cpp
	${Epiar_SRC_DIR}/UI/ui_textbox.h
	${Epiar_SRC_DIR}/UI/ui_widget.cpp
	${Epiar_SRC_DIR}/UI/ui_widget.h
	${Epiar_SRC_DIR}/UI/ui_window.cpp
	${Epiar_SRC_DIR}/UI/ui_window.h
	)
set (Epiar_src ${Epiar_src}
	${Epiar_SRC_DIR}/Utilities/argparser.cpp
	${Epiar_SRC_DIR}/Utilities/argparser.h
	${Epiar_SRC_DIR}/Utilities/components.cpp
	${Epiar_SRC_DIR}/Utilities/components.h
	${Epiar_SRC_DIR}/Utilities/coordinate.cpp
	${Epiar_SRC_DIR}/Utilities/coordinate.h
	${Epiar_SRC_DIR}/Utilities/file.cpp
	${Epiar_SRC_DIR}/Utilities/file.h
	${Epiar_SRC_DIR}/Utilities/filesystem.cpp
	${Epiar_SRC_DIR}/Utilities/filesystem.h
	${Epiar_SRC_DIR}/Utilities/log.cpp
	${Epiar_SRC_DIR}/Utilities/log.h
	${Epiar_SRC_DIR}/Utilities/lua.cpp
	${Epiar_SRC_DIR}/Utilities/lua.h
	${Epiar_SRC_DIR}/Utilities/options.cpp
	${Epiar_SRC_DIR}/Utilities/options.h
	${Epiar_SRC_DIR}/Utilities/quadtree.cpp
	${Epiar_SRC_DIR}/Utilities/quadtree.h
	${Epiar_SRC_DIR}/Utilities/resource.cpp
	${Epiar_SRC_DIR}/Utilities/resource.h
	${Epiar_SRC_DIR}/Utilities/string_convert.h
	${Epiar_SRC_DIR}/Utilities/timer.cpp
	${Epiar_SRC_DIR}/Utilities/timer.h
	${Epiar_SRC_DIR}/Utilities/trig.cpp
	${Epiar_SRC_DIR}/Utilities/trig.h
	${Epiar_SRC_DIR}/Utilities/xml.cpp
	${Epiar_SRC_DIR}/Utilities/xml.h
	)
if (WIN32)
  if(MINGW)
	# resource compilation for mingw
	ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/epiar_rc.o
						COMMAND ${CMAKE_RC_COMPILER}
							-I${CMAKE_CURRENT_SOURCE_DIR}
							-i${Epiar_SRC_DIR}/epiar.rc
							-o ${CMAKE_CURRENT_BINARY_DIR}/epiar_rc.o)
	set(Epiar_src ${Epiar_src} ${CMAKE_CURRENT_BINARY_DIR}/epiar_rc.o)
  else(MINGW)
	set (Epiar_src ${Epiar_src} ${Epiar_SRC_DIR}/epiar.rc)
  endif(MINGW)
endif (WIN32)

# Add tests
if (COMPILE_TESTS)
	# Just add all .cpp and .h files in the test directory
	file(GLOB Epiar_Tests "${Epiar_SRC_DIR}/Tests/*.cpp" "${Epiar_SRC_DIR}/Tests/*.h")
	set (Epiar_src ${Epiar_src}
			${Epiar_Tests}
		)
endif (COMPILE_TESTS)


# Add groups for source file
source_group(AI REGULAR_EXPRESSION ".*/AI/.*")
source_group(audio REGULAR_EXPRESSION ".*/audio/.*")
source_group(Engine REGULAR_EXPRESSION ".*/Engine/.*")
source_group(Graphics REGULAR_EXPRESSION ".*/Graphics/.*")
source_group(Input REGULAR_EXPRESSION ".*/Input/.*")
source_group(Menu REGULAR_EXPRESSION ".*/Menu/.*")
source_group(Server REGULAR_EXPRESSION ".*/Server/.*")
source_group(Sprites REGULAR_EXPRESSION ".*/Sprites/.*")
source_group(UI REGULAR_EXPRESSION ".*/UI/.*")
source_group(Utilities REGULAR_EXPRESSION ".*/Utilities/.*")
source_group(Resource "${Epiar_SRC_DIR}/epiar.rc")

add_executable(EpiarBIN WIN32 ${Epiar_src})

if (APPLE)
	# mac osx needs sdlmain compiled separately
	include_directories(${Epiar_OUT_DIR})
	add_library(SDLmain STATIC
		${Epiar_OUT_DIR}/SDLMain.m)
	add_dependencies(EpiarBIN SDLmain)
	target_link_libraries(EpiarBIN SDLmain)
endif (APPLE)

# vim:ft=cmake

