From 1002fe0409403a3fd283a7c7872b625e1fb0dc63 Mon Sep 17 00:00:00 2001
From: Felix Albrecht <felix.albrecht@uni-muenster.de>
Date: Wed, 10 Oct 2012 22:23:41 +0200
Subject: [PATCH] [cmake] superlu and local/ changes

---
 CMakeLists.txt.felix    | 19 ++++---------------
 cmake/FindSuperLU.cmake | 36 ++++++++++++++++++++++++------------
 2 files changed, 28 insertions(+), 27 deletions(-)

diff --git a/CMakeLists.txt.felix b/CMakeLists.txt.felix
index 76e7a56bb..cff5fff45 100644
--- a/CMakeLists.txt.felix
+++ b/CMakeLists.txt.felix
@@ -1,7 +1,7 @@
 PROJECT( dune-detailed-discretizations)
 
 SET( CMAKE_CXX_COMPILER
-  "g++-4.4" CACHE FORCE
+  "g++-4.6" CACHE FORCE
   "" )
 
 # cmake settings
@@ -33,30 +33,25 @@ SET( POLORDER
   "POLORDER" )
 
 SET( ALUGRID_BASE_PATH
-  "${CMAKE_CURRENT_SOURCE_DIR}/../alugrid" CACHE STRING
+  "${CMAKE_CURRENT_SOURCE_DIR}/../local" CACHE STRING
   "ALUGRID_BASE_PATH" )
 
-#SET( ALBERTAGRID_BASE_PATH
-#  "${CMAKE_CURRENT_SOURCE_DIR}/../alberta" CACHE STRING
-#  "ALBERTAGRID_BASE_PATH" )
-
 SET( CUSTOM_FLAGS
   "-Wall -O0 -DDEBUG -g -fdiagnostics-show-option" CACHE LIST
   "CUSTOM_FLAGS" )
 
 # boost
-set( BOOST_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../boost" )
+set( BOOST_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../local" )
 find_package( Boost 1.42.0 REQUIRED )
 include_directories(${Boost_INCLUDE_DIR})
 link_directories( ${Boost_LIBRARY_DIRS} )
 
 # eigen3
-set( EIGEN3_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../eigen")
+set( EIGEN3_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../local/include/eigen3")
 find_package( Eigen3 REQUIRED)
 include_directories(${EIGEN3_INCLUDE_DIR})
 
 # superlu
-set( SUPERLU_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../superlu" )
 find_package( SuperLU REQUIRED)
 include_directories( ${SUPERLU_INCLUDES} )
 link_directories( ${SUPERLU_LIBRARY_DIRS} )
@@ -69,14 +64,8 @@ add_cxx_flags( -DPOLORDER=${POLORDER} )
 add_cxx_flags( -I${ALUGRID_BASE_PATH}/include
   -I${ALUGRID_BASE_PATH}/include/serial
   -I${ALUGRID_BASE_PATH}/include/duneinterface -DENABLE_ALUGRID )
-#add_cxx_flags( -DENABLE_ALBERTA=1
-#  -DWORLDDIM=${GRIDDIM}
-#  -DALBERTA_DIM=${GRIDDIM}
-#  -I${ALBERTAGRID_BASE_PATH}/include
-#  -I${ALBERTAGRID_BASE_PATH}/include/alberta )
 add_cxx_flags(-DBOOST_DATE_TIME_NO_LOCALE)
 link_directories( "${ALUGRID_BASE_PATH}/lib" )
-#link_directories( "${ALBERTAGRID_BASE_PATH}/lib" )
 add_cxx_flags(-std=c++0x)
 add_cxx_flags(${CUSTOM_FLAGS})
 
diff --git a/cmake/FindSuperLU.cmake b/cmake/FindSuperLU.cmake
index 2a3bb13c9..2d9f7d494 100644
--- a/cmake/FindSuperLU.cmake
+++ b/cmake/FindSuperLU.cmake
@@ -2,20 +2,32 @@ if (SUPERLU_INCLUDES AND SUPERLU_LIBRARIES)
   set(SUPERLU_FIND_QUIETLY TRUE)
 endif (SUPERLU_INCLUDES AND SUPERLU_LIBRARIES)
 
-find_path(SUPERLU_INCLUDES
-  NAMES supermatrix.h
-  HINTS ${SUPERLU_ROOT}
-  PATH_SUFFIXES "SRC" "include"
-  )
+find_package(BLAS)
 
-find_path(SUPERLU_LIBRARY_DIRS
-  NAMES "libsuperlu.a" "libsuperlu_4.3.a"
-  HINTS ${SUPERLU_ROOT}
-  PATH_SUFFIXES "lib"
+if(BLAS_FOUND)
+    
+  find_path(SUPERLU_INCLUDES
+    NAMES
+    superlu/supermatrix.h
+    PATHS
+    $ENV{SUPERLUDIR}
+    ${INCLUDE_INSTALL_DIR}
   )
-  
+
+  find_library(SUPERLU_LIBRARIES superlu PATHS $ENV{SUPERLUDIR} ${LIB_INSTALL_DIR})
+
+  if(SUPERLU_LIBRARIES AND CMAKE_COMPILER_IS_GNUCXX)
+    set(SUPERLU_LIBRARIES ${SUPERLU_LIBRARIES} -lgfortran)
+  endif(SUPERLU_LIBRARIES AND CMAKE_COMPILER_IS_GNUCXX)
+                                        
+  if(SUPERLU_LIBRARIES)
+    set(SUPERLU_LIBRARIES ${SUPERLU_LIBRARIES} ${BLAS_LIBRARIES})
+  endif(SUPERLU_LIBRARIES)
+                                                  
+endif(BLAS_FOUND)
+
 include(FindPackageHandleStandardArgs)
 find_package_handle_standard_args(SUPERLU DEFAULT_MSG
-                                  SUPERLU_INCLUDES SUPERLU_LIBRARY_DIRS)
+ SUPERLU_INCLUDES SUPERLU_LIBRARIES)
 
-mark_as_advanced(SUPERLU_INCLUDES SUPERLU_LIBRARY_DIRS)
+mark_as_advanced(SUPERLU_INCLUDES SUPERLU_LIBRARIES)
-- 
GitLab