From: maier Date: Thu, 13 Sep 2012 09:13:18 +0000 (+0000) Subject: Some more meaningful error messages X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4fde47c1fd91bda132978c0bdda7a42f0ab4462a;p=dealii-svn.git Some more meaningful error messages git-svn-id: https://svn.dealii.org/branches/branch_cmake@26342 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/CMakeLists.txt b/deal.II/CMakeLists.txt index 0527c29320..805dc8f346 100644 --- a/deal.II/CMakeLists.txt +++ b/deal.II/CMakeLists.txt @@ -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() diff --git a/deal.II/contrib/cmake/configure/configure_boost.cmake b/deal.II/contrib/cmake/configure/configure_boost.cmake index ea95ac92d7..c7493ee36a 100644 --- a/deal.II/contrib/cmake/configure/configure_boost.cmake +++ b/deal.II/contrib/cmake/configure/configure_boost.cmake @@ -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() diff --git a/deal.II/contrib/cmake/configure/configure_functionparser.cmake b/deal.II/contrib/cmake/configure/configure_functionparser.cmake index a73b985598..c6c4698a2b 100644 --- a/deal.II/contrib/cmake/configure/configure_functionparser.cmake +++ b/deal.II/contrib/cmake/configure/configure_functionparser.cmake @@ -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) diff --git a/deal.II/contrib/cmake/configure/configure_mpi.cmake b/deal.II/contrib/cmake/configure/configure_mpi.cmake index 65e9792074..9cb952b7db 100644 --- a/deal.II/contrib/cmake/configure/configure_mpi.cmake +++ b/deal.II/contrib/cmake/configure/configure_mpi.cmake @@ -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}) diff --git a/deal.II/contrib/cmake/configure/configure_netcdf.cmake b/deal.II/contrib/cmake/configure/configure_netcdf.cmake index e5254875a5..324af91dc8 100644 --- a/deal.II/contrib/cmake/configure/configure_netcdf.cmake +++ b/deal.II/contrib/cmake/configure/configure_netcdf.cmake @@ -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) diff --git a/deal.II/contrib/cmake/configure/configure_threads.cmake b/deal.II/contrib/cmake/configure/configure_threads.cmake index b877e0ef5f..107fa36781 100644 --- a/deal.II/contrib/cmake/configure/configure_threads.cmake +++ b/deal.II/contrib/cmake/configure/configure_threads.cmake @@ -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: diff --git a/deal.II/contrib/cmake/configure/configure_umfpack.cmake b/deal.II/contrib/cmake/configure/configure_umfpack.cmake index 6a47f1aa52..3be086f0b4 100644 --- a/deal.II/contrib/cmake/configure/configure_umfpack.cmake +++ b/deal.II/contrib/cmake/configure/configure_umfpack.cmake @@ -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 index 0000000000..6bfe11e41f --- /dev/null +++ b/deal.II/contrib/cmake/macros/macro_message_not_found.cmake @@ -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 index 0000000000..600ecf3a1b --- /dev/null +++ b/deal.II/contrib/cmake/modules/FindNETCDF.cmake @@ -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 index 8871b344ec..0000000000 --- a/deal.II/contrib/cmake/modules/FindNetcdf.cmake +++ /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 index 0000000000..9e7471330d --- /dev/null +++ b/deal.II/contrib/cmake/modules/FindUMFPACK.cmake @@ -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 index 274ee62757..0000000000 --- a/deal.II/contrib/cmake/modules/FindUmfpack.cmake +++ /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()