diff options
author | Chuck Atkins <chuck.atkins@kitware.com> | 2016-07-12 17:40:41 (GMT) |
---|---|---|
committer | Chuck Atkins <chuck.atkins@kitware.com> | 2016-07-12 17:40:41 (GMT) |
commit | 4ece8bdd0fa36d8e69dabf8c620f9e50170000e8 (patch) | |
tree | a7bd890d6c1a0418203e9ecc9092d8bf8fb87900 | |
parent | 87c1cd9c517bb57a537ba1f75548e6c20966553d (diff) | |
download | CMake-4ece8bdd0fa36d8e69dabf8c620f9e50170000e8.zip CMake-4ece8bdd0fa36d8e69dabf8c620f9e50170000e8.tar.gz CMake-4ece8bdd0fa36d8e69dabf8c620f9e50170000e8.tar.bz2 |
FindHDF5: Properly fail when required components are not found.
-rw-r--r-- | Modules/FindHDF5.cmake | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/Modules/FindHDF5.cmake b/Modules/FindHDF5.cmake index 46c8896..a81ba13 100644 --- a/Modules/FindHDF5.cmake +++ b/Modules/FindHDF5.cmake @@ -117,9 +117,11 @@ if(NOT HDF5_FIND_COMPONENTS) foreach(__lang IN LISTS __langs) if(__lang MATCHES "^(C|CXX|Fortran)$") list(APPEND HDF5_LANGUAGE_BINDINGS ${__lang}) + set(HDF5_FIND_REQUIRED_${__lang} True) endif() endforeach() set(FIND_HL ON) + set(HDF5_FIND_REQUIRED_HL True) else() # add the extra specified components, ensuring that they are valid. set(FIND_HL OFF) @@ -132,6 +134,9 @@ else() elseif(component STREQUAL "Fortran_HL") # only for compatibility list(APPEND HDF5_LANGUAGE_BINDINGS Fortran) set(FIND_HL ON) + set(HDF5_FIND_REQUIRED_Fortran_HL False) + set(HDF5_FIND_REQUIRED_Fortran True) + set(HDF5_FIND_REQUIRED_HL True) else() message(FATAL_ERROR "${component} is not a valid HDF5 component.") endif() @@ -144,6 +149,7 @@ else() endif() endforeach() endif() + list(REMOVE_ITEM HDF5_FIND_COMPONENTS Fortran_HL) # replaced by Fortran and HL list(REMOVE_DUPLICATES HDF5_LANGUAGE_BINDINGS) endif() @@ -410,6 +416,7 @@ if(NOT HDF5_FOUND AND NOT HDF5_ROOT) mark_as_advanced(HDF5_${_lang}_LIBRARY) list(APPEND HDF5_LIBRARIES ${HDF5_${_lang}_LIBRARY}) set(HDF5_${_lang}_LIBRARIES ${HDF5_${_lang}_LIBRARY}) + set(HDF5_${_lang}_FOUND True) endif() if(FIND_HL) get_target_property(_lang_hl_location ${HDF5_${_lang}_HL_TARGET}${_suffix} LOCATION) @@ -419,6 +426,7 @@ if(NOT HDF5_FOUND AND NOT HDF5_ROOT) mark_as_advanced(HDF5_${_lang}_HL_LIBRARY) list(APPEND HDF5_HL_LIBRARIES ${HDF5_${_lang}_HL_LIBRARY}) set(HDF5_${_lang}_HL_LIBRARIES ${HDF5_${_lang}_HL_LIBRARY}) + set(HDF5_HL_FOUND True) endif() endif() endforeach() @@ -461,6 +469,9 @@ if(NOT HDF5_FOUND AND NOT HDF5_ROOT) mark_as_advanced(HDF5_${__lang}_INCLUDE_DIRS) mark_as_advanced(HDF5_${__lang}_LIBRARIES) mark_as_advanced(HDF5_${__lang}_HL_LIBRARIES) + + set(HDF5_${__lang}_FOUND True) + set(HDF5_HL_FOUND True) else() set(HDF5_COMPILER_NO_INTERROGATE False) # If this language isn't using the wrapper, then try to seed the @@ -513,6 +524,7 @@ if(NOT HDF5_FOUND AND NOT HDF5_ROOT) list(APPEND HDF5_${__lang}_HL_LIBRARIES ${L}) endif() endforeach() + set(HDF5_HL_FOUND True) endif() set(CMAKE_FIND_LIBRARY_SUFFIXES ${_HDF5_CMAKE_FIND_LIBRARY_SUFFIXES}) @@ -646,7 +658,10 @@ if( NOT HDF5_FOUND ) ) select_library_configurations( HDF5_${LIB} ) list(APPEND HDF5_${__lang}_LIBRARIES ${HDF5_${LIB}_LIBRARY}) - eNdforeach() + endforeach() + if(HDF5_${__lang}_LIBRARIES) + set(HDF5_${__lang}_FOUND True) + endif() # Append the libraries for this language binding to the list of all # required libraries. @@ -687,6 +702,9 @@ if( NOT HDF5_FOUND ) list(APPEND HDF5_HL_LIBRARIES ${HDF5_${__lang}_HL_LIBRARIES}) endif() endforeach() + if(FIND_HL AND HDF5_HL_LIBRARIES) + set(HDF5_HL_FOUND True) + endif() _HDF5_remove_duplicates_from_beginning(HDF5_INCLUDE_DIRS) _HDF5_remove_duplicates_from_beginning(HDF5_LIBRARIES) @@ -746,4 +764,5 @@ endif() find_package_handle_standard_args(HDF5 REQUIRED_VARS ${HDF5_REQUIRED_VARS} VERSION_VAR HDF5_VERSION + HANDLE_COMPONENTS ) |