mirror of
https://github.com/MariaDB/server.git
synced 2026-04-24 09:15:30 +02:00
new configure option: NOT_FOR_DISTRIBUTION
fix safemalloc to compile w/o libbfd. CMakeLists.txt: NOT_FOR_DISTRIBUTION option cmake/readline.cmake: simplify libedit/readline detection. never use bundled libedit. use system readline v6 only if NOT_FOR_DISTRIBUTION=1 configure.cmake: use libbfd only if NOT_FOR_DISTRIBUTION=1 include/my_stacktrace.h: link with libbfd even w/o safemalloc.
This commit is contained in:
parent
44d335b828
commit
db8f698c8a
8 changed files with 90 additions and 85 deletions
|
|
@ -14,6 +14,8 @@
|
|||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
INCLUDE(CheckCXXSourceCompiles)
|
||||
|
||||
MACRO (MYSQL_CHECK_MULTIBYTE)
|
||||
CHECK_INCLUDE_FILE(wctype.h HAVE_WCTYPE_H)
|
||||
CHECK_INCLUDE_FILE(wchar.h HAVE_WCHAR_H)
|
||||
|
|
@ -112,56 +114,22 @@ ENDMACRO()
|
|||
MACRO (MYSQL_USE_BUNDLED_READLINE)
|
||||
SET(USE_NEW_READLINE_INTERFACE 1)
|
||||
SET(HAVE_HIST_ENTRY)
|
||||
SET(USE_LIBEDIT_INTERFACE)
|
||||
SET(READLINE_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/cmd-line-utils)
|
||||
SET(READLINE_LIBRARY readline)
|
||||
FIND_CURSES()
|
||||
ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/cmd-line-utils/readline)
|
||||
ENDMACRO()
|
||||
|
||||
MACRO (MYSQL_USE_BUNDLED_LIBEDIT)
|
||||
SET(USE_LIBEDIT_INTERFACE 1)
|
||||
SET(HAVE_HIST_ENTRY 1)
|
||||
SET(READLINE_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/cmd-line-utils/libedit)
|
||||
SET(READLINE_LIBRARY edit)
|
||||
FIND_CURSES()
|
||||
ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/cmd-line-utils/libedit)
|
||||
ENDMACRO()
|
||||
|
||||
|
||||
MACRO (MYSQL_FIND_SYSTEM_READLINE name)
|
||||
MACRO (MYSQL_FIND_SYSTEM_READLINE)
|
||||
|
||||
FIND_PATH(${name}_INCLUDE_DIR readline/readline.h )
|
||||
FIND_LIBRARY(${name}_LIBRARY NAMES ${name})
|
||||
MARK_AS_ADVANCED(${name}_INCLUDE_DIR ${name}_LIBRARY)
|
||||
|
||||
INCLUDE(CheckCXXSourceCompiles)
|
||||
SET(CMAKE_REQUIRES_LIBRARIES ${${name}_LIBRARY})
|
||||
|
||||
IF(${name}_LIBRARY AND ${name}_INCLUDE_DIR)
|
||||
SET(SYSTEM_READLINE_FOUND 1)
|
||||
SET(CMAKE_REQUIRED_LIBRARIES ${${name}_LIBRARY})
|
||||
CHECK_CXX_SOURCE_COMPILES("
|
||||
#include <stdio.h>
|
||||
#include <readline/readline.h>
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
HIST_ENTRY entry;
|
||||
return 0;
|
||||
}"
|
||||
${name}_HAVE_HIST_ENTRY)
|
||||
|
||||
CHECK_CXX_SOURCE_COMPILES("
|
||||
#include <stdio.h>
|
||||
#include <readline/readline.h>
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
char res= *(*rl_completion_entry_function)(0,0);
|
||||
completion_matches(0,0);
|
||||
}"
|
||||
${name}_USE_LIBEDIT_INTERFACE)
|
||||
FIND_PATH(READLINE_INCLUDE_DIR readline/readline.h )
|
||||
FIND_LIBRARY(READLINE_LIBRARY NAMES readline)
|
||||
MARK_AS_ADVANCED(READLINE_INCLUDE_DIR READLINE_LIBRARY)
|
||||
|
||||
SET(CMAKE_REQUIRES_LIBRARIES ${READLINE_LIBRARY})
|
||||
|
||||
IF(READLINE_LIBRARY AND READLINE_INCLUDE_DIR)
|
||||
SET(CMAKE_REQUIRED_LIBRARIES ${READLINE_LIBRARY})
|
||||
CHECK_CXX_SOURCE_COMPILES("
|
||||
#include <stdio.h>
|
||||
#include <readline/readline.h>
|
||||
|
|
@ -170,16 +138,64 @@ MACRO (MYSQL_FIND_SYSTEM_READLINE name)
|
|||
rl_completion_func_t *func1= (rl_completion_func_t*)0;
|
||||
rl_compentry_func_t *func2= (rl_compentry_func_t*)0;
|
||||
}"
|
||||
${name}_USE_NEW_READLINE_INTERFACE)
|
||||
NEW_READLINE_INTERFACE)
|
||||
|
||||
CHECK_CXX_SOURCE_COMPILES("
|
||||
#include <stdio.h>
|
||||
#include <readline/readline.h>
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
HIST_ENTRY entry;
|
||||
return 0;
|
||||
}"
|
||||
HAVE_HIST_ENTRY)
|
||||
|
||||
IF(${name}_USE_LIBEDIT_INTERFACE OR ${name}_USE_NEW_READLINE_INTERFACE)
|
||||
SET(READLINE_LIBRARY ${${name}_LIBRARY})
|
||||
SET(READLINE_INCLUDE_DIR ${${name}_INCLUDE_DIR})
|
||||
SET(HAVE_HIST_ENTRY ${${name}_HAVE_HIST_ENTRY})
|
||||
SET(USE_LIBEDIT_INTERFACE ${${name}_USE_LIBEDIT_INTERFACE})
|
||||
SET(USE_NEW_READLINE_INTERFACE ${${name}_USE_NEW_READLINE_INTERFACE})
|
||||
SET(READLINE_FOUND 1)
|
||||
ENDIF()
|
||||
CHECK_C_SOURCE_COMPILES("
|
||||
#include <stdio.h>
|
||||
#include <readline/readline.h>
|
||||
#if RL_VERSION_MAJOR > 5
|
||||
#error
|
||||
#endif
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
return 0;
|
||||
}"
|
||||
READLINE_V5)
|
||||
|
||||
IF(NEW_READLINE_INTERFACE)
|
||||
IF (READLINE_V5)
|
||||
SET(USE_NEW_READLINE_INTERFACE 1)
|
||||
ELSE()
|
||||
IF(NOT_FOR_DISTRIBUTION)
|
||||
SET(NON_DISTRIBUTABLE_WARNING 1)
|
||||
SET(USE_NEW_READLINE_INTERFACE 1)
|
||||
ELSE()
|
||||
SET(USE_NEW_READLINE_INTERFACE 0)
|
||||
ENDIF(NOT_FOR_DISTRIBUTION)
|
||||
ENDIF(READLINE_V5)
|
||||
ENDIF(NEW_READLINE_INTERFACE)
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
MACRO (MYSQL_FIND_SYSTEM_LIBEDIT)
|
||||
|
||||
FIND_PATH(READLINE_INCLUDE_DIR readline/readline.h )
|
||||
FIND_LIBRARY(READLINE_LIBRARY NAMES readline)
|
||||
MARK_AS_ADVANCED(READLINE_INCLUDE_DIR READLINE_LIBRARY)
|
||||
|
||||
SET(CMAKE_REQUIRES_LIBRARIES ${READLINE_LIBRARY})
|
||||
|
||||
IF(READLINE_LIBRARY AND READLINE_INCLUDE_DIR)
|
||||
CHECK_CXX_SOURCE_COMPILES("
|
||||
#include <stdio.h>
|
||||
#include <readline/readline.h>
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
char res= *(*rl_completion_entry_function)(0,0);
|
||||
completion_matches(0,0);
|
||||
}"
|
||||
LIBEDIT_INTERFACE)
|
||||
SET(USE_LIBEDIT_INTERFACE ${LIBEDIT_INTERFACE})
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
|
|
@ -187,44 +203,21 @@ ENDMACRO()
|
|||
MACRO (MYSQL_CHECK_READLINE)
|
||||
IF (NOT WIN32)
|
||||
MYSQL_CHECK_MULTIBYTE()
|
||||
IF(NOT CYGWIN)
|
||||
SET(WITH_LIBEDIT ON CACHE BOOL "Use bundled libedit")
|
||||
SET(WITH_READLINE OFF CACHE BOOL "Use bundled readline")
|
||||
ELSE()
|
||||
# Bundled libedit does not compile on cygwin, only readline
|
||||
SET(WITH_READLINE OFF CACHE BOOL "Use bundled readline")
|
||||
ENDIF()
|
||||
|
||||
# Handle mutual exclusion of WITH_READLINE/WITH_LIBEDIT variables
|
||||
# We save current setting to recognize when user switched between
|
||||
# WITH_READLINE and WITH_LIBEDIT
|
||||
IF(WITH_READLINE)
|
||||
IF(NOT SAVE_READLINE_SETTING OR SAVE_READLINE_SETTING MATCHES
|
||||
"WITH_LIBEDIT")
|
||||
SET(WITH_LIBEDIT OFF CACHE BOOL "Use bundled libedit" FORCE)
|
||||
ENDIF()
|
||||
ELSEIF(WITH_LIBEDIT)
|
||||
IF(NOT SAVE_READLINE_SETTING OR SAVE_READLINE_SETTING MATCHES
|
||||
"WITH_READLINE")
|
||||
SET(WITH_READLINE OFF CACHE BOOL "Use bundled readline" FORCE)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
SET(WITH_READLINE OFF CACHE BOOL "Use bundled readline")
|
||||
|
||||
IF(WITH_READLINE)
|
||||
MYSQL_USE_BUNDLED_READLINE()
|
||||
SET(SAVE_READLINE_SETTING WITH_READLINE CACHE INTERNAL "" FORCE)
|
||||
ELSEIF(WITH_LIBEDIT)
|
||||
MYSQL_USE_BUNDLED_LIBEDIT()
|
||||
SET(SAVE_READLINE_SETTING WITH_LIBEDIT CACHE INTERNAL "" FORCE)
|
||||
MYSQL_USE_BUNDLED_READLINE()
|
||||
ELSE()
|
||||
MYSQL_FIND_SYSTEM_READLINE(readline)
|
||||
IF(NOT READLINE_FOUND)
|
||||
MYSQL_FIND_SYSTEM_READLINE(edit)
|
||||
IF(NOT READLINE_FOUND)
|
||||
MESSAGE(FATAL_ERROR "Cannot find system readline or libedit libraries.Use WITH_READLINE or WITH_LIBEDIT")
|
||||
MYSQL_FIND_SYSTEM_READLINE()
|
||||
IF(NOT USE_NEW_READLINE_INTERFACE)
|
||||
MYSQL_FIND_SYSTEM_LIBEDIT()
|
||||
IF(NOT USE_LIBEDIT_INTERFACE)
|
||||
MYSQL_USE_BUNDLED_READLINE()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
SET(MY_READLINE_INCLUDE_DIR ${READLINE_INCLUDE_DIR})
|
||||
SET(MY_READLINE_LIBRARY ${READLINE_LIBRARY})
|
||||
ENDIF(NOT WIN32)
|
||||
ENDMACRO()
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue