cmake_minimum_required(VERSION 2.0)
PROJECT (dave)

IF ( NOT CMAKE_BUILD_TYPE )
   SET( CMAKE_BUILD_TYPE Debug )
   MESSAGE( STATUS "Setting build type to '${CMAKE_BUILD_TYPE}'" )
ELSE ( NOT CMAKE_BUILD_TYPE )
   MESSAGE( STATUS "Build type set to '${CMAKE_BUILD_TYPE}' by user." )
ENDIF ( NOT CMAKE_BUILD_TYPE )

SET( CMAKE_CXX_FLAGS_DEBUG "-g -Wall" CACHE STRING
    "Flags used by the C++ compiler during maintainer builds."
    FORCE )
SET( CMAKE_C_FLAGS_DEBUG "-g -Wall" CACHE STRING
    "Flags used by the C compiler during maintainer builds."
    FORCE )
SET( CMAKE_EXE_LINKER_FLAGS_DEBUG
    "-Wl" CACHE STRING
    "Flags used for linking binaries during maintainer builds."
    FORCE )
SET( CMAKE_SHARED_LINKER_FLAGS_DEBUG
    "-Wl" CACHE STRING
    "Flags used by the shared libraries linker during maintainer builds."
    FORCE )
        
#SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")

FIND_PACKAGE(OpenGL REQUIRED)
FIND_PACKAGE(SDL REQUIRED)
FIND_PACKAGE(SDL_image REQUIRED)
FIND_PACKAGE(SDL_mixer REQUIRED)

#FIND_LIBRARY(LIB3DS_LIBRARY 3ds)

SET(SOURCES
        analog_effects.cpp
        image.cpp
        library.cpp
        opengl.cpp
        fellow.cpp
        game.cpp
        level.cpp
        teletext.cpp
        editor.cpp
        ability.cpp
        model.cpp
        remote.cpp
        kdtree.cpp
	lib3ds/atmosphere.c
	lib3ds/background.c
	lib3ds/camera.c
	lib3ds/chunk.c
	lib3ds/ease.c
	lib3ds/file.c
	lib3ds/io.c
	lib3ds/light.c
	lib3ds/material.c
	lib3ds/matrix.c
	lib3ds/mesh.c
	lib3ds/node.c
	lib3ds/quat.c
	lib3ds/shadow.c
	lib3ds/tcb.c
	lib3ds/tracks.c
	lib3ds/vector.c
	lib3ds/viewport.c
	)

SET(SOURCES2
	teletext_editor.cpp
        image.cpp
        library.cpp
        teletext.cpp
        )


INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR} ${SDLMIXER_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR})
SET(EXTRA_LIBS ${OPENGL_LIBRARIES} ${SDL_LIBRARY} ${SDLIMAGE_LIBRARY} ${SDLMIXER_LIBRARY})	


IF (APPLE)
        SET(SOURCES ${SOURCES} SDLMain.m)
	SET(SOURCES2 ${SOURCES2} SDLMain.m)
	SET(MACOSX_BUNDLE_BUNDLE_NAME "Dave the Ordinary Spaceman")
	SET(MACOSX_BUNDLE_ICON_FILE daveico.icns)
ELSE (APPLE)
        FIND_LIBRARY(GLEW_LIBRARY GLEW)
        SET(EXTRA_LIBS ${EXTRA_LIBS} ${GLEW_LIBRARY})
ENDIF (APPLE)

ADD_EXECUTABLE(dave WIN32 MACOSX_BUNDLE ${SOURCES})
ADD_EXECUTABLE(editor WIN32 MACOSX_BUNDLE ${SOURCES2})

TARGET_LINK_LIBRARIES( dave ${EXTRA_LIBS} )
TARGET_LINK_LIBRARIES( editor ${EXTRA_LIBS} )

IF(APPLE)
	FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dave.app/Contents/Resources)
	ADD_CUSTOM_TARGET(resource_copy_graphics COMMAND  cp -Rf ${CMAKE_CURRENT_SOURCE_DIR}/graphics ./dave.app/Contents/Resources)
	ADD_CUSTOM_TARGET(resource_copy_levels COMMAND  cp -Rf ${CMAKE_CURRENT_SOURCE_DIR}/levels ./dave.app/Contents/Resources)
        ADD_CUSTOM_TARGET(resource_copy_audio COMMAND  cp -Rf ${CMAKE_CURRENT_SOURCE_DIR}/audio ./dave.app/Contents/Resources)
	ADD_CUSTOM_TARGET(resource_copy_misc COMMAND  cp -f ${CMAKE_CURRENT_SOURCE_DIR}/dave.conf.sample
		${CMAKE_CURRENT_SOURCE_DIR}/original_media/daveico.icns ./dave.app/Contents/Resources/)
        ADD_CUSTOM_TARGET(install_frameworks COMMAND  tar -xzf ${CMAKE_CURRENT_SOURCE_DIR}/osxframeworkit.tgz)
	ADD_DEPENDENCIES(dave resource_copy_graphics resource_copy_levels resource_copy_audio resource_copy_misc install_frameworks)
ENDIF(APPLE)

