2009-11-26 18:40:45 +01:00
|
|
|
SET(CMAKE_SYSTEM_NAME @CMAKE_SYSTEM_NAME@)
|
|
|
|
SET(UNIX @UNIX@)
|
|
|
|
SET(WIN32 @WIN32@)
|
|
|
|
SET(MSVC @MSVC@)
|
|
|
|
SET(CFLAGS "@CMAKE_C_FLAGS_RELWITHDEBINFO@")
|
|
|
|
SET(CXXFLAGS "@CMAKE_CXX_FLAGS_RELWITHDEBINFO@")
|
|
|
|
SET(LDFLAGS "@CMAKE_SHARED_LIBRARY_LINK_FLAGS@")
|
|
|
|
SET(mysqlclient_LIB_DEPENDS "@mysqlclient_LIB_DEPENDS@")
|
2009-12-07 15:07:26 +01:00
|
|
|
SET(mysqlserver_LIB_DEPENDS "@mysqlserver_LIB_DEPENDS@")
|
2009-11-26 18:40:45 +01:00
|
|
|
SET(CMAKE_CURRENT_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@")
|
|
|
|
SET(CMAKE_CURRENT_BINARY_DIR "@CMAKE_CURRENT_BINARY_DIR@")
|
|
|
|
SET(CMAKE_COMPILER_IS_GNUCXX "@CMAKE_COMPILER_IS_GNUCXX@")
|
|
|
|
SET(CMAKE_CXX_COMPILER "@CMAKE_CXX_COMPILER@")
|
|
|
|
SET(CMAKE_CXX_COMPILER_ARG1 "@CMAKE_CXX_COMPILER_ARG1@")
|
2009-12-07 15:07:26 +01:00
|
|
|
SET(VERSION "@VERSION@")
|
|
|
|
SET(MYSQL_UNIX_ADDR "@MYSQL_UNIX_ADDR@")
|
|
|
|
SET(MYSQL_TCP_PORT_DEFAULT "@MYSQL_TCP_PORT_DEFAULT@")
|
|
|
|
SET(MYSQL_TCP_PORT "@MYSQL_TCP_PORT@")
|
|
|
|
SET(LIBDL "@LIBDL@")
|
|
|
|
SET(LIBWRAP "@LIBWRAP@")
|
|
|
|
|
2009-11-26 18:40:45 +01:00
|
|
|
|
|
|
|
IF(UNIX)
|
|
|
|
# FIND_PROC and CHECK_PID are used by mysqld_safe
|
|
|
|
IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
|
|
|
SET (FIND_PROC
|
|
|
|
"ps wwwp $PID | grep -v \" grep\" | grep -v mysqld_safe | grep -- \"$MYSQLD\" > /dev/null")
|
|
|
|
ENDIF()
|
|
|
|
IF(NOT FIND_PROC AND CMAKE_SYSTEM_NAME MATCHES "SunOS")
|
|
|
|
SET (FIND_PROC
|
|
|
|
"ps -p $PID | grep -v \" grep\" | grep -v mysqld_safe | grep -- \"$MYSQLD\" > /dev/null")
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
IF(NOT FIND_PROC)
|
|
|
|
# BSD style
|
|
|
|
EXECUTE_PROCESS(COMMAND ps -uaxww OUTPUT_QUIET ERROR_QUIET RESULT_VARIABLE result)
|
|
|
|
IF(result MATCHES 0)
|
|
|
|
SET( FIND_PROC
|
|
|
|
"ps -uaxww | grep -v \" grep\" | grep -v mysqld_safe | grep -- "\$MYSQLD\" | grep \" $PID \" > /dev/null")
|
|
|
|
ENDIF()
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
IF(NOT FIND_PROC)
|
|
|
|
# SysV style
|
|
|
|
EXECUTE_PROCESS(COMMAND ps -ef OUTPUT_QUIET ERROR_QUIET RESULT_VARIABLE result)
|
|
|
|
IF(result MATCHES 0)
|
|
|
|
SET( FIND_PROC "ps -ef | grep -v \" grep\" | grep -v mysqld_safe | grep -- "\$MYSQLD\" | grep \" $PID \" > /dev/null")
|
|
|
|
ENDIF()
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
EXECUTE_PROCESS(COMMAND sh -c "kill -0 $$" OUTPUT_QUIET ERROR_QUIET RESULT_VARIABLE result2)
|
|
|
|
IF(result3 MATCHES 0)
|
|
|
|
SET(CHECK_PID "kill -0 $PID > /dev/null 2> /dev/null")
|
|
|
|
ELSE()
|
|
|
|
EXECUTE_PROCESS(COMMAND sh -c "kill -s 0 $$" OUTPUT_QUIET ERROR_QUIET RESULT_VARIABLE result3)
|
|
|
|
IF(result4 MATCHES 0)
|
|
|
|
SET(CHECK_PID "kill -s 0 $PID > /dev/null 2> /dev/null")
|
|
|
|
ELSE()
|
|
|
|
SET(CHECK_PID "kill -s SIGCONT $PID > /dev/null 2> /dev/null")
|
|
|
|
ENDIF()
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
ENDIF(UNIX)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set(prefix "$ENV{DESTDIR}/${CMAKE_INSTALL_PREFIX}")
|
|
|
|
|
|
|
|
SET(sysconfdir ${prefix})
|
|
|
|
SET(bindir ${prefix}/bin)
|
|
|
|
SET(libexecdir ${prefix}/bin)
|
|
|
|
SET(scriptdir ${prefix}/bin)
|
|
|
|
SET(datadir ${prefix}/share)
|
|
|
|
SET(pkgdatadir ${prefix}/share)
|
|
|
|
SET(pkgincludedir ${prefix}/include)
|
|
|
|
SET(pkglibdir ${prefix}/lib)
|
|
|
|
SET(pkgplugindir ${prefix}/lib/plugin)
|
|
|
|
SET(localstatedir ${prefix}/data)
|
|
|
|
# some scripts use @TARGET_LINUX@
|
|
|
|
IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
|
|
|
SET(TARGET_LINUX 1)
|
|
|
|
ELSE()
|
|
|
|
SET(TARGET_LINUX 0)
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
# Use cmake variables to inspect dependencies for
|
|
|
|
# mysqlclient library (add -l stuff)
|
|
|
|
SET(CLIENT_LIBS "")
|
|
|
|
SET(LIBS "")
|
2009-12-07 22:01:03 +01:00
|
|
|
|
|
|
|
# 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()
|
|
|
|
|
2009-12-07 15:56:15 +01:00
|
|
|
LIST(REMOVE_ITEM mysqlclient_LIB_DEPENDS "")
|
2009-12-07 15:07:26 +01:00
|
|
|
LIST(REMOVE_DUPLICATES mysqlclient_LIB_DEPENDS)
|
2009-11-26 18:40:45 +01:00
|
|
|
FOREACH(lib ${mysqlclient_LIB_DEPENDS})
|
|
|
|
# Filter out "general", it is not a library, just CMake hint
|
|
|
|
IF(NOT lib STREQUAL "general" AND NOT CLIENT_LIBS MATCHES "-l${lib} ")
|
2009-12-07 15:07:26 +01:00
|
|
|
IF (lib MATCHES "^\\-l")
|
|
|
|
SET(CLIENT_LIBS "${CLIENT_LIBS} ${lib} ")
|
|
|
|
ELSEIF(lib MATCHES "^/")
|
|
|
|
# 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(CLIENT_LIBS "${CLIENT_LIBS}-l${lib} " )
|
|
|
|
ELSE()
|
|
|
|
SET(CLIENT_LIBS "${CLIENT_LIBS}-l${lib} " )
|
|
|
|
ENDIF()
|
2009-11-26 18:40:45 +01:00
|
|
|
ENDIF()
|
|
|
|
ENDFOREACH()
|
2009-12-07 15:07:26 +01:00
|
|
|
|
|
|
|
|
|
|
|
IF(LIBDL AND NOT LIBDL MATCHES "-l")
|
|
|
|
SET(LIBDL "-l${LIBDL}")
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
IF(LIBWRAP)
|
|
|
|
SET(WRAPLIBS "-lwrap")
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
SET(LIBS "${CLIENT_LIBS}")
|
|
|
|
|
2009-11-26 18:40:45 +01:00
|
|
|
IF(MSVC)
|
|
|
|
STRING(REPLACE "-l" "" CLIENT_LIBS "${CLIENT_LIBS}")
|
|
|
|
STRING(REPLACE "-l" "" LIBS "${LIBS}" )
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
SET(NON_THREADED_LIBS ${CLIENT_LIBS})
|
|
|
|
|
|
|
|
IF(WIN32)
|
|
|
|
# On Windows, some .sh and some .pl.in files are configured
|
|
|
|
# The resulting files will have .pl extension (those are perl scripts)
|
|
|
|
|
|
|
|
# Input files with pl.in extension
|
|
|
|
SET(PLIN_FILES mysql_config mysql_secure_installation)
|
|
|
|
# Input files with .sh extension
|
2009-12-07 15:07:26 +01:00
|
|
|
|
2009-11-26 18:40:45 +01:00
|
|
|
SET(SH_FILES mysql_convert_table_format mysqld_multi)
|
|
|
|
|
|
|
|
FOREACH(file ${PLIN_FILES})
|
2009-12-02 17:17:14 +01:00
|
|
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}.pl.in
|
2009-11-26 18:40:45 +01:00
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/${file}.pl ESCAPE_QUOTES @ONLY)
|
2009-12-02 17:17:14 +01:00
|
|
|
|
|
|
|
FILE(INSTALL DESTINATION
|
|
|
|
"${CMAKE_INSTALL_PREFIX}/scripts" TYPE FILE
|
|
|
|
PERMISSIONS OWNER_READ OWNER_WRITE
|
|
|
|
OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
|
|
|
|
WORLD_READ WORLD_EXECUTE FILES
|
|
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${file}.pl")
|
2009-11-26 18:40:45 +01:00
|
|
|
ENDFOREACH()
|
|
|
|
|
|
|
|
FOREACH(file ${SH_FILES})
|
2009-12-02 17:17:14 +01:00
|
|
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh
|
2009-11-26 18:40:45 +01:00
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/${file}.pl ESCAPE_QUOTES @ONLY)
|
2009-12-02 17:17:14 +01:00
|
|
|
FILE(INSTALL DESTINATION
|
|
|
|
"${CMAKE_INSTALL_PREFIX}/scripts" TYPE FILE
|
|
|
|
PERMISSIONS OWNER_READ OWNER_WRITE
|
|
|
|
OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
|
|
|
|
WORLD_READ WORLD_EXECUTE FILES
|
|
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${file}.pl")
|
2009-11-26 18:40:45 +01:00
|
|
|
ENDFOREACH()
|
|
|
|
ELSE()
|
|
|
|
# On Unix, most of the files end up in the bin directory
|
|
|
|
SET(BIN_SCRIPTS
|
|
|
|
msql2mysql
|
|
|
|
mysql_config
|
|
|
|
mysql_fix_extensions
|
|
|
|
mysql_setpermission
|
|
|
|
mysql_secure_installation
|
|
|
|
mysql_zap
|
|
|
|
mysqlaccess
|
|
|
|
mysqlbug
|
|
|
|
mysql_convert_table_format
|
|
|
|
mysql_find_rows
|
|
|
|
mysqlhotcopy
|
|
|
|
mysqldumpslow
|
|
|
|
mysqld_multi
|
|
|
|
mysqlaccess
|
|
|
|
mysqlaccess.conf
|
|
|
|
mysql_install_db
|
|
|
|
)
|
|
|
|
FOREACH(file ${BIN_SCRIPTS})
|
|
|
|
IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh)
|
|
|
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/${file} ESCAPE_QUOTES @ONLY)
|
|
|
|
ELSEIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file})
|
|
|
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/${file} COPYONLY)
|
|
|
|
ELSE()
|
|
|
|
MESSAGE(FATAL_ERROR "Can not find ${file}.sh or ${file} in "
|
|
|
|
"${CMAKE_CURRENT_SOURCE_DIR}" )
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
FILE(INSTALL DESTINATION
|
|
|
|
"${CMAKE_INSTALL_PREFIX}/bin" TYPE FILE PERMISSIONS OWNER_READ OWNER_WRITE
|
|
|
|
OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE FILES
|
|
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${file}")
|
|
|
|
ENDFOREACH()
|
|
|
|
|
|
|
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysqld_safe.sh
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/mysqld_safe @ONLY)
|
|
|
|
|
|
|
|
FILE(INSTALL DESTINATION
|
|
|
|
"${CMAKE_INSTALL_PREFIX}/bin" TYPE FILE
|
|
|
|
PERMISSIONS OWNER_READ OWNER_WRITE
|
|
|
|
OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
|
|
|
|
WORLD_READ WORLD_EXECUTE FILES
|
|
|
|
"${CMAKE_CURRENT_BINARY_DIR}/mysqld_safe"
|
|
|
|
)
|
|
|
|
|
|
|
|
# For some reason, mysqld_safe needs to be also in scripts directory
|
|
|
|
FILE(INSTALL DESTINATION
|
|
|
|
"${CMAKE_INSTALL_PREFIX}/scripts" TYPE FILE
|
|
|
|
PERMISSIONS OWNER_READ OWNER_WRITE
|
|
|
|
OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
|
|
|
|
WORLD_READ WORLD_EXECUTE FILES
|
|
|
|
"${CMAKE_CURRENT_BINARY_DIR}/mysql_install_db")
|
|
|
|
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
# Install libgcc as mylibgcc.a
|
|
|
|
IF(CMAKE_COMPILER_IS_GNUCXX)
|
|
|
|
EXECUTE_PROCESS (
|
|
|
|
COMMAND ${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1}
|
|
|
|
${CMAKE_CXX_FLAGS} --print-libgcc
|
|
|
|
OUTPUT_VARIABLE LIBGCC_LOCATION
|
|
|
|
RESULT_VARIABLE RESULT
|
|
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
|
|
ERROR_QUIET
|
|
|
|
)
|
|
|
|
IF(${RESULT} EQUAL 0 AND EXISTS ${LIBGCC_LOCATION})
|
|
|
|
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib"
|
|
|
|
TYPE FILE OPTIONAL FILES "${LIBGCC_LOCATION}")
|
|
|
|
ENDIF()
|
|
|
|
ENDIF()
|
|
|
|
|