From: Brad King Date: Mon, 10 Nov 2014 18:56:10 +0000 (+0100) Subject: CMake: Restore order-dependent library checks X-Git-Tag: curl-7_40_0~376 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5f3824a5aa7298c9a95c66fc13619df17fabd98e;p=thirdparty%2Fcurl.git CMake: Restore order-dependent library checks Revert commit 2257deb502 (Cmake: Avoid cycle directory dependencies, 2014-08-22) and add a comment explaining the purpose of the original code. The check_library_exists_concat macro is intended to be called multiple times on a sequence of possibly dependent libraries. Later libraries may depend on earlier libraries when they are static. They cannot be safely linked in reverse order on some platforms. Signed-off-by: Brad King --- diff --git a/CMake/Macros.cmake b/CMake/Macros.cmake index 9b9338e523..df15b7406b 100644 --- a/CMake/Macros.cmake +++ b/CMake/Macros.cmake @@ -1,12 +1,15 @@ #File defines convenience macros for available feature testing # This macro checks if the symbol exists in the library and if it -# does, it appends library to the list. +# does, it prepends library to the list. It is intended to be called +# multiple times with a sequence of possibly dependent libraries in +# order of least-to-most-dependent. Some libraries depend on others +# to link correctly. macro(CHECK_LIBRARY_EXISTS_CONCAT LIBRARY SYMBOL VARIABLE) - check_library_exists("${CURL_LIBS};${LIBRARY}" ${SYMBOL} "${CMAKE_LIBRARY_PATH}" + check_library_exists("${LIBRARY};${CURL_LIBS}" ${SYMBOL} "${CMAKE_LIBRARY_PATH}" ${VARIABLE}) if(${VARIABLE}) - list(APPEND CURL_LIBS ${LIBRARY}) + set(CURL_LIBS ${LIBRARY} ${CURL_LIBS}) endif(${VARIABLE}) endmacro(CHECK_LIBRARY_EXISTS_CONCAT)