diff -ur mysql-old/cmake/install_layout.cmake mysql/cmake/install_layout.cmake --- mysql-old/cmake/install_layout.cmake 2014-01-20 00:14:06.581799638 -0100 +++ mysql/cmake/install_layout.cmake 2014-01-20 00:15:27.647802721 -0100 @@ -43,7 +43,8 @@ # - INSTALL_SBINDIR (directory with mysqld) # - INSTALL_SCRIPTDIR (several scripts, rarely used) # -# - INSTALL_LIBDIR (directory with client end embedded libraries) +# - INSTALL_LIBDIR (directory with client libraries) +# - INSTALL_ELIBDIR (directory with embedded libraries) # - INSTALL_PLUGINDIR (directory for plugins) # # - INSTALL_INCLUDEDIR (directory for MySQL headers) @@ -117,6 +118,7 @@ SET(INSTALL_SCRIPTDIR_STANDALONE "scripts") # SET(INSTALL_LIBDIR_STANDALONE "lib") +SET(INSTALL_ELIBDIR_STANDALONE "lib") SET(INSTALL_PLUGINDIR_STANDALONE "lib/plugin") # SET(INSTALL_INCLUDEDIR_STANDALONE "include") @@ -148,9 +150,11 @@ # IF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64") SET(INSTALL_LIBDIR_RPM "lib64") + SET(INSTALL_ELIBDIR_RPM "lib64") SET(INSTALL_PLUGINDIR_RPM "lib64/mysql/plugin") ELSE() SET(INSTALL_LIBDIR_RPM "lib") + SET(INSTALL_ELIBDIR_RPM "lib") SET(INSTALL_PLUGINDIR_RPM "lib/mysql/plugin") ENDIF() # @@ -178,6 +182,7 @@ SET(INSTALL_SCRIPTDIR_DEB "scripts") # SET(INSTALL_LIBDIR_DEB "lib") +SET(INSTALL_ELIBDIR_DEB "lib") SET(INSTALL_PLUGINDIR_DEB "lib/plugin") # SET(INSTALL_INCLUDEDIR_DEB "include") @@ -204,6 +209,7 @@ SET(INSTALL_SCRIPTDIR_SVR4 "scripts") # SET(INSTALL_LIBDIR_SVR4 "lib") +SET(INSTALL_ELIBDIR_SVR4 "lib") SET(INSTALL_PLUGINDIR_SVR4 "lib/plugin") # SET(INSTALL_INCLUDEDIR_SVR4 "include") @@ -234,7 +240,7 @@ # Set INSTALL_FOODIR variables for chosen layout (for example, INSTALL_BINDIR # will be defined as ${INSTALL_BINDIR_STANDALONE} by default if STANDALONE # layout is chosen) -FOREACH(var BIN SBIN LIB MYSQLSHARE SHARE PLUGIN INCLUDE SCRIPT DOC MAN +FOREACH(var BIN SBIN LIB ELIB MYSQLSHARE SHARE PLUGIN INCLUDE SCRIPT DOC MAN INFO MYSQLTEST SQLBENCH DOCREADME SUPPORTFILES MYSQLDATA PLUGINTEST) SET(INSTALL_${var}DIR ${INSTALL_${var}DIR_${INSTALL_LAYOUT}} CACHE STRING "${var} installation directory" ${FORCE}) diff -ur mysql-old/cmake/libutils.cmake mysql/cmake/libutils.cmake --- mysql-old/cmake/libutils.cmake 2014-01-20 00:14:06.581799638 -0100 +++ mysql/cmake/libutils.cmake 2014-01-20 00:15:27.647802721 -0100 @@ -40,6 +40,8 @@ # - MERGE_LIBRARIES(target [STATIC|SHARED|MODULE] [linklib1 .... linklibN] # [EXPORTS exported_func1 .... exported_func_N] # [OUTPUT_NAME output_name] +# [OUTPUT_DIR output_dir] + # This macro merges several static libraries into a single one or creates a shared # library from several convenience libraries @@ -214,7 +216,7 @@ #) MACRO(MERGE_LIBRARIES) MYSQL_PARSE_ARGUMENTS(ARG - "EXPORTS;OUTPUT_NAME;COMPONENT" + "EXPORTS;OUTPUT_NAME;COMPONENT;OUTPUT_DIR" "STATIC;SHARED;MODULE;NOINSTALL" ${ARGN} ) @@ -265,7 +267,11 @@ IF(ARG_COMPONENT) SET(COMP COMPONENT ${ARG_COMPONENT}) ENDIF() - MYSQL_INSTALL_TARGETS(${TARGET} DESTINATION "${INSTALL_LIBDIR}" ${COMP}) + IF(ARG_OUTPUT_DIR) + MYSQL_INSTALL_TARGETS(${TARGET} DESTINATION "${ARG_OUTPUT_DIR}" ${COMP}) + ELSE() + MYSQL_INSTALL_TARGETS(${TARGET} DESTINATION "${INSTALL_LIBDIR}" ${COMP}) + ENDIF() ENDIF() SET_TARGET_PROPERTIES(${TARGET} PROPERTIES LINK_INTERFACE_LIBRARIES "") diff -ur mysql-old/libmysql/CMakeLists.txt mysql/libmysql/CMakeLists.txt --- mysql-old/libmysql/CMakeLists.txt 2014-01-20 00:14:06.580799638 -0100 +++ mysql/libmysql/CMakeLists.txt 2014-01-20 00:15:27.647802721 -0100 @@ -179,8 +179,13 @@ LIST(APPEND LIBS auth_win_client) ENDIF() +SET(INSTALL_STATIC_LIBS "") +IF(NOT ENABLE_STATIC_LIBS) + SET(INSTALL_STATIC_LIBS "NOINSTALL") +ENDIF() + # Merge several convenience libraries into one big mysqlclient -MERGE_LIBRARIES(mysqlclient STATIC ${LIBS} COMPONENT Development) +MERGE_LIBRARIES(mysqlclient STATIC ${LIBS} COMPONENT Development OUTPUT_DIR ${INSTALL_LIBDIR} ${INSTALL_STATIC_LIBS}) # Visual Studio users need debug static library for debug projects INSTALL_DEBUG_SYMBOLS(clientlib) @@ -211,9 +216,11 @@ IF(UNIX) GET_TARGET_NAME(mysqlclient lib_name) - INSTALL_SYMLINK(mysqlclient - ${lib_name} ${CMAKE_STATIC_LIBRARY_PREFIX}mysqlclient_r.a - ${INSTALL_LIBDIR} Development) + IF(ENABLE_STATIC_LIBS) + INSTALL_SYMLINK(mysqlclient + ${lib_name} ${CMAKE_STATIC_LIBRARY_PREFIX}mysqlclient_r.a + ${INSTALL_LIBDIR} Development) + ENDIF() ENDIF() IF(NOT DISABLE_SHARED) diff -ur mysql-old/libmysqld/CMakeLists.txt mysql/libmysqld/CMakeLists.txt --- mysql-old/libmysqld/CMakeLists.txt 2014-01-20 00:14:06.453799634 -0100 +++ mysql/libmysqld/CMakeLists.txt 2014-01-20 00:25:46.375826250 -0100 @@ -126,8 +126,13 @@ ENDIF() ENDFOREACH() +SET(INSTALL_STATIC_LIBS "") +IF(NOT ENABLE_STATIC_LIBS) + SET(INSTALL_STATIC_LIBS "NOINSTALL") +ENDIF() + MERGE_LIBRARIES(mysqlserver STATIC ${EMBEDDED_LIBS} - OUTPUT_NAME ${MYSQLSERVER_OUTPUT_NAME} COMPONENT Embedded) + OUTPUT_NAME ${MYSQLSERVER_OUTPUT_NAME} COMPONENT Embedded OUTPUT_DIR ${INSTALL_ELIBDIR} ${INSTALL_STATIC_LIBS}) # Visual Studio users need debug static library IF(MSVC) @@ -135,8 +135,8 @@ ENDIF() IF(UNIX) - INSTALL_DEBUG_TARGET(mysqlserver DESTINATION ${INSTALL_LIBDIR} RENAME + INSTALL_DEBUG_TARGET(mysqlserver DESTINATION ${INSTALL_ELIBDIR} RENAME ${CMAKE_STATIC_LIBRARY_PREFIX}mysqld-debug) ENDIF() IF(MSVC AND NOT DISABLE_SHARED) --- mysql-old/libservices/CMakeLists.txt 2014-02-06 14:35:25.162325748 -0500 +++ mysql/libservices/CMakeLists.txt 2014-02-06 14:36:20.051137978 -0500 @@ -26,4 +26,6 @@ my_thread_scheduler_service.c) ADD_LIBRARY(mysqlservices ${MYSQLSERVICES_SOURCES}) -INSTALL(TARGETS mysqlservices DESTINATION ${INSTALL_LIBDIR} COMPONENT Development) +IF(ENABLE_STATIC_LIBS) + INSTALL(TARGETS mysqlservices DESTINATION ${INSTALL_LIBDIR} COMPONENT Development) +ENDIF() diff -aurN mysql.old/scripts/CMakeLists.txt mysql/scripts/CMakeLists.txt --- mysql.old/scripts/CMakeLists.txt 2014-03-14 15:07:28.000000000 -0400 +++ mysql/scripts/CMakeLists.txt 2014-04-25 22:46:35.000000000 -0400 @@ -239,6 +239,7 @@ SET(pkglibdir ${prefix}/${INSTALL_LIBDIR}) SET(pkgplugindir ${prefix}/${INSTALL_PLUGINDIR}) SET(localstatedir ${MYSQL_DATADIR}) +SET(elibdir ${prefix}/${INSTALL_ELIBDIR}) SET(RPATH_OPTION "") IF(CMAKE_SYSTEM_NAME STREQUAL "SunOS") diff -aurN mysql.old/scripts/mysql_config.sh mysql/scripts/mysql_config.sh --- mysql.old/scripts/mysql_config.sh 2014-03-14 15:07:28.000000000 -0400 +++ mysql/scripts/mysql_config.sh 2014-04-25 22:48:26.000000000 -0400 @@ -91,6 +91,10 @@ plugindir_rel=`echo $plugindir | sed -e "s;^$basedir/;;"` fix_path plugindir $plugindir_rel lib/mysql/plugin lib/plugin +elibdir='@elibdir@' +elibdir_rel=`echo $elibdir | sed -e "s;^$basedir/;;"` +fix_path elibdir $elibdir_rel lib64/mysql lib64 lib/mysql lib + pkgincludedir='@pkgincludedir@' if [ -f "$basedir/include/mysql/mysql.h" ]; then pkgincludedir="$basedir/include/mysql" @@ -113,7 +117,7 @@ libs=" $ldflags -L$pkglibdir @RPATH_OPTION@ -lmysqlclient @ZLIB_DEPS@ @NON_THREADED_LIBS@" libs="$libs @openssl_libs@ @STATIC_NSS_FLAGS@ " libs_r=" $ldflags -L$pkglibdir @RPATH_OPTION@ -lmysqlclient @ZLIB_DEPS@ @CLIENT_LIBS@ @openssl_libs@ " -embedded_libs=" $ldflags -L$pkglibdir @RPATH_OPTION@ -lmysqld @LIBDL@ @ZLIB_DEPS@ @LIBS@ @WRAPLIBS@ @openssl_libs@ " +embedded_libs=" $ldflags -L$elibdir @RPATH_OPTION@ -lmysqld @LIBDL@ @ZLIB_DEPS@ @LIBS@ @WRAPLIBS@ @openssl_libs@ " embedded_libs="$embedded_libs @QUOTED_CMAKE_CXX_LINK_FLAGS@" cflags="-I$pkgincludedir @CFLAGS@ " #note: end space!