Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
MDEV-11008 Connector/C integration does not respect INSTALL_LIBDIR
or INSTALL_DOCDIR

Changed C/C to use the same cmake variables for
INSTALL_LIBDIR, INSTALL_BINDIR, INSTALL_INCLUDEDIR, INSTALL_PLUGINDIR


Small cleanups (remove -l/full/path/to/libc.so from mariadb_config output)
  • Loading branch information
vaintroub committed Oct 12, 2016
1 parent 7e2804f commit e34a595
Show file tree
Hide file tree
Showing 9 changed files with 56 additions and 68 deletions.
8 changes: 4 additions & 4 deletions CMakeLists.txt
Expand Up @@ -166,7 +166,7 @@ ENDIF()

INCLUDE("${CC_SOURCE_DIR}/cmake/install.cmake")
IF(NOT PLUGINDIR)
SET(PLUGINDIR "${PREFIX_INSTALL_DIR}/${PLUGIN_INSTALL_DIR}")
SET(PLUGINDIR "${INSTALL_PLUGINDIR}")
ENDIF()

# todo: we don't character sets in share - all is compiled in
Expand Down Expand Up @@ -432,8 +432,8 @@ MESSAGE1(STATUS "MariaDB Connector/c configuration:
-- Experimental Sqlite support: ${WITH_SQLITE}
-- Zlib support: ${zlib_status}
-- Installation layout: ${INSTALL_LAYOUT}
-- Include files will be installed in ${PREFIX_INSTALL_DIR}/${INCLUDE_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}
-- Libraries will be installed in ${PREFIX_INSTALL_DIR}/${LIB_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}
-- Binaries will be installed in ${PREFIX_INSTALL_DIR}/${BIN_INSTALL_DIR}
-- Include files will be installed in ${INSTALL_INCLUDEDIR}
-- Libraries will be installed in ${INSTALL_LIBDIR}
-- Binaries will be installed in ${INSTALL_BINDIR}
-- Documentation included from ${CLIENT_DOCS}
-- Required: ${CMAKE_REQUIRED_LIBRARIES}")
2 changes: 1 addition & 1 deletion client/CMakeLists.txt
Expand Up @@ -12,6 +12,6 @@ ADD_EXECUTABLE(mariadb_client_plugin_info ${mariadb_client_plugin_info_RC} ma_pl
TARGET_LINK_LIBRARIES(mariadb_client_plugin_info mariadbclient)

INSTALL(TARGETS mariadb_client_plugin_info
DESTINATION "bin"
DESTINATION ${INSTALL_BINDIR}
COMPONENT SharedLibraries)
SIGN_TARGET(mariadb_client_plugin_info)
3 changes: 0 additions & 3 deletions cmake/FindIconv.cmake
Expand Up @@ -23,7 +23,6 @@ find_path(ICONV_INCLUDE_DIR iconv.h)
IF(CMAKE_SYSTEM_NAME MATCHES "SunOS")
# There is some libiconv.so in /usr/local that must
# be avoided, iconv routines are in libc
find_library(ICONV_LIBRARIES NAMES c)
ELSEIF(APPLE)
find_library(ICONV_LIBRARIES NAMES iconv libiconv PATHS
/usr/lib/
Expand All @@ -33,8 +32,6 @@ ELSE()
find_library(ICONV_LIBRARIES NAMES iconv libiconv libiconv-2)
IF(ICONV_LIBRARIES)
SET(ICONV_EXTERNAL TRUE)
ELSE()
find_library(ICONV_LIBRARIES NAMES c)
ENDIF()
ENDIF()

Expand Down
76 changes: 39 additions & 37 deletions cmake/install.cmake
Expand Up @@ -18,9 +18,13 @@
# INSTALL_LAYOUT installation layout (DEFAULT = standard for tar.gz and zip packages
# RPM packages
#
# BIN_INSTALL_DIR location of binaries (mariadb_config)
# LIB_INSTALL_DIR location of libraries
# PLUGIN_INSTALL_DIR location of plugins
# INSTALL_BINDIR location of binaries (mariadb_config)
# INSTALL_LIBDIR location of libraries
# INSTALL_PLUGINDIR location of plugins

IF(DEFINED INSTALL_BINDIR AND DEFINED INSTALL_LIBDIR AND DEFINED INSTALL_INCLUDEDIR AND DEFINED INSTALL_DOCDIR AND DEFINED INSTALL_PLUGINDIR)
RETURN()
ENDIF()

IF(NOT INSTALL_LAYOUT)
SET(INSTALL_LAYOUT "DEFAULT")
Expand Down Expand Up @@ -59,61 +63,59 @@ ENDIF()
#
# DEFAULT layout
#
SET(SUFFIX_INSTALL_DIR_DEFAULT "mariadb")
SET(BIN_INSTALL_DIR_DEFAULT "bin")
SET(LIB_INSTALL_DIR_DEFAULT "lib")
SET(INCLUDE_INSTALL_DIR_DEFAULT "include")
SET(DOCS_INSTALL_DIR_DEFAULT "docs")
SET(PLUGIN_INSTALL_DIR_DEFAULT "lib/mariadb/plugin")



SET(INSTALL_BINDIR_DEFAULT "bin")
SET(INSTALL_LIBDIR_DEFAULT "lib/mariadb")
SET(INSTALL_INCLUDEDIR_DEFAULT "include/mariadb")
SET(INSTALL_DOCDIR_DEFAULT "docs")
SET(INSTALL_PLUGINDIR_DEFAULT "lib/mariadb/plugin")

#
# RPM layout
#
SET(SUFFIX_INSTALL_DIR_RPM "mariadb")
SET(BIN_INSTALL_DIR_RPM "bin")
IF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
SET(LIB_INSTALL_DIR_RPM "lib64")
SET(PLUGIN_INSTALL_DIR_RPM "lib64/plugin")
SET(INSTALL_BINDIR_RPM "bin")
IF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64" AND CMAKE_SIZEOF_VOID_P EQUAL 8)
SET(INSTALL_LIBDIR_RPM "lib64/mariadb")
SET(INSTALL_PLUGINDIR_RPM "lib64/mariadb/plugin")
ELSE()
SET(LIB_INSTALL_DIR_RPM "lib")
SET(PLUGIN_INSTALL_DIR_RPM "lib/mariadb/plugin")
SET(INSTALL_LIBDIR_RPM "lib")
SET(INSTALL_PLUGINDIR_RPM "lib/mariadb/plugin")
ENDIF()

SET(INCLUDE_INSTALL_DIR_RPM "include")
SET(DOCS_INSTALL_DIR_RPM "docs")
SET(INSTALL_INCLUDEDIR_RPM "include")
SET(INSTALL_DOCDIR_RPM "docs")

#
# Overwrite defaults
#
IF(LIB_INSTALL_DIR)
SET(LIB_INSTALL_DIR_${INSTALL_LAYOUT} ${LIB_INSTALL_DIR})
IF(INSTALL_LIBDIR)
SET(INSTALL_LIBDIR_${INSTALL_LAYOUT} ${INSTALL_LIBDIR})
ENDIF()

IF(PLUGIN_INSTALL_DIR)
SET(PLUGIN_INSTALL_DIR_${INSTALL_LAYOUT} ${PLUGIN_INSTALL_DIR})
IF(INSTALL_PLUGINDIR)
SET(INSTALL_PLUGINDIR_${INSTALL_LAYOUT} ${INSTALL_PLUGINDIR})
ENDIF()

IF(INCLUDE_INSTALL_DIR)
SET(INCLUDE_INSTALL_DIR_${INSTALL_LAYOUT} ${INCLUDE_INSTALL_DIR})
IF(INSTALL_INCLUDEDIR)
SET(INSTALL_INCLUDEDIR_${INSTALL_LAYOUT} ${INSTALL_INCLUDEDIR})
ENDIF()

IF(BIN_INSTALL_DIR)
SET(BIN_INSTALL_DIR_${INSTALL_LAYOUT} ${BIN_INSTALL_DIR})
IF(INSTALL_BINDIR)
SET(INSTALL_BINDIR_${INSTALL_LAYOUT} ${INSTALL_BINDIR})
ENDIF()

IF(NOT PREFIX_INSTALL_DIR)
SET(PREFIX_INSTALL_DIR_${INSTALL_LAYOUT} ${libmariadb_prefix})
IF(NOT INSTALL_PREFIXDIR)
SET(INSTALL_PREFIXDIR_${INSTALL_LAYOUT} ${libmariadb_prefix})
ELSE()
SET(PREFIX_INSTALL_DIR_${INSTALL_LAYOUT} ${PREFIX_INSTALL_DIR})
SET(INSTALL_PREFIXDIR_${INSTALL_LAYOUT} ${INSTALL_PREFIXDIR})
ENDIF()

IF(NOT SUFFIX_INSTALL_DIR)
SET(SUFFIX_INSTALL_DIR_${INSTALL_LAYOUT} "mariadb")
ELSE()
SET(SUFFIX_INSTALL_DIR_${INSTALL_LAYOUT} ${SUFFIX_INSTALL_DIR})
IF(DEFINED INSTALL_SUFFIXDIR)
SET(INSTALL_SUFFIXDIR_${INSTALL_LAYOUT} ${INSTALL_SUFFIXDIR})
ENDIF()

FOREACH(dir "BIN" "LIB" "INCLUDE" "DOCS" "PREFIX" "SUFFIX" "PLUGIN")
SET(${dir}_INSTALL_DIR ${${dir}_INSTALL_DIR_${INSTALL_LAYOUT}})
MARK_AS_ADVANCED(${dir}_INSTALL_DIR)
FOREACH(dir "BIN" "LIB" "INCLUDE" "DOCS" "PLUGIN")
SET(INSTALL_${dir}DIR ${INSTALL_${dir}DIR_${INSTALL_LAYOUT}})
MARK_AS_ADVANCED(INSTALL_${dir}DIR)
ENDFOREACH()
6 changes: 1 addition & 5 deletions cmake/install_plugins.cmake
Expand Up @@ -8,11 +8,7 @@
# plugin installation

MACRO(INSTALL_PLUGIN name binary_dir)
INSTALL(TARGETS ${name}
COMPONENT ClientPlugins
RUNTIME DESTINATION "${PLUGIN_INSTALL_DIR}"
LIBRARY DESTINATION "${PLUGIN_INSTALL_DIR}"
ARCHIVE DESTINATION "${PLUGIN_INSTALL_DIR}")
INSTALL(TARGETS ${name} COMPONENT ClientPlugins DESTINATION ${INSTALL_PLUGINDIR})
IF(WIN32)
FILE(APPEND ${CC_BINARY_DIR}/win/packaging/plugin.conf "<File Id=\"${name}.dll\" Name=\"${name}.dll\" DiskId=\"1\" Source=\"${binary_dir}/${CMAKE_BUILD_TYPE}/${name}.dll\"/>\n")
ENDIF()
Expand Down
6 changes: 3 additions & 3 deletions include/CMakeLists.txt
Expand Up @@ -17,15 +17,15 @@ SET(MYSQL_ADDITIONAL_INCLUDES

INSTALL(FILES
${MARIADB_CLIENT_INCLUDES}
DESTINATION ${INCLUDE_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}
DESTINATION ${INSTALL_INCLUDEDIR}
COMPONENT Development)
INSTALL(FILES
${MYSQL_ADDITIONAL_INCLUDES}
DESTINATION ${INCLUDE_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}/mysql
DESTINATION ${INSTALL_INCLUDEDIR}/mysql
COMPONENT Development)
INSTALL(FILES
${MARIADB_ADDITIONAL_INCLUDES}
DESTINATION ${INCLUDE_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}/mariadb
DESTINATION ${INSTALL_INCLUDEDIR}/mariadb
COMPONENT Development)


11 changes: 3 additions & 8 deletions libmariadb/CMakeLists.txt
Expand Up @@ -388,22 +388,17 @@ INCLUDE(${CC_SOURCE_DIR}/cmake/symlink.cmake)
# There are still several projects which don't make use
# of the config program. To make sure these programs can
# use mariadb client library we provide libmysql symlinks
SET(INSTALL_PATH ${LIB_INSTALL_DIR}/${SUFFIX_INSTALL_DIR})

SET_TARGET_PROPERTIES(libmariadb PROPERTIES VERSION
${CPACK_PACKAGE_VERSION_MAJOR}
SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR})

INSTALL(TARGETS mariadbclient
COMPONENT Development
RUNTIME DESTINATION "${INSTALL_PATH}"
LIBRARY DESTINATION "${INSTALL_PATH}"
ARCHIVE DESTINATION "${INSTALL_PATH}")
DESTINATION ${INSTALL_LIBDIR})
INSTALL(TARGETS libmariadb
COMPONENT SharedLibraries
RUNTIME DESTINATION "${INSTALL_PATH}"
LIBRARY DESTINATION "${INSTALL_PATH}"
ARCHIVE DESTINATION "${INSTALL_PATH}")
DESTINATION ${INSTALL_LIBDIR})

IF(WIN32)
# On Windows, install PDB
Expand All @@ -413,6 +408,6 @@ IF(WIN32)
STRING(REPLACE "${CMAKE_CFG_INTDIR}" "\${CMAKE_INSTALL_CONFIG_NAME}"
pdb_location ${pdb_location})
ENDIF()
INSTALL(FILES ${pdb_location} DESTINATION "${INSTALL_PATH}"
INSTALL(FILES ${pdb_location} DESTINATION "${INSTALL_LIBDIR}"
COMPONENT Development)
ENDIF()
8 changes: 4 additions & 4 deletions mariadb_config/mariadb_config.c.in
Expand Up @@ -6,13 +6,13 @@

static char *mariadb_progname;

#define INCLUDE "-I@PREFIX_INSTALL_DIR@/@INCLUDE_INSTALL_DIR@/@SUFFIX_INSTALL_DIR@ -I@PREFIX_INSTALL_DIR@/@INCLUDE_INSTALL_DIR@/@SUFFIX_INSTALL_DIR@/mysql"
#define LIBS "-L@PREFIX_INSTALL_DIR@/@LIB_INSTALL_DIR@/@SUFFIX_INSTALL_DIR@ -lmariadb " \
#define INCLUDE "-I@CMAKE_INSTALL_PREFIX@/@INSTALL_INCLUDEDIR@ -I@CMAKE_INSTALL_PREFIX@/@INSTALL_INCLUDEDIR@/mysql"
#define LIBS "-L@CMAKE_INSTALL_PREFIX@/@INSTALL_LIBDIR@/ -lmariadb " \
"@extra_dynamic_LDFLAGS@"
#define LIBS_SYS "@extra_dynamic_LDFLAGS@"
#define CFLAGS INCLUDE " @CMAKE_C_FLAGS@"
#define CFLAGS INCLUDE
#define VERSION "@MARIADB_CLIENT_VERSION@"
#define PLUGIN_DIR "@PREFIX_INSTALL_DIR@/@SUFFIX_INSTALL_DIR@/@PLUGIN_INSTALL_DIR@"
#define PLUGIN_DIR "@CMAKE_INSTALL_PREFIX@/@INSTALL_PLUGINDIR@"
#define SOCKET "@MARIADB_UNIX_ADDR@"
#define PORT "@MARIADB_PORT@"

Expand Down
4 changes: 1 addition & 3 deletions plugins/connection/CMakeLists.txt
Expand Up @@ -42,7 +42,5 @@ IF(INSTALL_LIBS)
INSTALL(TARGETS
${INSTALL_LIBS}
COMPONENT ClientPlugins
RUNTIME DESTINATION "${PLUGIN_INSTALL_DIR}"
LIBRARY DESTINATION "${PLUGIN_INSTALL_DIR}"
ARCHIVE DESTINATION "${PLUGIN_INSTALL_DIR}")
DESTINATION "${INSTALL_PLUGINDIR}")
ENDIF()

0 comments on commit e34a595

Please sign in to comment.