summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/libutils.cmake9
-rw-r--r--libmysqld/CMakeLists.txt15
2 files changed, 22 insertions, 2 deletions
diff --git a/cmake/libutils.cmake b/cmake/libutils.cmake
index 6dbaaef57aa..93e8994b021 100644
--- a/cmake/libutils.cmake
+++ b/cmake/libutils.cmake
@@ -277,6 +277,15 @@ MACRO(MERGE_LIBRARIES)
MYSQL_INSTALL_TARGETS(${TARGET} DESTINATION "${INSTALL_LIBDIR}" ${COMP})
ENDIF()
SET_TARGET_PROPERTIES(${TARGET} PROPERTIES LINK_INTERFACE_LIBRARIES "")
+ IF(ARG_SHARED AND LINK_FLAG_NO_UNDEFINED)
+ # Do not allow undefined symbols in shared libraries
+ GET_TARGET_PROPERTY(TARGET_LINK_FLAGS ${TARGET} LINK_FLAGS)
+ IF(NOT TARGET_LINK_FLAGS)
+ SET(TARGET_LINK_FLAGS)
+ ENDIF()
+ SET_TARGET_PROPERTIES(${TARGET} PROPERTIES LINK_FLAGS
+ "${TARGET_LINK_FLAGS} ${LINK_FLAG_NO_UNDEFINED}")
+ ENDIF()
ENDMACRO()
FUNCTION(GET_DEPENDEND_OS_LIBS target result)
diff --git a/libmysqld/CMakeLists.txt b/libmysqld/CMakeLists.txt
index b23b4fdab5f..9bafd7bad49 100644
--- a/libmysqld/CMakeLists.txt
+++ b/libmysqld/CMakeLists.txt
@@ -147,6 +147,17 @@ ENDIF()
IF(NOT DISABLE_SHARED)
MERGE_LIBRARIES(libmysqld SHARED mysqlserver EXPORTS ${CLIENT_API_FUNCTIONS}
- COMPONENT Embedded VERSION ${SHARED_LIB_MAJOR_VERSION})
- SET_TARGET_PROPERTIES(libmysqld PROPERTIES PREFIX "")
+ COMPONENT Embedded)
+ IF(UNIX)
+ # Name the shared library, handle versioning (provides same api as client
+ # library hence the same version)
+ SET_TARGET_PROPERTIES(libmysqld PROPERTIES
+ OUTPUT_NAME mysqld
+ SOVERSION "${SHARED_LIB_MAJOR_VERSION}")
+ # Clean direct output flags, as 2 targets have the same base name
+ # libmysqld
+ SET_TARGET_PROPERTIES(libmysqld PROPERTIES CLEAN_DIRECT_OUTPUT 1)
+ SET_TARGET_PROPERTIES(mysqlserver PROPERTIES CLEAN_DIRECT_OUTPUT 1)
+ ENDIF()
ENDIF()
+