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 <brad.king@kitware.com>
			
			
This commit is contained in:
		
				
					committed by
					
						
						Daniel Stenberg
					
				
			
			
				
	
			
			
			
						parent
						
							1ae06e002d
						
					
				
				
					commit
					5f3824a5aa
				
			@@ -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)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user