PROJECT(Eigen)
SET(EIGEN_VERSION_NUMBER "2.0-beta1")

#if the svnversion program is absent, this will leave the SVN_REVISION string empty,
#but won't stop CMake.
EXECUTE_PROCESS(COMMAND svnversion -n ${CMAKE_SOURCE_DIR}
                OUTPUT_VARIABLE EIGEN_SVN_REVISION)

IF(EIGEN_SVN_REVISION)
SET(EIGEN_VERSION "${EIGEN_VERSION_NUMBER} (SVN revision ${EIGEN_SVN_REVISION})")
ELSE(EIGEN_SVN_REVISION)
SET(EIGEN_VERSION "${EIGEN_VERSION_NUMBER}")
ENDIF(EIGEN_SVN_REVISION)

SET(EIGEN_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
SET(EIGEN_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})

CMAKE_MINIMUM_REQUIRED(VERSION 2.4)

set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)

OPTION(BUILD_TESTS "Build tests" OFF)
OPTION(BUILD_DEMOS "Build demos" OFF)
OPTION(BUILD_LIB "Build the binary shared library" OFF)
OPTION(BUILD_BTL "Build benchmark suite" OFF)

IF(BUILD_LIB)
  OPTION(TEST_LIB "Build the unit tests using the library (disable -pedantic)" OFF)
ENDIF(BUILD_LIB)

SET(CMAKE_INCLUDE_CURRENT_DIR ON)

IF(CMAKE_COMPILER_IS_GNUCXX)
  IF(CMAKE_SYSTEM_NAME MATCHES Linux)
    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -fno-exceptions -fno-check-new -fno-common -fstrict-aliasing")
    IF(NOT TEST_LIB)
      SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic")
    ENDIF(NOT TEST_LIB)
    IF(TEST_SSE2)
      SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse2")
      MESSAGE("Enabling SSE2 in tests/examples")
    ENDIF(TEST_SSE2)
    IF(TEST_SSE3)
      SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse3")
      MESSAGE("Enabling SSE3 in tests/examples")
    ENDIF(TEST_SSE3)
    IF(TEST_SSSE3)
      SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mssse3")
      MESSAGE("Enabling SSSE3 in tests/examples")
    ENDIF(TEST_SSSE3)
    IF(TEST_ALTIVEC)
      SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -maltivec -mabi=altivec")
      MESSAGE("Enabling AltiVec in tests/examples")
    ENDIF(TEST_ALTIVEC)
  ENDIF(CMAKE_SYSTEM_NAME MATCHES Linux)
ENDIF(CMAKE_COMPILER_IS_GNUCXX)

INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})

ADD_SUBDIRECTORY(Eigen)
ADD_SUBDIRECTORY(test)
ADD_SUBDIRECTORY(doc)
ADD_SUBDIRECTORY(demos)

IF(BUILD_BTL)
  ADD_SUBDIRECTORY(bench/btl)
ENDIF(BUILD_BTL)
