summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2014-10-08 09:40:39 +0200
committerSergei Golubchik <serg@mariadb.org>2014-10-11 18:53:06 +0200
commit5ca5f92a1d6f4af0b407bc22e89b8ed78be09bc9 (patch)
tree73692c93a2cacfdac1e4f3cac0b491b8ed4fdbce /scripts
parent7f5e51b940d65cf541403a50af74163b9aed5cb8 (diff)
downloadmariadb-git-5ca5f92a1d6f4af0b407bc22e89b8ed78be09bc9.tar.gz
MDEV-5749 Please add a .pc file to MariaDB for easy use via pkg-config
Diffstat (limited to 'scripts')
-rw-r--r--scripts/CMakeLists.txt51
-rw-r--r--scripts/mysql_config.sh55
2 files changed, 5 insertions, 101 deletions
diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt
index 1f0f28061ed..e46da850157 100644
--- a/scripts/CMakeLists.txt
+++ b/scripts/CMakeLists.txt
@@ -244,57 +244,6 @@ ELSE()
SET(TARGET_LINUX "false")
ENDIF()
-# Use cmake variables to inspect dependencies for
-# mysqlclient library (add -l stuff)
-SET(CLIENT_LIBS "")
-SET(LIBS "")
-
-# Avoid compatibility warning about lists with empty elements
-IF(POLICY CMP0011)
- CMAKE_POLICY(SET CMP0011 NEW)
-ENDIF()
-IF(POLICY CMP0007)
- CMAKE_POLICY(SET CMP0007 OLD)
-ENDIF()
-
-# Extract dependencies using CMake's internal ${target}_LIB_DEPENDS variable
-# returned string in ${var} is can be passed to linker's command line
-MACRO(EXTRACT_LINK_LIBRARIES target var)
- IF(${target}_LIB_DEPENDS)
- LIST(REMOVE_ITEM ${target}_LIB_DEPENDS "")
- LIST(REMOVE_DUPLICATES ${target}_LIB_DEPENDS)
- FOREACH(lib ${${target}_LIB_DEPENDS})
- # Filter out "general", it is not a library, just CMake hint
- # Also, remove duplicates
- IF(NOT lib STREQUAL "general" AND NOT ${var} MATCHES "-l${lib} ")
- IF (lib MATCHES "^\\-l")
- SET(${var} "${${var}} ${lib} ")
- ELSEIF(lib MATCHES "^/")
- IF (lib MATCHES "\\.(a|so([0-9.]*)|lib|dll|dylib)$")
- # Full path, convert to just filename, strip "lib" prefix and extension
- GET_FILENAME_COMPONENT(lib "${lib}" NAME_WE)
- STRING(REGEX REPLACE "^lib" "" lib "${lib}")
- SET(${var} "${${var}}-l${lib} " )
- ENDIF()
- ELSE()
- SET(${var} "${${var}}-l${lib} " )
- ENDIF()
- ENDIF()
- ENDFOREACH()
- ENDIF()
- IF(MSVC)
- STRING(REPLACE "-l" "" ${var} "${${var}}")
- ENDIF()
-ENDMACRO()
-
-EXTRACT_LINK_LIBRARIES(mysqlclient CLIENT_LIBS)
-EXTRACT_LINK_LIBRARIES(mysqlserver LIBS)
-
-# mysql_config evaluates ${LIBDL}, we want to avoid it
-# as our CLIENT_LIBS and LIBS are already correct
-SET(LIBDL)
-
-SET(NON_THREADED_LIBS ${CLIENT_LIBS})
SET(mysql_config_COMPONENT COMPONENT Development)
SET(msql2mysql_COMPONENT COMPONENT Client)
SET(mysqlaccess_COMPONENT COMPONENT Client)
diff --git a/scripts/mysql_config.sh b/scripts/mysql_config.sh
index 938fbbfbeea..de874ef0424 100644
--- a/scripts/mysql_config.sh
+++ b/scripts/mysql_config.sh
@@ -96,7 +96,6 @@ fix_path pkgincludedir include/mysql
version='@VERSION@'
socket='@MYSQL_UNIX_ADDR@'
-ldflags='@LDFLAGS@'
if [ @MYSQL_TCP_PORT_DEFAULT@ -eq 0 ]; then
port=0
@@ -105,58 +104,14 @@ else
fi
# Create options
-# We intentionally add a space to the beginning and end of lib strings, simplifies replace later
-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_r @ZLIB_DEPS@ @CLIENT_LIBS@ @openssl_libs@ "
-embedded_libs=" $ldflags -L$pkglibdir @RPATH_OPTION@ -lmysqld @LIBDL@ @ZLIB_DEPS@ @LIBS@ @WRAPLIBS@ @openssl_libs@ "
-
-if [ -r "$pkglibdir/libmygcc.a" ]; then
- # When linking against the static library with a different version of GCC
- # from what was used to compile the library, some symbols may not be defined
- # automatically. We package the libmygcc.a from the build host, to provide
- # definitions for those. Bugs 4921, 19561, 19817, 21158, etc.
- libs="$libs -lmygcc "
- libs_r="$libs_r -lmygcc "
- embedded_libs="$embedded_libs -lmygcc "
-fi
+libs="-L$pkglibdir @RPATH_OPTION@ @LIBS_FOR_CLIENTS@"
+embedded_libs="-L$pkglibdir @RPATH_OPTION@ @EMB_LIBS_FOR_CLIENTS@"
include="-I$pkgincludedir"
if [ "$basedir" != "/usr" ]; then
include="$include -I$pkgincludedir/.."
fi
-cflags="$include @CFLAGS@ " #note: end space!
-
-# Remove some options that a client doesn't have to care about
-# FIXME until we have a --cxxflags, we need to remove -Xa
-# and -xstrconst to make --cflags usable for Sun Forte C++
-# FIXME until we have a --cxxflags, we need to remove -AC99
-# to make --cflags usable for HP C++ (aCC)
-for remove in DDBUG_OFF DSAFE_MUTEX DUNIV_MUST_NOT_INLINE DFORCE_INIT_OF_VARS \
- DEXTRA_DEBUG DHAVE_valgrind O 'O[0-9]' 'xO[0-9]' 'W[-A-Za-z]*' \
- 'mtune=[-A-Za-z0-9]*' 'mcpu=[-A-Za-z0-9]*' 'march=[-A-Za-z0-9]*' \
- Xa xstrconst "xc99=none" AC99 \
- unroll2 ip mp restrict
-do
- # The first option we might strip will always have a space before it because
- # we set -I$pkgincludedir as the first option
- cflags=`echo "$cflags"|sed -e "s/ -$remove */ /g"`
-done
-cflags=`echo "$cflags"|sed -e 's/ *\$//'`
-
-# Same for --libs(_r)
-for remove in lmtmalloc static-libcxa i-static static-intel
-do
- # We know the strings starts with a space
- libs=`echo "$libs"|sed -e "s/ -$remove */ /g"`
- libs_r=`echo "$libs_r"|sed -e "s/ -$remove */ /g"`
- embedded_libs=`echo "$embedded_libs"|sed -e "s/ -$remove */ /g"`
-done
-
-# Strip trailing and ending space if any, and '+' (FIXME why?)
-libs=`echo "$libs" | sed -e 's; \+; ;g' | sed -e 's;^ *;;' | sed -e 's; *\$;;'`
-libs_r=`echo "$libs_r" | sed -e 's; \+; ;g' | sed -e 's;^ *;;' | sed -e 's; *\$;;'`
-embedded_libs=`echo "$embedded_libs" | sed -e 's; \+; ;g' | sed -e 's;^ *;;' | sed -e 's; *\$;;'`
+cflags="$include @CFLAGS_FOR_CLIENTS@"
usage () {
cat <<EOF
@@ -165,7 +120,7 @@ Options:
--cflags [$cflags]
--include [$include]
--libs [$libs]
- --libs_r [$libs_r]
+ --libs_r [$libs]
--plugindir [$plugindir]
--socket [$socket]
--port [$port]
@@ -186,7 +141,7 @@ while test $# -gt 0; do
--cflags) echo "$cflags" ;;
--include) echo "$include" ;;
--libs) echo "$libs" ;;
- --libs_r) echo "$libs_r" ;;
+ --libs_r) echo "$libs" ;;
--plugindir) echo "$plugindir" ;;
--socket) echo "$socket" ;;
--port) echo "$port" ;;