From: Matthias Maier Date: Fri, 10 Aug 2012 10:02:52 +0000 (+0000) Subject: Some progress for contrib umfpack X-Git-Tag: v8.0.0~1079^2~943 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c0ceda68af1bb9e367577d78453139a0cc63486a;p=dealii.git Some progress for contrib umfpack git-svn-id: https://svn.dealii.org/branches/branch_cmake@25864 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/CMakeLists.txt b/deal.II/CMakeLists.txt index 06e421facb..c0cfc84210 100644 --- a/deal.II/CMakeLists.txt +++ b/deal.II/CMakeLists.txt @@ -14,7 +14,7 @@ SET(CMAKE_INCLUDE_CURRENT_DIR true) OPTION(DEAL_II_USE_CONTRIB "Build and use contrib libraries bundled with the source tarball." - ON + OFF ) OPTION(DEAL_II_WITH_THREADS "Build deal.II with support for threads. This pulls in libtbb as a dependency." diff --git a/deal.II/contrib/cmake/modules/prepare_threads.cmake b/deal.II/contrib/cmake/modules/prepare_threads.cmake index 1b958145b0..da77eb0825 100644 --- a/deal.II/contrib/cmake/modules/prepare_threads.cmake +++ b/deal.II/contrib/cmake/modules/prepare_threads.cmake @@ -1,14 +1,25 @@ FIND_PACKAGE(Threads REQUIRED) IF(DEAL_II_USE_CONTRIB) - # Compiles and links libtbb, exports the TBB_* variables as well: + # compile and link the contrib tbb library: ADD_SUBDIRECTORY(contrib/tbb) + + # This sets TBB_LIBRARY and TBB_DEBUG_LIBRARY to the full path of the + # _installed_ library location + ELSE() FIND_PACKAGE(TBB REQUIRED) ENDIF() INCLUDE_DIRECTORIES(${TBB_INCLUDE_DIR}) +IF(NOT DEAL_II_USE_CONTRIB) + SET(deal_ii_include_paths + ${deal_ii_include_paths} + ${TBB_INCLUDE_DIR} + ) +ENDIF() + SET(deal_ii_external_libraries ${deal_ii_external_libraries} ${TBB_LIBRARY} diff --git a/deal.II/contrib/cmake/modules/prepare_umfpack.cmake b/deal.II/contrib/cmake/modules/prepare_umfpack.cmake index dffc0a9b98..8fd60cf01d 100644 --- a/deal.II/contrib/cmake/modules/prepare_umfpack.cmake +++ b/deal.II/contrib/cmake/modules/prepare_umfpack.cmake @@ -2,24 +2,45 @@ FIND_PACKAGE(LAPACK REQUIRED) FIND_PACKAGE(BLAS REQUIRED) IF(DEAL_II_USE_CONTRIB) - # Compiles and links libumfpack, exports the Umfpack_* variables as well: - ADD_SUBDIRECTORY(contrib/umfpack) + # + # Add umfpack and amd directly to the object files of deal.II + # + + ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/contrib/umfpack/UMFPACK/Source) + ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/contrib/umfpack/AMD/Source) + + INCLUDE_DIRECTORIES( + ${CMAKE_SOURCE_DIR}/contrib/umfpack/UMFPACK/Include + ${CMAKE_SOURCE_DIR}/contrib/umfpack/AMD/Include + ) + + SET(deal_ii_additional_object_files + ${deal_ii_additional_object_files} + $ + $ + ) ELSE() FIND_PACKAGE(Umfpack REQUIRED) FIND_PACKAGE(AMD REQUIRED) -ENDIF() -INCLUDE_DIRECTORIES(${Umfpack_INCLUDE_DIR} ${AMD_INCLUDE_DIR}) + INCLUDE_DIRECTORIES(${Umfpack_INCLUDE_DIR} ${AMD_INCLUDE_DIR}) -SET(deal_ii_external_libraries - ${deal_ii_external_libraries} - ${Umfpack_LIBRARY} ${AMD_LIBRARY} ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} - ) + # + # We skip *_INCLUDE_DIR because it is not needed for the use of the + # deal.II library + # + + SET(deal_ii_external_libraries + ${deal_ii_external_libraries} + ${Umfpack_LIBRARY} ${AMD_LIBRARY} ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} + ) + + SET(deal_ii_external_debug_libraries + ${deal_ii_external_debug_libraries} + ${Umfpack_LIBRARY} ${AMD_LIBRARY} ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} + ) +ENDIF() -SET(deal_ii_external_debug_libraries - ${deal_ii_external_debug_libraries} - ${Umfpack_LIBRARY} ${AMD_LIBRARY} ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} - ) SET(HAVE_LIBBLAS TRUE) SET(HAVE_LIBLAPACK TRUE) diff --git a/deal.II/source/CMakeLists.txt b/deal.II/source/CMakeLists.txt index 5f77721944..2060862131 100644 --- a/deal.II/source/CMakeLists.txt +++ b/deal.II/source/CMakeLists.txt @@ -18,4 +18,7 @@ ADD_LIBRARY(deal_II SHARED $ $ $ + ${deal_ii_additional_object_files} ) + + message( "${deal_ii_additional_object_files}" )