cmake_minimum_required(VERSION 3.0 FATAL_ERROR) # # Look for needed libraries and compile them if they are not found # on the system. # # Blas find_library(BLAS_FOUND blas) if(NOT BLAS_FOUND) message(FATAL_ERROR "Blas library required") else() set(HAVE_BLAS 1 CACHE INTERNAL "Have blas" FORCE) set(BLAS_LIBRARIES blas CACHE INTERNAL "blas library" FORCE) endif() # Lapack find_library(LAPACK_FOUND lapack) if(NOT LAPACK_FOUND) message(FATAL_ERROR "Lapack library required") else() set(HAVE_LAPACK 1 CACHE INTERNAL "Have Lapack" FORCE) set(LAPACK_LIBRARIES lapack CACHE INTERNAL "lapack library" FORCE) endif() # Gsl find_library(GSL_FOUND gsl) if(NOT GSL_FOUND) message(FATAL_ERROR "Gsl library required") else() set(HAVE_GSL 1 CACHE INTERNAL "Have Gsl" FORCE) set(GSL_LIBRARIES "gsl" CACHE INTERNAL "gsl libraries" FORCE) endif() # cdd find_library(CDD_FOUND cdd) if(NOT CDD_FOUND) message(FATAL_ERROR "cdd library required") else() set(HAVE_CDD 1 CACHE INTERNAL "Have cdd" FORCE) set(CDD_LIBRARIES "cdd" CACHE INTERNAL "cdd libraries" FORCE) endif() # Eigen #find_package(Eigen3 REQUIRED NO_MODULE) #set(EIGEN_LIBRARIES "Eigen3" CACHE INTERNAL "Eigen libraries" FORCE) #set(EIGEN_INCLUDE_DIR "${EIGEN3_INCLUDE_DIR}" CACHE INTERNAL "Eigen include directory" FORCE) add_subdirectory(eigenlib) set(HAVE_EIGEN 1 CACHE INTERNAL "Have Eigen" FORCE) if(NOT HAVE_EIGENLIB_ON_SYSTEM) set(EIGEN_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/eigenlib ${CMAKE_CURRENT_BINARY_DIR}/eigenlib/Eigen CACHE INTERNAL "Eigen include directory" FORCE) else(NOT HAVE_EIGENLIB_ON_SYSTEM) set(EIGEN_INCLUDE_DIR /usr/include CACHE INTERNAL "Eigen include directory" FORCE) endif(NOT HAVE_EIGENLIB_ON_SYSTEM) # Otb add_subdirectory(otb) set(HAVE_OTB 1 CACHE INTERNAL "Have otb" FORCE) set(OTB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/otb CACHE INTERNAL "Otb include directory" FORCE) # dgqt add_subdirectory(dgqt) set(HAVE_DGQT 1 CACHE INTERNAL "Have dgqt" FORCE) set(DGQT_LIBRARIES dgqt CACHE INTERNAL "dgqt library" FORCE) set(DGQT_LIBRARY_DIRS ${CMAKE_CURRENT_BINARY_DIR}/dgqt CACHE INTERNAL "dgqt ibrary directory" FORCE) # voro++ add_subdirectory(voro++) set(HAVE_VORO1 CACHE INTERNAL "Have voro++" FORCE) set(VORO_LIBRARIES voro CACHE INTERNAL "voro++ libraries" FORCE) set(VORO_LIBRARY_DIRS ${CMAKE_CURRENT_BINARY_DIR} CACHE INTERNAL "voro++ library directory" FORCE) set(VORO_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE INTERNAL "voro++ include directory" FORCE) # rstartree add_subdirectory(rstartree) set(HAVE_RSTARTREE 1 CACHE INTERNAL "Have RStarTree" FORCE) set(RSTARTREE_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/rstartree CACHE INTERNAL "RStartTree include directory" FORCE) # cvxgen add_subdirectory(cvxgen) set(HAVE_CVXGEN CACHE INTERNAL "Have cvxgen" FORCE) set(CVXGEN_LIBRARIES cvxgen CACHE INTERNAL "cvxgen libraries" FORCE) set(CVXGEN_LIBRARY_DIRS ${CMAKE_CURRENT_BINARY_DIR}/cvxgen CACHE INTERNAL "cvxgen library directory" FORCE) set(CVXGEN_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/cvxgen CACHE INTERNAL "cvxgen include directory" FORCE) # iris add_subdirectory(iris) set(HAVE_IRIS CACHE INTERNAL "Have iris" FORCE) set(IRIS_LIBRARIES iris CACHE INTERNAL "iris libraries" FORCE) set(IRIS_LIBRARY_DIRS ${CMAKE_CURRENT_BINARY_DIR}/iris CACHE INTERNAL "iris library directory" FORCE) set(IRIS_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/iris CACHE INTERNAL "iris include directory" FORCE) # vcglib add_subdirectory(vcglib) set(HAVE_VCGLIB 1 CACHE INTERNAL "Have vcglib" FORCE) set(VCGLIB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/vcglib CACHE INTERNAL "vcglib include directory" FORCE) # meshlab add_subdirectory(meshlab) set(HAVE_MESHLAB 1 CACHE INTERNAL "Have meshlab" FORCE) set(MESHLAB_LIBRARIES meshlab CACHE INTERNAL "meshlab libraries" FORCE) set(MESHLAB_LIBRARY_DIRS ${CMAKE_CURRENT_BINARY_DIR}/meshlab CACHE INTERNAL "meshlab library directory" FORCE) set(MESHLAB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/meshlab CACHE INTERNAL "meshlab include directory" FORCE) # OpenMesh add_subdirectory(OpenMesh) set(HAVE_OPENMESH 1 CACHE INTERNAL "Have OpenMesh" FORCE) set(OPENMESH_LIBRARIES OpenMeshCore OpenMeshTools CACHE INTERNAL "OpenMesh libraries" FORCE) set(OPENMESH_LIBRARY_DIRS ${CMAKE_CURRENT_BINARY_DIR}/OpenMesh CACHE INTERNAL "OpenMesh library directory" FORCE) set(OPENMESH_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/OpenMesh CACHE INTERNAL "OpenMesh include directory" FORCE) # Minpack2 add_subdirectory(minpack2) set(HAVE_MINPACK2 1 CACHE INTERNAL "Have Minpack2" FORCE) set(MINPACK2_LIBRARIES Minpack2 CACHE INTERNAL "Minpack2 libraries" FORCE) set(MINPACK2_LIBRARY_DIRS ${CMAKE_CURRENT_BINARY_DIR}/minpack2 CACHE INTERNAL "Minpack2 library directory" FORCE) set(MINPACK2_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/minpack2 CACHE INTERNAL "Minpack2 include directory" FORCE) # Polylib #add_subdirectory(Polylib) #set(HAVE_POLYLIB 1 CACHE INTERNAL "Have Polylib" FORCE) #set(POLYLIB_LIBRARIES Polylib CACHE INTERNAL "Polylib libraries" FORCE) #set(POLYLIB_LIBRARY_DIRS ${CMAKE_CURRENT_BINARY_DIR}/Polylib CACHE INTERNAL "Polylib library directory" FORCE) #set(POLYLIB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Polylib/include CACHE INTERNAL "Polylib include directory" FORCE) # Cork add_subdirectory(cork) set(HAVE_CORK 1 CACHE INTERNAL "Have Cork" FORCE) set(CORK_LIBRARIES Cork CACHE INTERNAL "Cork libraries" FORCE) set(CORK_LIBRARY_DIRS ${CMAKE_CURRENT_BINARY_DIR}/cork CACHE INTERNAL "Cork library directory" FORCE) set(CORK_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/cork CACHE INTERNAL "Cork include directory" FORCE)