|
|
@@ -9,6 +9,27 @@ set(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,")
|
|
|
set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,")
|
|
|
set(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic")
|
|
|
|
|
|
+# Shared libraries with no builtin soname may not be linked safely by
|
|
|
+# specifying the file path.
|
|
|
+set(CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME 1)
|
|
|
+
|
|
|
+# 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()
|
|
|
+
|
|
|
+
|
|
|
+# Features for LINK_GROUP generator expression
|
|
|
+## RESCAN: request the linker to rescan static libraries until there is
|
|
|
+## no pending undefined symbols
|
|
|
+set(CMAKE_LINK_GROUP_USING_RESCAN "LINKER:--start-group" "LINKER:--end-group")
|
|
|
+set(CMAKE_LINK_GROUP_USING_RESCAN_SUPPORTED TRUE)
|
|
|
+
|
|
|
+
|
|
|
# Debian policy requires that shared libraries be installed without
|
|
|
# executable permission. Fedora policy requires that shared libraries
|
|
|
# be installed with the executable permission. Since the native tools
|