From f49ec94e9f4e90a1c65048c1a587469ece5ee05a Mon Sep 17 00:00:00 2001 From: Brad King Date: Fri, 1 Feb 2008 09:57:41 -0500 Subject: [PATCH] ENH: Enable dependent library search paths on more platforms - HP-UX needs dependent library paths as -L options. - IRIX needs dependent library paths as -L options. - Sun needs dependent library paths as -L options. - FreeBSD needs dependent library paths in -rpath-link option. --- Modules/Platform/FreeBSD.cmake | 1 + Modules/Platform/HP-UX.cmake | 1 + Modules/Platform/IRIX.cmake | 4 ++++ Modules/Platform/IRIX64.cmake | 3 +++ Modules/Platform/SunOS.cmake | 6 ++++++ 5 files changed, 15 insertions(+) diff --git a/Modules/Platform/FreeBSD.cmake b/Modules/Platform/FreeBSD.cmake index fcfa121e8..299847b5a 100644 --- a/Modules/Platform/FreeBSD.cmake +++ b/Modules/Platform/FreeBSD.cmake @@ -5,6 +5,7 @@ IF(EXISTS /usr/include/dlfcn.h) SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") # -rpath SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") # : or empty + SET(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,") SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,-soname,") SET(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") diff --git a/Modules/Platform/HP-UX.cmake b/Modules/Platform/HP-UX.cmake index 19e13f02e..8f0fce823 100644 --- a/Modules/Platform/HP-UX.cmake +++ b/Modules/Platform/HP-UX.cmake @@ -6,6 +6,7 @@ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".sl" ".so" ".a") # in the -L path. Therefore the runtime path must be added to the # link line with -L flags. SET(CMAKE_SHARED_LIBRARY_LINK_C_WITH_RUNTIME_PATH 1) +SET(CMAKE_LINK_DEPENDENT_LIBRARY_DIRS 1) # fortran IF(CMAKE_COMPILER_IS_GNUG77) diff --git a/Modules/Platform/IRIX.cmake b/Modules/Platform/IRIX.cmake index b7824756d..58c103720 100644 --- a/Modules/Platform/IRIX.cmake +++ b/Modules/Platform/IRIX.cmake @@ -40,3 +40,7 @@ FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE) SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Wl,-Bstatic") SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic") ENDFOREACH(type) + +# The IRIX linker needs to find transitive shared library dependencies +# in the -L path. +SET(CMAKE_LINK_DEPENDENT_LIBRARY_DIRS 1) diff --git a/Modules/Platform/IRIX64.cmake b/Modules/Platform/IRIX64.cmake index 5df3e065b..982619a7d 100644 --- a/Modules/Platform/IRIX64.cmake +++ b/Modules/Platform/IRIX64.cmake @@ -70,3 +70,6 @@ FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE) SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic") ENDFOREACH(type) +# The IRIX linker needs to find transitive shared library dependencies +# in the -L path. +SET(CMAKE_LINK_DEPENDENT_LIBRARY_DIRS 1) diff --git a/Modules/Platform/SunOS.cmake b/Modules/Platform/SunOS.cmake index 85e3d38e2..f6c9d2e50 100644 --- a/Modules/Platform/SunOS.cmake +++ b/Modules/Platform/SunOS.cmake @@ -98,3 +98,9 @@ ELSE(CMAKE_COMPILER_IS_GNUCXX) SET(CMAKE_${type}_LINK_DYNAMIC_CXX_FLAGS "-Bdynamic") ENDFOREACH(type) ENDIF(CMAKE_COMPILER_IS_GNUCXX) + +# The Sun linker needs to find transitive shared library dependencies +# in the -L path. +SET(CMAKE_LINK_DEPENDENT_LIBRARY_DIRS 1) + +