Commit 7ef2f9fa authored by Jonathan Perkin's avatar Jonathan Perkin

Apply wlad fixes from mysql-next-mr-bugfixing

parent 089ff3df
...@@ -171,7 +171,7 @@ SET(MYSQL_DATADIR "/var/lib/mysql") ...@@ -171,7 +171,7 @@ SET(MYSQL_DATADIR "/var/lib/mysql")
# Clear cached variables if install layout was changed # Clear cached variables if install layout was changed
IF(OLD_INSTALL_LAYOUT) IF(OLD_INSTALL_LAYOUT)
IF(NOT OLD_INSTALL_LAYOUT STREQUAL INSTALL_LAYOUR) IF(NOT OLD_INSTALL_LAYOUT STREQUAL INSTALL_LAYOUT)
SET(FORCE FORCE) SET(FORCE FORCE)
ENDIF() ENDIF()
ENDIF() ENDIF()
......
...@@ -43,27 +43,26 @@ ENDMACRO() ...@@ -43,27 +43,26 @@ ENDMACRO()
# Install symbolic link to CMake target. # Install symbolic link to CMake target.
# the link is created in the same directory as target # the link is created in the same directory as target
# and extension will be the same as for target file. # and extension will be the same as for target file.
MACRO(INSTALL_SYMLINK linkbasename target destination) MACRO(INSTALL_SYMLINK linkname target destination)
IF(UNIX) IF(UNIX)
GET_TARGET_PROPERTY(location ${target} LOCATION) GET_TARGET_PROPERTY(location ${target} LOCATION)
GET_FILENAME_COMPONENT(path ${location} PATH) GET_FILENAME_COMPONENT(path ${location} PATH)
GET_FILENAME_COMPONENT(name_we ${location} NAME_WE) GET_FILENAME_COMPONENT(name ${location} NAME)
GET_FILENAME_COMPONENT(ext ${location} EXT) SET(output ${path}/${linkname})
SET(output ${path}/${linkbasename}${ext})
ADD_CUSTOM_COMMAND( ADD_CUSTOM_COMMAND(
OUTPUT ${output} OUTPUT ${output}
COMMAND ${CMAKE_COMMAND} ARGS -E remove -f ${output} COMMAND ${CMAKE_COMMAND} ARGS -E remove -f ${output}
COMMAND ${CMAKE_COMMAND} ARGS -E create_symlink COMMAND ${CMAKE_COMMAND} ARGS -E create_symlink
${name_we}${ext} ${name}
${linkbasename}${ext} ${linkname}
WORKING_DIRECTORY ${path} WORKING_DIRECTORY ${path}
DEPENDS ${target} DEPENDS ${target}
) )
ADD_CUSTOM_TARGET(symlink_${linkbasename}${ext} ADD_CUSTOM_TARGET(symlink_${linkname}
ALL ALL
DEPENDS ${output}) DEPENDS ${output})
SET_TARGET_PROPERTIES(symlink_${linkbasename}${ext} PROPERTIES CLEAN_DIRECT_OUTPUT 1) SET_TARGET_PROPERTIES(symlink_${linkname} PROPERTIES CLEAN_DIRECT_OUTPUT 1)
IF(CMAKE_GENERATOR MATCHES "Xcode") IF(CMAKE_GENERATOR MATCHES "Xcode")
# For Xcode, replace project config with install config # For Xcode, replace project config with install config
STRING(REPLACE "${CMAKE_CFG_INTDIR}" STRING(REPLACE "${CMAKE_CFG_INTDIR}"
......
...@@ -153,15 +153,26 @@ SET(LIBS clientlib dbug strings vio mysys ${ZLIB_LIBRARY} ${SSL_LIBRARIES}) ...@@ -153,15 +153,26 @@ SET(LIBS clientlib dbug strings vio mysys ${ZLIB_LIBRARY} ${SSL_LIBRARIES})
# Merge several convenience libraries into one big mysqlclient # Merge several convenience libraries into one big mysqlclient
# and link them together into shared library. # and link them together into shared library.
MERGE_LIBRARIES(mysqlclient STATIC ${LIBS}) MERGE_LIBRARIES(mysqlclient STATIC ${LIBS})
IF(UNIX)
INSTALL_SYMLINK(${CMAKE_STATIC_LIBRARY_PREFIX}mysqlclient_r mysqlclient ${INSTALL_LIBDIR})
ENDIF()
# Visual Studio users need debug static library for debug projects # Visual Studio users need debug static library for debug projects
IF(MSVC) IF(MSVC)
INSTALL_DEBUG_TARGET(mysqlclient DESTINATION ${INSTALL_LIBDIR}/debug) INSTALL_DEBUG_TARGET(mysqlclient DESTINATION ${INSTALL_LIBDIR}/debug)
ENDIF() ENDIF()
IF(UNIX)
MACRO(GET_VERSIONED_LIBNAME LIBNAME EXTENSION VERSION OUTNAME)
SET(DOT_VERSION ".${VERSION}")
IF(DOT_VERSION STREQUAL ".")
SET(DOT_VERSION "")
ENDIF()
IF(APPLE)
SET(${OUTNAME} ${LIBNAME}${DOT_VERSION}${EXTENSION})
ELSE()
SET(${OUTNAME} ${LIBNAME}${EXTENSION}${DOT_VERSION})
ENDIF()
ENDMACRO()
ENDIF()
IF(NOT DISABLE_SHARED) IF(NOT DISABLE_SHARED)
MERGE_LIBRARIES(libmysql SHARED ${LIBS} EXPORTS ${CLIENT_API_FUNCTIONS}) MERGE_LIBRARIES(libmysql SHARED ${LIBS} EXPORTS ${CLIENT_API_FUNCTIONS})
IF(UNIX) IF(UNIX)
...@@ -182,6 +193,16 @@ IF(NOT DISABLE_SHARED) ...@@ -182,6 +193,16 @@ IF(NOT DISABLE_SHARED)
#(mysqlclient in this case) #(mysqlclient in this case)
SET_TARGET_PROPERTIES(mysqlclient PROPERTIES CLEAN_DIRECT_OUTPUT 1) SET_TARGET_PROPERTIES(mysqlclient PROPERTIES CLEAN_DIRECT_OUTPUT 1)
SET_TARGET_PROPERTIES(libmysql PROPERTIES CLEAN_DIRECT_OUTPUT 1) SET_TARGET_PROPERTIES(libmysql PROPERTIES CLEAN_DIRECT_OUTPUT 1)
INSTALL_SYMLINK(${CMAKE_SHARED_LIBRARY_PREFIX}mysqlclient_r libmysql ${INSTALL_LIBDIR})
# Install 3 links to libmysqlclient.so (client_r)
FOREACH(ver "" "${SHARED_LIB_MAJOR_VERSION}"
"${SHARED_LIB_MAJOR_VERSION}.0.0")
GET_VERSIONED_LIBNAME(
"${CMAKE_SHARED_LIBRARY_PREFIX}mysqlclient_r"
"${CMAKE_SHARED_LIBRARY_SUFFIX}"
"${ver}"
linkname)
INSTALL_SYMLINK(${linkname} libmysql ${INSTALL_LIBDIR})
ENDFOREACH()
ENDIF() ENDIF()
ENDIF() ENDIF()
...@@ -131,6 +131,11 @@ IF(MSVC) ...@@ -131,6 +131,11 @@ IF(MSVC)
INSTALL_DEBUG_TARGET(mysqlserver DESTINATION ${INSTALL_LIBDIR}/debug) INSTALL_DEBUG_TARGET(mysqlserver DESTINATION ${INSTALL_LIBDIR}/debug)
ENDIF() ENDIF()
IF(UNIX)
INSTALL_DEBUG_TARGET(mysqlserver DESTINATION ${INSTALL_LIBDIR} RENAME
${CMAKE_STATIC_LIBRARY_PREFIX}/mysqld-debug)
ENDIF()
IF(MSVC AND NOT DISABLE_SHARED) IF(MSVC AND NOT DISABLE_SHARED)
MERGE_LIBRARIES(libmysqld SHARED ${LIBS} EXPORTS ${CLIENT_API_FUNCTIONS}) MERGE_LIBRARIES(libmysqld SHARED ${LIBS} EXPORTS ${CLIENT_API_FUNCTIONS})
ENDIF() ENDIF()
...@@ -18,3 +18,4 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include) ...@@ -18,3 +18,4 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
SET(MYSQLSERVICES_SOURCES my_snprintf_service.c thd_alloc_service.c) SET(MYSQLSERVICES_SOURCES my_snprintf_service.c thd_alloc_service.c)
ADD_LIBRARY(mysqlservices ${MYSQLSERVICES_SOURCES}) ADD_LIBRARY(mysqlservices ${MYSQLSERVICES_SOURCES})
INSTALL(TARGETS mysqlservices DESTINATION ${INSTALL_LIBDIR})
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment