ELSE(HAVE_SYS_TYPES_H)
SET(HASH_HEADER_CONFIG "")
ENDIF(HAVE_SYS_TYPES_H)
+ STRING(TOLOWER "${HASH}" lower_hash)
+ STRING(TOUPPER "${HASH}" hash)
FOREACH(IMPLEMENTATION ${IMPLEMENTATIONS})
IF(NOT DEFINED ARCHIVE_HASH_${HASH}_${IMPLEMENTATION})
- STRING(TOLOWER "${HASH}" lower_hash)
- STRING(TOUPPER "${HASH}" hash)
-
- SET(HASH_REQUIRED_INCLUDES)
+ # Probe the local implementation for whether this
+ # hash implementation is available on this platform.
SET(TRY_HASH_REQUIRED_INCLUDES
"-DINCLUDE_DIRECTORIES:STRING=${CMAKE_CURRENT_SOURCE_DIR}/libarchive")
- SET(HASH_REQUIRED_LIBS)
SET(TRY_HASH_REQUIRED_LIBS)
IF ("${IMPLEMENTATION}" MATCHES "^OPENSSL$" AND OPENSSL_FOUND)
- SET(HASH_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
SET(TRY_HASH_REQUIRED_INCLUDES
"${TRY_HASH_REQUIRED_INCLUDES};${OPENSSL_INCLUDE_DIR}")
- SET(HASH_REQUIRED_LIBS ${OPENSSL_LIBRARIES})
SET(TRY_HASH_REQUIRED_LIBS
"-DLINK_LIBRARIES:STRING=${OPENSSL_LIBRARIES}")
ENDIF ("${IMPLEMENTATION}" MATCHES "^OPENSSL$" AND OPENSSL_FOUND)
"${TRY_HASH_REQUIRED_INCLUDES}"
OUTPUT_VARIABLE OUTPUT)
- IF (ARCHIVE_HASH_${HASH}_${IMPLEMENTATION})
- MESSAGE(STATUS "Checking support for ARCHIVE_HASH_${HASH}_${IMPLEMENTATION} -- found")
- IF (HASH_REQUIRED_INCLUDES)
- INCLUDE_DIRECTORIES(${HASH_REQUIRED_INCLUDES})
- ENDIF (HASH_REQUIRED_INCLUDES)
- IF (HASH_REQUIRED_LIBS)
- LIST(APPEND ADDITIONAL_LIBS ${HASH_REQUIRED_LIBS})
- LIST(REMOVE_DUPLICATES ADDITIONAL_LIBS)
- ENDIF (HASH_REQUIRED_LIBS)
- BREAK()
- ENDIF (ARCHIVE_HASH_${HASH}_${IMPLEMENTATION})
-
- MESSAGE(STATUS "Checking support for ARCHIVE_HASH_${HASH}_${IMPLEMENTATION} -- not found")
- FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ # Inform user whether or not we found it; if not, log why we didn't.
+ IF (ARCHIVE_HASH_${HASH}_${IMPLEMENTATION})
+ MESSAGE(STATUS "Checking support for ARCHIVE_HASH_${HASH}_${IMPLEMENTATION} -- found")
+ ELSE (ARCHIVE_HASH_${HASH}_${IMPLEMENTATION})
+ MESSAGE(STATUS "Checking support for ARCHIVE_HASH_${HASH}_${IMPLEMENTATION} -- not found")
+ FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
"Checking support for ARCHIVE_HASH_${HASH}_${IMPLEMENTATION} failed with the following output:\n"
"${OUTPUT}\n"
"Source file was:\n${SOURCE}\n")
- ELSE(NOT DEFINED ARCHIVE_HASH_${HASH}_${IMPLEMENTATION})
- IF(ARCHIVE_HASH_${HASH}_${IMPLEMENTATION})
- BREAK()
- ENDIF(ARCHIVE_HASH_${HASH}_${IMPLEMENTATION})
+ ENDIF (ARCHIVE_HASH_${HASH}_${IMPLEMENTATION})
ENDIF(NOT DEFINED ARCHIVE_HASH_${HASH}_${IMPLEMENTATION})
+
+ # Add appropriate libs/includes depending on whether the implementation
+ # was found on this platform.
+ IF (ARCHIVE_HASH_${HASH}_${IMPLEMENTATION})
+ IF ("${IMPLEMENTATION}" MATCHES "^OPENSSL$" AND OPENSSL_FOUND)
+ INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR})
+ LIST(APPEND ADDITIONAL_LIBS ${OPENSSL_LIBRARIES})
+ LIST(REMOVE_DUPLICATES ADDITIONAL_LIBS)
+ ENDIF ("${IMPLEMENTATION}" MATCHES "^OPENSSL$" AND OPENSSL_FOUND)
+ ENDIF (ARCHIVE_HASH_${HASH}_${IMPLEMENTATION})
ENDFOREACH(IMPLEMENTATION)
ENDMACRO(CHECK_MD HASH IMPLEMENTATIONS)