From b49e8164e6ff0e978b6ad6630fe3d73ff5996e0c Mon Sep 17 00:00:00 2001 From: kervala Date: Sun, 31 Oct 2010 22:15:49 +0100 Subject: [PATCH] Changed: #1152 FindLibwww does not make all needed libs link to ryzom_client --- code/CMakeModules/CheckDepends.cmake | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/code/CMakeModules/CheckDepends.cmake b/code/CMakeModules/CheckDepends.cmake index f298b566a..2364233c1 100644 --- a/code/CMakeModules/CheckDepends.cmake +++ b/code/CMakeModules/CheckDepends.cmake @@ -16,7 +16,8 @@ MACRO(CHECK_UNDEFINED_SYMBOL MYLIBRARY SYMBOL SYMBOL_FOUND) IF(WIN32) # Always TRUE under Windows because we are using static libraries ELSEIF(APPLE) - SET(CMAKE_OTOOL otool) + # SET(CMAKE_OTOOL otool) + SET(CMAKE_NM nm) IF(CMAKE_OTOOL) # Use otool to check if a library is using an external symbol EXEC_PROGRAM(${CMAKE_OTOOL} ARGS "-Rv ${${MYLIBRARY}} | grep ${SYMBOL}" OUTPUT_VARIABLE OTOOL_SYMBOL) @@ -24,6 +25,13 @@ MACRO(CHECK_UNDEFINED_SYMBOL MYLIBRARY SYMBOL SYMBOL_FOUND) SET(${SYMBOL_FOUND} FALSE) ENDIF(NOT OTOOL_SYMBOL MATCHES "undefined") ENDIF(CMAKE_OTOOL) + IF(CMAKE_NM) + # Use nm to check if a library is using an external symbol + EXEC_PROGRAM(${CMAKE_NM} ARGS "-gu ${${MYLIBRARY}} | grep ${SYMBOL}" OUTPUT_VARIABLE NM_SYMBOL) + IF(NOT NM_SYMBOL MATCHES ${SYMBOL}) + SET(${SYMBOL_FOUND} FALSE) + ENDIF(NOT NM_SYMBOL MATCHES ${SYMBOL}) + ENDIF(CMAKE_NM) ELSEIF(UNIX) IF(CMAKE_OBJDUMP) # Use objdump to check if a library is using an external symbol