diff options
author | Sergei Golubchik <serg@mariadb.org> | 2014-10-08 09:40:39 +0200 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2014-10-11 18:53:06 +0200 |
commit | 5ca5f92a1d6f4af0b407bc22e89b8ed78be09bc9 (patch) | |
tree | 73692c93a2cacfdac1e4f3cac0b491b8ed4fdbce /scripts | |
parent | 7f5e51b940d65cf541403a50af74163b9aed5cb8 (diff) | |
download | mariadb-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.txt | 51 | ||||
-rw-r--r-- | scripts/mysql_config.sh | 55 |
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" ;; |