]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Some more meaningful error messages
authormaier <maier@0785d39b-7218-0410-832d-ea1e28bc413d>
Thu, 13 Sep 2012 09:13:18 +0000 (09:13 +0000)
committermaier <maier@0785d39b-7218-0410-832d-ea1e28bc413d>
Thu, 13 Sep 2012 09:13:18 +0000 (09:13 +0000)
git-svn-id: https://svn.dealii.org/branches/branch_cmake@26342 0785d39b-7218-0410-832d-ea1e28bc413d

12 files changed:
deal.II/CMakeLists.txt
deal.II/contrib/cmake/configure/configure_boost.cmake
deal.II/contrib/cmake/configure/configure_functionparser.cmake
deal.II/contrib/cmake/configure/configure_mpi.cmake
deal.II/contrib/cmake/configure/configure_netcdf.cmake
deal.II/contrib/cmake/configure/configure_threads.cmake
deal.II/contrib/cmake/configure/configure_umfpack.cmake
deal.II/contrib/cmake/macros/macro_message_not_found.cmake [new file with mode: 0644]
deal.II/contrib/cmake/modules/FindNETCDF.cmake [new file with mode: 0644]
deal.II/contrib/cmake/modules/FindNetcdf.cmake [deleted file]
deal.II/contrib/cmake/modules/FindUMFPACK.cmake [new file with mode: 0644]
deal.II/contrib/cmake/modules/FindUmfpack.cmake [deleted file]

index 0527c29320f8b4fb394145505bab0cb37c0a957c..805dc8f3461a31be054ec58ceec2c7fa7da8a52a 100644 (file)
@@ -196,6 +196,8 @@ INCLUDE(check_for_compiler_bugs)
 # Feature configuration:
 #
 
+INCLUDE(macro_message_not_found)
+
 IF(DEAL_II_WITH_FUNCTIONPARSER)
   INCLUDE(configure_functionparser)
 ENDIF()
index ea95ac92d710da2c1ac368b4a74f3b1e94e14b59..c7493ee36adabcd8644f797cdd2c19573de3868a 100644 (file)
@@ -1,12 +1,16 @@
 IF(NOT DEAL_II_FORCE_CONTRIB_BOOST)
-  IF(DEAL_II_ALLOW_CONTRIB)
-    FIND_PACKAGE (Boost COMPONENTS serialization thread)
+
+  FIND_PACKAGE (Boost COMPONENTS serialization thread)
+
+  IF(NOT DEAL_II_ALLOW_CONTRIB)
+    IF(NOT Boost_THREAD_FOUND OR NOT Boost_Serialization_FOUND)
+      macro_message_not_found("boost" "Boost")
+    ENDIF()
   ELSE()
-    FIND_PACKAGE (Boost COMPONENTS serialization thread REQUIRED)
+    # Get rid of this annoying unimportant variable:
+    MARK_AS_ADVANCED(Boost_DIR)
   ENDIF()
 
-  # Get rid of this annoying unimportant variable:
-  MARK_AS_ADVANCED(Boost_DIR)
 ENDIF()
 
 
index a73b98559846da0124b55f57989d4ff8185b5d4f..c6c4698a2bde56d1884e51ec585a0eec026920c3 100644 (file)
@@ -1,9 +1,9 @@
 IF(NOT DEAL_II_FORCE_CONTRIB_FUNCTIONPARSER)
-  IF(DEAL_II_ALLOW_CONTRIB)
-    # TODO: Write a module to search for functionparser
-  ELSE()
+
+  IF(NOT DEAL_II_ALLOW_CONTRIB)
     MESSAGE(FATAL_ERROR "FindFunctionparser.cmake not written, yet. :-[")
   ENDIF()
+
 ENDIF()
 
 IF(DEAL_II_FORCE_CONTRIB_FUNCTIONPARSER OR NOT Functionparser_FOUND)
index 65e979207470715d737830a3a8b503d508846722..9cb952b7db5883170925c2d11ce83a9932ead0db 100644 (file)
@@ -1,5 +1,7 @@
 FIND_PACKAGE(MPI REQUIRED CXX)
 
+# TODO: A deal.II specific error message if mpi is not found
+
 INCLUDE_DIRECTORIES(${MPI_CXX_INCLUDE_PATH})
 
 LIST(APPEND deal_ii_required_linker_flags ${MPI_CXX_LINK_FLAGS})
index e5254875a55a2921377ec84872330e3ec9ee3c0d..324af91dc89706cd35e4f61d78a8c09d8e0d5c94 100644 (file)
@@ -1,11 +1,11 @@
-FIND_PACKAGE(Netcdf)
+FIND_PACKAGE(NETCDF)
 
-  IF(NOT DEAL_II_ALLOW_CONTRIB AND NOT TBB_FOUND)
-    macro_warning_not_found("TBB")
-  ENDIF()
+IF(NOT NETCDF_FOUND)
+  macro_message_not_found("netcdf" "NETCDF")
+ENDIF()
 
-INCLUDE_DIRECTORIES(${Netcdf_INCLUDE_DIR})
+INCLUDE_DIRECTORIES(${NETCDF_INCLUDE_DIR})
 
-LIST(APPEND deal_ii_external_libraries ${Netcdf_LIBRARY})
+LIST(APPEND deal_ii_external_libraries ${NETCDF_LIBRARY})
 
 SET(HAVE_LIBNETCDF TRUE)
index b877e0ef5f4afa533a6b07dfb833213d5872c3f6..107fa36781cf13dfe13377c386ad652431dc612d 100644 (file)
@@ -74,10 +74,11 @@ ENDIF()
 
 
 IF(NOT DEAL_II_FORCE_CONTRIB_TBB)
-  IF(DEAL_II_ALLOW_CONTRIB)
-    FIND_PACKAGE(TBB)
-  ELSE()
-    FIND_PACKAGE(TBB REQUIRED)
+
+  FIND_PACKAGE(TBB)
+
+  IF(NOT DEAL_II_ALLOW_CONTRIB AND NOT TBB_FOUND)
+    macro_message_not_found("tbb" "TBB")
   ENDIF()
 
   # In case we don't have a debug library:
index 6a47f1aa528eb566b447ca491103bf55c9b39a95..3be086f0b41712c31ad89894fab356988627cd75 100644 (file)
@@ -1,23 +1,31 @@
 FIND_PACKAGE(LAPACK REQUIRED)
 FIND_PACKAGE(BLAS REQUIRED)
 
+# TODO: A deal.II specific error message if blas or lapack is not found
+
 IF(NOT DEAL_II_FORCE_CONTRIB_UMFPACK)
-  IF(DEAL_II_ALLOW_CONTRIB)
-    FIND_PACKAGE(Umfpack)
-    FIND_PACKAGE(AMD)
-  ELSE()
-    FIND_PACKAGE(Umfpack REQUIRED)
-    FIND_PACKAGE(AMD REQUIRED)
-  ENDIF()
 
-  IF(UMFPACK_FOUND AND AMD_FOUND)
-    SET(UmfpackAMD_FOUND TRUE)
-  ELSE()
-    SET(UmfpackAMD_FOUND FALSE)
+  FIND_PACKAGE(UMFPACK)
+  FIND_PACKAGE(AMD)
+
+  IF(NOT DEAL_II_ALLOW_CONTRIB)
+    IF(NOT UMFPACK_FOUND)
+      macro_message_not_found("umfpack" "UMFPACK")
+    ENDIF()
+    IF(NOT AMD_FOUND)
+      macro_message_not_found("amd" "AMD")
+    ENDIF()
   ENDIF()
+
+ENDIF()
+
+IF(UMFPACK_FOUND AND AMD_FOUND) # TODO
+  SET(UMFPACKAMD_FOUND TRUE)
+ELSE()
+  SET(UMFPACKAMD_FOUND FALSE)
 ENDIF()
 
-IF(DEAL_II_FORCE_CONTRIB_UMFPACK OR NOT UmfpackAMD_FOUND)
+IF(DEAL_II_FORCE_CONTRIB_UMFPACK OR NOT UMFPACKAMD_FOUND)
 
   INCLUDE_DIRECTORIES(
     ${CMAKE_SOURCE_DIR}/contrib/umfpack/UMFPACK/Include
@@ -39,14 +47,14 @@ IF(DEAL_II_FORCE_CONTRIB_UMFPACK OR NOT UmfpackAMD_FOUND)
 
 ELSE()
 
-  INCLUDE_DIRECTORIES(${Umfpack_INCLUDE_DIR} ${AMD_INCLUDE_DIR})
+  INCLUDE_DIRECTORIES(${UMFPACK_INCLUDE_DIR} ${AMD_INCLUDE_DIR})
 
   LIST(APPEND deal_ii_required_linker_flags
     ${BLAS_LINKER_FLAGS} ${LAPACK_LINKER_FLAGS}
     )
 
   LIST(APPEND deal_ii_external_libraries
-    ${Umfpack_LIBRARY} ${AMD_LIBRARY} ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}
+    ${UMFPACK_LIBRARY} ${AMD_LIBRARY} ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}
     )
 
 ENDIF()
diff --git a/deal.II/contrib/cmake/macros/macro_message_not_found.cmake b/deal.II/contrib/cmake/macros/macro_message_not_found.cmake
new file mode 100644 (file)
index 0000000..6bfe11e
--- /dev/null
@@ -0,0 +1,18 @@
+MACRO(macro_message_not_found library)
+  # TODO: Check for each Find<...> module how to hint for a library
+  # location...
+
+  STRING(TOUPPER "${library}" library_uppercase)
+
+  MESSAGE(SEND_ERROR "
+Could not find the ${library} library!
+
+Please ensure that the ${library} library is installed on your computer.
+If the library is not at a default location, either provide some hints
+via environment variables:
+${library_uppercase}_LIBRARY_DIR ${library_uppercase}_INCLUDE_DIR
+Or set the relevant variables by hand in ccmake.
+
+")
+
+ENDMACRO()
diff --git a/deal.II/contrib/cmake/modules/FindNETCDF.cmake b/deal.II/contrib/cmake/modules/FindNETCDF.cmake
new file mode 100644 (file)
index 0000000..600ecf3
--- /dev/null
@@ -0,0 +1,26 @@
+# Try to find NETCDF
+
+INCLUDE(FindPackageHandleStandardArgs)
+
+FIND_PATH(NETCDF_INCLUDE_DIR netcdf.hh
+  HINTS
+  $ENV{NETCDF_INCLUDE_DIR}
+  ${NETCDF_INCLUDE_DIR}
+)
+
+FIND_LIBRARY(NETCDF_LIBRARY
+  NAMES libnetcdf_c++.so libnetcdf_cpp.so
+  PATHS
+  $ENV{NETCDF_LIBRARY_DIR}
+  ${NETCDF_LIBRARY_DIR}
+  PATH_SUFFIXES lib64 lib
+)
+
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(NETCDF DEFAULT_MSG NETCDF_LIBRARY NETCDF_INCLUDE_DIR)
+
+IF(NETCDF_FOUND)
+  MARK_AS_ADVANCED(
+    NETCDF_LIBRARY
+    NETCDF_INCLUDE_DIR
+  )
+ENDIF()
diff --git a/deal.II/contrib/cmake/modules/FindNetcdf.cmake b/deal.II/contrib/cmake/modules/FindNetcdf.cmake
deleted file mode 100644 (file)
index 8871b34..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-# Try to find Netcdf
-
-INCLUDE(FindPackageHandleStandardArgs)
-
-FIND_PATH(Netcdf_INCLUDE_DIR netcdf.hh
-  HINTS
-  $ENV{NETCDF_INCLUDE_DIR}
-  ${NETCDF_INCLUDE_DIR}
-)
-
-FIND_LIBRARY(Netcdf_LIBRARY
-  NAMES libnetcdf_c++.so libnetcdf_cpp.so
-  PATHS
-  $ENV{NETCDF_LIBRARY_DIR}
-  PATH_SUFFIXES lib64 lib
-)
-
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Netcdf DEFAULT_MSG Netcdf_LIBRARY Netcdf_INCLUDE_DIR)
-
-IF(Netcdf_FOUND)
-  MARK_AS_ADVANCED(
-    Netcdf_LIBRARY
-    Netcdf_INCLUDE_DIR
-  )
-ENDIF()
diff --git a/deal.II/contrib/cmake/modules/FindUMFPACK.cmake b/deal.II/contrib/cmake/modules/FindUMFPACK.cmake
new file mode 100644 (file)
index 0000000..9e74713
--- /dev/null
@@ -0,0 +1,26 @@
+# Try to find UMFPACK
+
+INCLUDE(FindPackageHandleStandardArgs)
+
+FIND_PATH(UMFPACK_INCLUDE_DIR umfpack.h
+  HINTS
+  $ENV{UMFPACK_INCLUDE_DIR}
+  ${UMFPACK_INCLUDE_DIR}
+)
+
+FIND_LIBRARY(UMFPACK_LIBRARY
+  NAMES libumfpack.so
+  PATHS
+  $ENV{UMFPACK_LIBRARY_DIR}
+  ${UMFPACK_LIBRARY_DIR}
+  PATH_SUFFIXES lib64 lib
+)
+
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(UMFPACK DEFAULT_MSG UMFPACK_LIBRARY UMFPACK_INCLUDE_DIR)
+
+IF(UMFPACK_FOUND)
+  MARK_AS_ADVANCED(
+    UMFPACK_LIBRARY
+    UMFPACK_INCLUDE_DIR
+  )
+ENDIF()
diff --git a/deal.II/contrib/cmake/modules/FindUmfpack.cmake b/deal.II/contrib/cmake/modules/FindUmfpack.cmake
deleted file mode 100644 (file)
index 274ee62..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-# Try to find Umfpack
-
-INCLUDE(FindPackageHandleStandardArgs)
-
-FIND_PATH(Umfpack_INCLUDE_DIR umfpack.h
-  HINTS
-  $ENV{Umfpack_INCLUDE_DIR}
-  ${Umfpack_INCLUDE_DIR}
-)
-
-FIND_LIBRARY(Umfpack_LIBRARY
-  NAMES libumfpack.so
-  PATHS
-  $ENV{Umfpack_LIBRARY_DIR}
-  ${Umfpack_LIBRARY_DIR}
-  PATH_SUFFIXES lib64 lib
-)
-
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Umfpack DEFAULT_MSG Umfpack_LIBRARY Umfpack_INCLUDE_DIR)
-
-IF(Umfpack_FOUND)
-  MARK_AS_ADVANCED(
-    Umfpack_LIBRARY
-    Umfpack_INCLUDE_DIR
-  )
-ENDIF()

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.