
set_property(GLOBAL PROPERTY EIGEN_CURRENT_SUBPROJECT "Unsupported")
add_custom_target(BuildUnsupported)

include_directories(../../test ../../unsupported ../../Eigen 
                    ${CMAKE_CURRENT_BINARY_DIR}/../../test)

                    
find_package(GoogleHash)
if(GOOGLEHASH_FOUND)
  add_definitions("-DEIGEN_GOOGLEHASH_SUPPORT")
  include_directories(${GOOGLEHASH_INCLUDES})
  ei_add_property(EIGEN_TESTED_BACKENDS  "GoogleHash, ")
else(GOOGLEHASH_FOUND)
  ei_add_property(EIGEN_MISSING_BACKENDS  "GoogleHash, ")
endif(GOOGLEHASH_FOUND)

find_package(Adolc)
if(ADOLC_FOUND)
  include_directories(${ADOLC_INCLUDES})
  ei_add_property(EIGEN_TESTED_BACKENDS "Adolc, ")
  ei_add_test(forward_adolc "" ${ADOLC_LIBRARIES})
else(ADOLC_FOUND)
  ei_add_property(EIGEN_MISSING_BACKENDS "Adolc, ")
endif(ADOLC_FOUND)

# this test seems to never have been successful on x87, so is considered to contain a FP-related bug.
# see thread: "non-linear optimization test summary"
ei_add_test(NonLinearOptimization)

ei_add_test(NumericalDiff)
ei_add_test(autodiff_scalar)
ei_add_test(autodiff)

if (NOT CMAKE_CXX_COMPILER MATCHES "clang\\+\\+$")
ei_add_test(BVH)
endif()

ei_add_test(matrix_exponential)
ei_add_test(matrix_function)
ei_add_test(matrix_power)
ei_add_test(matrix_square_root)
ei_add_test(alignedvector3)

ei_add_test(FFT)

find_package(MPFR 2.3.0)
find_package(GMP)
if(MPFR_FOUND)
  include_directories(${MPFR_INCLUDES} ./mpreal)
  ei_add_property(EIGEN_TESTED_BACKENDS "MPFR C++, ")
  set(EIGEN_MPFR_TEST_LIBRARIES ${MPFR_LIBRARIES} ${GMP_LIBRARIES})
 ei_add_test(mpreal_support "" "${EIGEN_MPFR_TEST_LIBRARIES}" )
else()
  ei_add_property(EIGEN_MISSING_BACKENDS "MPFR C++, ")
endif()

ei_add_test(sparse_extra   "" "")

find_package(FFTW)
if(FFTW_FOUND)
  ei_add_property(EIGEN_TESTED_BACKENDS "fftw, ")
  include_directories( ${FFTW_INCLUDES} )
  if(FFTWL_LIB)
    ei_add_test(FFTW  "-DEIGEN_FFTW_DEFAULT -DEIGEN_HAS_FFTWL" "${FFTW_LIBRARIES}" )
  else()
    ei_add_test(FFTW  "-DEIGEN_FFTW_DEFAULT" "${FFTW_LIBRARIES}" )
  endif()
else()
  ei_add_property(EIGEN_MISSING_BACKENDS "fftw, ")
endif()

option(EIGEN_TEST_NO_OPENGL "Disable OpenGL support in unit tests" OFF)
if(NOT EIGEN_TEST_NO_OPENGL)
  find_package(OpenGL)
  find_package(GLUT)
  find_package(GLEW)
  if(OPENGL_FOUND AND GLUT_FOUND AND GLEW_FOUND)
    include_directories(${OPENGL_INCLUDE_DIR} ${GLUT_INCLUDE_DIR} ${GLEW_INCLUDE_DIRS})
    ei_add_property(EIGEN_TESTED_BACKENDS "OpenGL, ")
    set(EIGEN_GL_LIB ${GLUT_LIBRARIES} ${GLEW_LIBRARIES} ${OPENGL_LIBRARIES})
    ei_add_test(openglsupport  "" "${EIGEN_GL_LIB}" )
  else()
    ei_add_property(EIGEN_MISSING_BACKENDS "OpenGL, ")
  endif()
else()
    ei_add_property(EIGEN_MISSING_BACKENDS "OpenGL, ")
endif()

ei_add_test(polynomialsolver)
ei_add_test(polynomialutils)
ei_add_test(splines)
ei_add_test(incomplete_cholesky)
ei_add_test(gmres)
ei_add_test(minres)
ei_add_test(levenberg_marquardt)
ei_add_test(kronecker_product)

if(EIGEN_TEST_CXX11)
  # It should be safe to always run these tests as there is some fallback code for
  # older compiler that don't support cxx11.
  ei_add_test(cxx11_meta "-std=c++0x")
  ei_add_test(cxx11_tensor_simple "-std=c++0x")
#  ei_add_test(cxx11_tensor_symmetry "-std=c++0x")
  ei_add_test(cxx11_tensor_assign "-std=c++0x")
  ei_add_test(cxx11_tensor_dimension "-std=c++0x")
  ei_add_test(cxx11_tensor_index_list "-std=c++0x")
  ei_add_test(cxx11_tensor_mixed_indices "-std=c++0x")
  ei_add_test(cxx11_tensor_comparisons "-std=c++0x")
  ei_add_test(cxx11_tensor_contraction "-std=c++0x")
  ei_add_test(cxx11_tensor_convolution "-std=c++0x")
  ei_add_test(cxx11_tensor_expr "-std=c++0x")
  ei_add_test(cxx11_tensor_math "-std=c++0x")
  ei_add_test(cxx11_tensor_forced_eval "-std=c++0x")
  ei_add_test(cxx11_tensor_fixed_size "-std=c++0x")
  ei_add_test(cxx11_tensor_const "-std=c++0x")
  ei_add_test(cxx11_tensor_of_const_values "-std=c++0x")
  ei_add_test(cxx11_tensor_of_complex "-std=c++0x")
  ei_add_test(cxx11_tensor_of_strings "-std=c++0x")
  ei_add_test(cxx11_tensor_intdiv "-std=c++0x")
  ei_add_test(cxx11_tensor_lvalue "-std=c++0x")
  ei_add_test(cxx11_tensor_map "-std=c++0x")
  ei_add_test(cxx11_tensor_broadcasting "-std=c++0x")
  ei_add_test(cxx11_tensor_chipping "-std=c++0x")
  ei_add_test(cxx11_tensor_concatenation "-std=c++0x")
  ei_add_test(cxx11_tensor_inflation "-std=c++0x")
  ei_add_test(cxx11_tensor_morphing "-std=c++0x")
  ei_add_test(cxx11_tensor_padding "-std=c++0x")
  ei_add_test(cxx11_tensor_patch "-std=c++0x")
  ei_add_test(cxx11_tensor_image_patch "-std=c++0x")
  ei_add_test(cxx11_tensor_volume_patch "-std=c++0x")
  ei_add_test(cxx11_tensor_reduction "-std=c++0x")
  ei_add_test(cxx11_tensor_argmax "-std=c++0x")
  ei_add_test(cxx11_tensor_shuffling "-std=c++0x")
  ei_add_test(cxx11_tensor_striding "-std=c++0x")
  ei_add_test(cxx11_tensor_thread_pool "-std=c++0x")
  ei_add_test(cxx11_tensor_ref "-std=c++0x")
  ei_add_test(cxx11_tensor_random "-std=c++0x")
  ei_add_test(cxx11_tensor_casts "-std=c++0x")
  ei_add_test(cxx11_tensor_reverse "-std=c++0x")
  ei_add_test(cxx11_tensor_layout_swap "-std=c++0x")
  ei_add_test(cxx11_tensor_io "-std=c++0x")
  ei_add_test(cxx11_tensor_generator "-std=c++0x")
  ei_add_test(cxx11_tensor_custom_op "-std=c++0x")

  # These tests needs nvcc
#  ei_add_test(cxx11_tensor_device "-std=c++0x")
#  ei_add_test(cxx11_tensor_cuda "-std=c++0x")
#  ei_add_test(cxx11_tensor_contract_cuda "-std=c++0x")
#  ei_add_test(cxx11_tensor_reduction_cuda "-std=c++0x")
#  ei_add_test(cxx11_tensor_random_cuda "-std=c++0x")
#  ei_add_test(cxx11_tensor_argmax_cuda "-std=c++0x")

endif()
