mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
853077ad7e
Conflicts: .bzrignore VERSION cmake/plugin.cmake debian/dist/Debian/control debian/dist/Ubuntu/control mysql-test/r/join_outer.result mysql-test/r/join_outer_jcl6.result mysql-test/r/null.result mysql-test/r/old-mode.result mysql-test/r/union.result mysql-test/t/join_outer.test mysql-test/t/null.test mysql-test/t/old-mode.test mysql-test/t/union.test packaging/rpm-oel/mysql.spec.in scripts/mysql_config.sh sql/ha_ndbcluster.cc sql/ha_ndbcluster_binlog.cc sql/ha_ndbcluster_cond.cc sql/item_cmpfunc.h sql/lock.cc sql/sql_select.cc sql/sql_show.cc sql/sql_update.cc sql/sql_yacc.yy storage/innobase/buf/buf0flu.cc storage/innobase/fil/fil0fil.cc storage/innobase/include/srv0srv.h storage/innobase/lock/lock0lock.cc storage/tokudb/CMakeLists.txt storage/xtradb/buf/buf0flu.cc storage/xtradb/fil/fil0fil.cc storage/xtradb/include/srv0srv.h storage/xtradb/lock/lock0lock.cc support-files/mysql.spec.sh
77 lines
2.8 KiB
CMake
77 lines
2.8 KiB
CMake
#
|
|
# Generate LIBS and CFLAGS that third-party clients should use
|
|
#
|
|
|
|
# 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 LIBS)
|
|
EXTRACT_LINK_LIBRARIES(mysqlserver EMB_LIBS)
|
|
|
|
SET(LIBS "-lmysqlclient ${ZLIB_DEPS} ${LIBS} ${openssl_libs}")
|
|
SET(EMB_LIBS "-lmysqld ${ZLIB_DEPS} ${EMB_LIBS} ${openssl_libs}")
|
|
|
|
MACRO(REPLACE_FOR_CLIENTS VAR)
|
|
SET(v " ${${VAR}} ")
|
|
FOREACH(del ${ARGN})
|
|
STRING(REGEX REPLACE " -(${del}) " " " v ${v})
|
|
ENDFOREACH(del)
|
|
STRING(REGEX REPLACE " +" " " v ${v})
|
|
STRING(STRIP "${v}" ${VAR}_FOR_CLIENTS)
|
|
ENDMACRO()
|
|
|
|
# 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)
|
|
REPLACE_FOR_CLIENTS(CFLAGS "[DU]DBUG_OFF" "[DU]SAFE_MUTEX" "[DU]NDEBUG"
|
|
"[DU]UNIV_MUST_NOT_INLINE" "[DU]FORCE_INIT_OF_VARS" "[DU]EXTRA_DEBUG" "[DU]HAVE_valgrind"
|
|
"O" "O[0-9]" "xO[0-9]" "W[-A-Za-z]*" "mtune=[-A-Za-z0-9]*" "g" "fPIC"
|
|
"mcpu=[-A-Za-z0-9]*" "unroll2" "ip" "mp" "march=[-A-Za-z0-9]*" "Xa"
|
|
"xstrconst" "xc99=none" "AC99" "restrict" "W[-A-Za-z]*=[-A-Za-z0-9]*")
|
|
|
|
# Same for --libs
|
|
REPLACE_FOR_CLIENTS(LIBS lmtmalloc static-libcxa i-static static-intel)
|
|
REPLACE_FOR_CLIENTS(EMB_LIBS lmtmalloc static-libcxa i-static static-intel)
|
|
|