PROJECT(BTL)

CMAKE_MINIMUM_REQUIRED(VERSION 2.4)

set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
include(MacroOptionalAddSubdirectory)

OPTION(BTL_NOVEC "Disable SSE/Altivec optimizations when possible" OFF)

SET(CMAKE_INCLUDE_CURRENT_DIR ON)

IF(CMAKE_COMPILER_IS_GNUCXX)
  SET(CMAKE_CXX_FLAGS "-g0 -O3 -DNDEBUG")
  IF(NOT BTL_NOVEC)
    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse2")
  ELSE(NOT BTL_NOVEC)
    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DEIGEN_DONT_VECTORIZE")
  ENDIF(NOT BTL_NOVEC)
ENDIF(CMAKE_COMPILER_IS_GNUCXX)

include_directories(
  ${PROJECT_SOURCE_DIR}/actions
  ${PROJECT_SOURCE_DIR}/generic_bench
  ${PROJECT_SOURCE_DIR}/generic_bench/utils
  ${PROJECT_SOURCE_DIR}/libs/STL)


MACRO(BTL_ADD_BENCH targetname)
  ADD_EXECUTABLE(${ARGV})
  ADD_TEST(${targetname} "${targetname}")
ENDMACRO(BTL_ADD_BENCH)

ENABLE_TESTING()

# Eigen2
find_package(Eigen2)
if (EIGEN2_FOUND)
  macro_optional_add_subdirectory(libs/eigen2 ON)
endif (EIGEN2_FOUND)

# GMM++
find_package(GMM)
if (GMM_FOUND)
  macro_optional_add_subdirectory(libs/gmm ON)
endif (GMM_FOUND)

# Boost
find_package(Boost)
if (Boost_FOUND)
  include_directories(${Boost_INCLUDE_DIRS})
  macro_optional_add_subdirectory(libs/ublas ON)
endif (Boost_FOUND)

# blitz
find_package(Blitz)
if (BLITZ_FOUND)
  macro_optional_add_subdirectory(libs/blitz ON)
  macro_optional_add_subdirectory(libs/tiny_blitz ON)
endif (BLITZ_FOUND)

# cblas
find_package(CBLAS)
if (CBLAS_FOUND)
  macro_optional_add_subdirectory(libs/C_BLAS ON)
endif (CBLAS_FOUND)


macro_optional_add_subdirectory(libs/f77 ON)
macro_optional_add_subdirectory(libs/C ON)
macro_optional_add_subdirectory(libs/STL ON)
macro_optional_add_subdirectory(libs/STL_algo ON)

add_subdirectory(data)

