]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Some progress for contrib umfpack
authorMatthias Maier <tamiko@kyomu.43-1.org>
Fri, 10 Aug 2012 10:02:52 +0000 (10:02 +0000)
committerMatthias Maier <tamiko@kyomu.43-1.org>
Fri, 10 Aug 2012 10:02:52 +0000 (10:02 +0000)
git-svn-id: https://svn.dealii.org/branches/branch_cmake@25864 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/CMakeLists.txt
deal.II/contrib/cmake/modules/prepare_threads.cmake
deal.II/contrib/cmake/modules/prepare_umfpack.cmake
deal.II/source/CMakeLists.txt

index 06e421facbf0bdfa136d4072839843179a3a2b01..c0cfc84210b9f8833f5e73678c42fdce6f000656 100644 (file)
@@ -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."
index 1b958145b04794d53bc11477d8069c9124a45c6f..da77eb0825a5a7aa9693c9155ed86f9a257f221c 100644 (file)
@@ -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}
index dffc0a9b9842d2651ca623e828915113a8f77498..8fd60cf01d02a4c42c0db5bb39c755f944952f74 100644 (file)
@@ -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}
+    $<TARGET_OBJECTS:obj_umfpack>
+    $<TARGET_OBJECTS:obj_amd>
+    )
 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)
index 5f77721944aed000b1165c641c228f195d76c35f..2060862131f6be38a4e0331440dd941c74c5b0f5 100644 (file)
@@ -18,4 +18,7 @@ ADD_LIBRARY(deal_II SHARED
  $<TARGET_OBJECTS:obj_lac>
  $<TARGET_OBJECTS:obj_multigrid>
  $<TARGET_OBJECTS:obj_numerics>
+ ${deal_ii_additional_object_files}
  )
+
+ message( "${deal_ii_additional_object_files}" )

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.