]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
TRY_COMPILE requires specific include paths and library paths.
authorMichihiro NAKAJIMA <ggcueroad@gmail.com>
Tue, 18 May 2010 06:43:09 +0000 (02:43 -0400)
committerMichihiro NAKAJIMA <ggcueroad@gmail.com>
Tue, 18 May 2010 06:43:09 +0000 (02:43 -0400)
if there are no specific library, TRY_COMPILE wont link any additional
libraries, it means ARCHIVE_HASH_*_OPENSSL are never detected.

SVN-Revision: 2411

CMakeLists.txt

index a0411c224b872ee272f6ca8c28efc43c6c1e14ac..cd0e11bab6a7772ff9b8dd03f564abdff52d01bc 100644 (file)
@@ -282,9 +282,18 @@ MACRO(CHECK_MD HASH IMPLEMENTATIONS)
        STRING(TOLOWER "${HASH}" lower_hash)
        STRING(TOUPPER "${HASH}" hash)
 
+       SET(HASH_REQUIRED_INCLUDES)
+       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)
-           INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR})
-           LIST(APPEND ADDITIONAL_LIBS ${OPENSSL_LIBRARIES})
+           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)
 
        SET(SOURCE "#define ${hash}_COMPILE_TEST
@@ -310,11 +319,20 @@ main(int argc, char **argv)
        TRY_COMPILE(ARCHIVE_HASH_${HASH}_${IMPLEMENTATION}
          ${CMAKE_BINARY_DIR}
          ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/check_hash_md.c
-         CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_CURRENT_SOURCE_DIR}/libarchive"
+         CMAKE_FLAGS
+          "${TRY_HASH_REQUIRED_LIBS}"
+          "${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})