CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0)
PROJECT(TheoraPlayer)

INCLUDE(CheckCSourceCompiles)
INCLUDE(CheckCCompilerFlag)

IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
    SET(LINUX TRUE)
ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux")

IF(CMAKE_COMPILER_IS_GNUCC)
    SET(GCC TRUE)
ENDIF(CMAKE_COMPILER_IS_GNUCC)

ADD_DEFINITIONS(-w)  # !!! FIXME

IF(GCC)
    ADD_DEFINITIONS(-pipe -Wall -fsigned-char)

    # See if -fno-stack-protector is available to us.
    # It doesn't seem to work well, and it adds bulk to the binary.
    CHECK_C_COMPILER_FLAG("-fno-stack-protector" OVERGROWTH_GCC_HAS_STACKPROT)
    IF(OVERGROWTH_GCC_HAS_STACKPROT)
        ADD_DEFINITIONS(-fno-stack-protector)
    ENDIF(OVERGROWTH_GCC_HAS_STACKPROT)

    # CMake mailing list had this hack for getting rid of -rdynamic:
    #   http://public.kitware.com/pipermail/cmake/2006-July/010404.html
    IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
        SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS)
        SET(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS)
    ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
ENDIF(GCC)

IF(UNIX)  # This is Linux _and_ Mac OS X (and other things, too!).
    ADD_DEFINITIONS(-DPLATFORM_UNIX=1)
ENDIF(UNIX)

IF(LINUX)
    ADD_DEFINITIONS(-DPLATFORM_LINUX=1)
ENDIF(LINUX)

SET(SRCDIR "${CMAKE_SOURCE_DIR}/../Source")
SET(LIBDIR "${CMAKE_SOURCE_DIR}/../Libraries")

INCLUDE_DIRECTORIES(
    ${SRCDIR}/TheoraPlayer
    ${LIBDIR}/Linux/include
    ${LIBDIR}/theora/include
    ${LIBDIR}/ogg/include
    ${LIBDIR}/vorbis/include
)

FILE(GLOB THEORAPLAYER_SRCS
    ${SRCDIR}/TheoraPlayer/*.cpp
)

ADD_LIBRARY(TheoraPlayer STATIC ${THEORAPLAYER_SRCS})

