فهرست منبع

ENH: Enabling link type selection flags for this platform. See bug#1644 for details.

Brad King 19 سال پیش
والد
کامیت
3079a67133
2فایلهای تغییر یافته به همراه19 افزوده شده و 0 حذف شده
  1. 10 0
      Modules/Platform/FreeBSD.cmake
  2. 9 0
      Modules/Platform/HP-UX.cmake

+ 10 - 0
Modules/Platform/FreeBSD.cmake

@@ -8,4 +8,14 @@ IF(EXISTS /usr/include/dlfcn.h)
   SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,")
   SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,-soname,")
 ENDIF(EXISTS /usr/include/dlfcn.h)
+
+# Initialize C link type selection flags.  These flags are used when
+# building a shared library, shared module, or executable that links
+# to other libraries to select whether to use the static or shared
+# versions of the libraries.
+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)
+
 INCLUDE(Platform/UnixPaths)

+ 9 - 0
Modules/Platform/HP-UX.cmake

@@ -85,3 +85,12 @@ IF(NOT CMAKE_COMPILER_IS_GNUCXX)
     "rm -f `basename \"<SOURCE>\" | sed 's/\\.[^./]*$$//'`.o"
     )
 ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX)
+
+# Initialize C link type selection flags.  These flags are used when
+# building a shared library, shared module, or executable that links
+# to other libraries to select whether to use the static or shared
+# versions of the libraries.
+FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE)
+  SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Wl,-a,archive")
+  SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-a,default")
+ENDFOREACH(type)