CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
PROJECT(plee-the-bear)

SET( GAME_ROOT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" )

GET_DIRECTORY_PROPERTY(
  BEAR_ENGINE_INSTALL_EXECUTABLE_DIR DIRECTORY ../bear-engine
  DEFINITION BEAR_ENGINE_INSTALL_EXECUTABLE_DIR
  )

GET_DIRECTORY_PROPERTY(
  BEAR_ENGINE_INSTALL_LIBRARY_DIR DIRECTORY ../bear-engine
  DEFINITION BEAR_ENGINE_INSTALL_LIBRARY_DIR
  )

# where the game resources are installed
IF( NOT PTB_INSTALL_DATA_DIR )
  SET( PTB_INSTALL_DATA_DIR share/plee-the-bear )
ENDIF( NOT PTB_INSTALL_DATA_DIR )

# where the game executables are installed
IF( NOT PTB_INSTALL_EXECUTABLE_DIR )
  SET( PTB_INSTALL_EXECUTABLE_DIR bin )
ENDIF( NOT PTB_INSTALL_EXECUTABLE_DIR )

# where the game libraries (the items) are installed
IF( NOT PTB_INSTALL_CUSTOM_LIBRARY_DIR )
  SET( PTB_INSTALL_CUSTOM_LIBRARY_DIR lib )
ENDIF( NOT PTB_INSTALL_CUSTOM_LIBRARY_DIR )

# Directories where the executable and libraries are built
SET( EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}/bin" )
SET( LIBRARY_OUTPUT_PATH "${EXECUTABLE_OUTPUT_PATH}" )

# common flags
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" )

#-------------------------------------------------------------------------------
# check SDL
INCLUDE( FindSDL )

IF( NOT SDL_FOUND )
  MESSAGE( FATAL_ERROR "SDL lbrary must be installed." )
ELSE( NOT SDL_FOUND )
  #-----------------------------------------------------------------------------
  # Include directories for SDL
  INCLUDE_DIRECTORIES(
    ${SDL_INCLUDE_DIR}
    )
ENDIF( NOT SDL_FOUND )

#-------------------------------------------------------------------------------
# check SDL::mixer
INCLUDE( FindSDL_mixer )

IF( NOT SDLMIXER_FOUND )
  MESSAGE( FATAL_ERROR "SDL_mixer lbrary must be installed." )
ELSE( NOT SDLMIXER_FOUND )
  #-----------------------------------------------------------------------------
  # Include directories for all these libraries
  INCLUDE_DIRECTORIES(
    ${SDLMIXER_INCLUDE_DIR}
    )
ENDIF( NOT SDLMIXER_FOUND )

#-------------------------------------------------------------------------------
# various libraries

#-------------------------------------------------------------------------------
# Claw

# Not really optional, but we want to display a custom message if we do not find
# the module
INCLUDE(FindCLAW OPTIONAL)

IF( NOT CLAW_FOUND )
  MESSAGE( FATAL_ERROR
    "It seems that libclaw is not installed on your system. If your "
    "distribution does not give you an easy installation procedure, check "
    "http://libclaw.sourceforge.net/ to download it."
    )

ENDIF( NOT CLAW_FOUND )

#-------------------------------------------------------------------------------
# Include directories for Claw
INCLUDE_DIRECTORIES(
  ${CLAW_INCLUDE_DIRECTORY}
  ${CLAW_GRAPHIC_INCLUDE_DIRECTORY}
  )

#-------------------------------------------------------------------------------
# Link directories for Claw
LINK_DIRECTORIES(
  ${CLAW_LINK_DIRECTORY}
  ${CLAW_GRAPHIC_LINK_DIRECTORY}
  )

#-------------------------------------------------------------------------------
# Link directories for the game
LINK_DIRECTORIES(
  ${LIBRARY_OUTPUT_PATH}
  )

#-------------------------------------------------------------------------------
IF( BEAR_ENGINE_INCLUDE_DIRECTORY )
  INCLUDE_DIRECTORIES( "${BEAR_ENGINE_INCLUDE_DIRECTORY}" )
ELSE( BEAR_ENGINE_INCLUDE_DIRECTORY )
  INCLUDE_DIRECTORIES( ../bear-engine/core/src )
ENDIF( BEAR_ENGINE_INCLUDE_DIRECTORY )

IF( BEAR_ITEMS_INCLUDE_DIRECTORY )
  INCLUDE_DIRECTORIES( "${BEAR_ITEMS_INCLUDE_DIRECTORY}" )
ELSE( BEAR_ITEMS_INCLUDE_DIRECTORY )
  INCLUDE_DIRECTORIES( ../bear-engine/lib/src )
ENDIF( BEAR_ITEMS_INCLUDE_DIRECTORY )

#-------------------------------------------------------------------------------
SUBDIRS(
  src
  data
  desktop
  )

INSTALL(
  DIRECTORY "item-description"
  DESTINATION "share/bear-factory/plee-the-bear"
  FILE_PERMISSIONS OWNER_READ OWNER_WRITE
  GROUP_READ
  WORLD_READ
  DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
  GROUP_READ GROUP_EXECUTE
  WORLD_READ WORLD_EXECUTE
  PATTERN ".svn" EXCLUDE
  PATTERN "*~" EXCLUDE
)

IF(UNIX)
  CONFIGURE_FILE(
    "${CMAKE_CURRENT_SOURCE_DIR}/release/plee-the-bear.in"
    "${CMAKE_CURRENT_BINARY_DIR}/release/plee-the-bear"
    IMMEDIATE @ONLY
    )

  INSTALL( FILES "${CMAKE_CURRENT_BINARY_DIR}/release/plee-the-bear"
    DESTINATION ${PTB_INSTALL_EXECUTABLE_DIR}
    PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
      GROUP_READ GROUP_EXECUTE
      WORLD_READ WORLD_EXECUTE )
ENDIF(UNIX)
