From: Michihiro NAKAJIMA Date: Tue, 18 May 2010 06:43:09 +0000 (-0400) Subject: TRY_COMPILE requires specific include paths and library paths. X-Git-Tag: v3.0.0a~996 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fcc0dfeb4ea765489b8c8ce3b661004989328c03;p=thirdparty%2Flibarchive.git TRY_COMPILE requires specific include paths and library paths. if there are no specific library, TRY_COMPILE wont link any additional libraries, it means ARCHIVE_HASH_*_OPENSSL are never detected. SVN-Revision: 2411 --- diff --git a/CMakeLists.txt b/CMakeLists.txt index a0411c224..cd0e11bab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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})