mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
WL#5161 : Cross-platform build with CMake
This commit is contained in:
243
BUILD-CMAKE
Normal file
243
BUILD-CMAKE
Normal file
@ -0,0 +1,243 @@
|
|||||||
|
How to Build MySQL server with CMake
|
||||||
|
|
||||||
|
WHAT YOU NEED
|
||||||
|
---------------------------------------------------------------
|
||||||
|
CMake version 2.6 or later installed on your system.
|
||||||
|
|
||||||
|
HOW TO INSTALL:
|
||||||
|
|
||||||
|
Linux distributions:
|
||||||
|
shell> sudo apt-get install cmake
|
||||||
|
|
||||||
|
The above works on do Debian/Ubuntu based distributions.On others, command
|
||||||
|
line needs to be modified to e.g "yum install" on Fedora or "zypper install"
|
||||||
|
on OpenSUSE.
|
||||||
|
|
||||||
|
OpenSolaris:
|
||||||
|
shell> pfexec pkgadd install SUNWCMake
|
||||||
|
|
||||||
|
Windows and Mac OSX:
|
||||||
|
Download and install the latest distribution from
|
||||||
|
http://www.cmake.org/cmake/resources/software.html.On Windows, download
|
||||||
|
installer exe file and run it. On Mac, download the .dmg image and open it.
|
||||||
|
|
||||||
|
Other Unixes:
|
||||||
|
Precompiled packages for other Unix flavors (HPUX, AIX) are available from
|
||||||
|
http://www.cmake.org/cmake/resources/software.html
|
||||||
|
|
||||||
|
Alternatively, you can build from source, source package is also available on
|
||||||
|
CMake download page.
|
||||||
|
|
||||||
|
|
||||||
|
Compiler Tools
|
||||||
|
--------------
|
||||||
|
You will need a working compiler and make utility on your OS.
|
||||||
|
On Windows, install Visual Studio (Express editions will work too).
|
||||||
|
On Mac OSX, install Xcode tools.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
BUILD
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Ensure that compiler and cmake are in PATH.
|
||||||
|
The following description assumes that current working directory
|
||||||
|
is the source directory.
|
||||||
|
|
||||||
|
|
||||||
|
- Generic build on Unix, using "Unix Makefiles" generator
|
||||||
|
|
||||||
|
shell>cmake .
|
||||||
|
shell>make
|
||||||
|
|
||||||
|
Note: by default, cmake build is less verbose than automake build. Use
|
||||||
|
"make VERBOSE=1" if you want to see add command lines for each compiled source.
|
||||||
|
|
||||||
|
- Windows, using "Visual Studio 9 2008" generator
|
||||||
|
shell>cmake . -G "Visual Studio 9 2008"
|
||||||
|
shell>devenv MySQL.sln /build /relwithdebinfo
|
||||||
|
(alternatively, open MySQL.sln and build using the IDE)
|
||||||
|
|
||||||
|
- Windows, using "NMake Makefiles" generator
|
||||||
|
shell>cmake . -G "NMake Makefiles"
|
||||||
|
shell>nmake
|
||||||
|
|
||||||
|
- Mac OSX build with Xcode
|
||||||
|
shell>cmake . -G Xcode
|
||||||
|
shell>xcodebuild -configuration Relwithdebinfo
|
||||||
|
(alternatively, open MySQL.xcodeproj and build using the IDE)
|
||||||
|
|
||||||
|
Command line build with CMake 2.8
|
||||||
|
After creating project with cmake -G as above, issue
|
||||||
|
cmake . --build
|
||||||
|
this works with any CMake generator.
|
||||||
|
|
||||||
|
For Visual Studio and Xcode you might want to add an extra
|
||||||
|
configuration parameter, to avoid building all configurations.
|
||||||
|
|
||||||
|
cmake . --build --config Relwithdebinfo
|
||||||
|
|
||||||
|
|
||||||
|
Building "out-of-source"
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Building out-of-source provides additional benefits. For example it allows to
|
||||||
|
build both Release and Debug configurations using the single source tree.Or
|
||||||
|
build the same source with different version of the same compiler or with
|
||||||
|
different compilers. Also you will prevent polluting the source tree with the
|
||||||
|
objects and binaries produced during the make.
|
||||||
|
|
||||||
|
Here is an example on how to do it (generic Unix), assuming the source tree is
|
||||||
|
in directory named src and the current working directory is source root.
|
||||||
|
|
||||||
|
shell>mkdir ../build # build directory is called build
|
||||||
|
shell>cd ../build
|
||||||
|
shell>cmake ../src
|
||||||
|
|
||||||
|
Note: if a directory was used for in-source build, out-of-source will
|
||||||
|
not work. To reenable out-of-source build, remove <source-root>/CMakeCache.txt
|
||||||
|
file.
|
||||||
|
|
||||||
|
|
||||||
|
CONFIGURATION PARAMETERS
|
||||||
|
---------------------------------------------------------------
|
||||||
|
The procedure above will build with default configuration.
|
||||||
|
|
||||||
|
Let's you want to change the configuration parameters and have archive
|
||||||
|
storage engine compiled into the server instead of building it as pluggable
|
||||||
|
module.
|
||||||
|
|
||||||
|
1)You can provide parameters on the command line, like
|
||||||
|
|
||||||
|
shell> cmake . -DWITH_ARCHIVE_STORAGE_ENGINE=1
|
||||||
|
|
||||||
|
This can be done during the initial configuration or any time later.
|
||||||
|
|
||||||
|
Note, that parameters are "sticky", that is they are remebered in the CMake
|
||||||
|
cache (CMakeCache.txt file in the build directory)
|
||||||
|
|
||||||
|
2) Configuration using cmake-gui (Windows, OSX, or Linux with cmake-gui
|
||||||
|
installed)
|
||||||
|
|
||||||
|
From the build directory, issue
|
||||||
|
shell> cmake-gui .
|
||||||
|
|
||||||
|
- Check the WITH_INNOBASE_STORAGE_ENGINE checkbox
|
||||||
|
- Click on "Configure" button
|
||||||
|
- Click on "Generate" button
|
||||||
|
- Close cmake-gui
|
||||||
|
shell> make
|
||||||
|
|
||||||
|
3)Using ccmake (Unix)
|
||||||
|
ccmake is curses-based GUI application that provides the same functionality
|
||||||
|
as cmake-gui. It is less user-friendly compared to cmake-gui but works also
|
||||||
|
on exotic Unixes like HPUX, AIX or Solaris.
|
||||||
|
|
||||||
|
Besides storage engines, probably the most important parameter from a
|
||||||
|
developer's point of view is WITH_DEBUG (this allows to build server with
|
||||||
|
dbug tracing library and with debug compile flags).
|
||||||
|
|
||||||
|
After changing the configuration, recompile using
|
||||||
|
shell> make
|
||||||
|
|
||||||
|
|
||||||
|
Listing configuration parameters
|
||||||
|
---------------------------------------------------------------
|
||||||
|
shell> cmake -L
|
||||||
|
|
||||||
|
Gives a brief overview of important configuration parameters (dump to stdout)
|
||||||
|
|
||||||
|
shell> cmake -LH
|
||||||
|
|
||||||
|
Does the same but also provides a short help text for each parameter.
|
||||||
|
|
||||||
|
shell> cmake -LAH
|
||||||
|
|
||||||
|
Dumps all config parameters (including advanced) to the stdout.
|
||||||
|
|
||||||
|
PACKAGING
|
||||||
|
---------------------------------------------------------------
|
||||||
|
-- Binary distribution --
|
||||||
|
Packaging in form of tar.gz archives (or .zip on Windows) is also supported
|
||||||
|
To create a tar.gz package,
|
||||||
|
|
||||||
|
1)If you're using "generic" Unix build with makefiles
|
||||||
|
|
||||||
|
shell> make package
|
||||||
|
this will create a tar.gz file in the top level build directory.
|
||||||
|
|
||||||
|
2)On Windows, using "NMake Makefiles" generator
|
||||||
|
|
||||||
|
shell> nmake package
|
||||||
|
|
||||||
|
3)On Windows, using "Visual Studio" generator
|
||||||
|
|
||||||
|
shell> devenv mysql.sln /build relwithdebinfo /project package
|
||||||
|
|
||||||
|
Note On Windows, 7Zip or Winzip must be installed and 7z.exe rsp winzip.exe
|
||||||
|
need to be in the PATH.
|
||||||
|
|
||||||
|
|
||||||
|
Another way to build packages is calling cpack executable directly like
|
||||||
|
shell> cpack -G TGZ --config CPackConfig.cmake
|
||||||
|
(-G TGZ is for tar.gz generator, there is also -GZIP)
|
||||||
|
|
||||||
|
-- Source distribution --
|
||||||
|
"make dist" target is provided.
|
||||||
|
|
||||||
|
ADDITIONAL MAKE TARGETS: "make install" AND "make test"
|
||||||
|
----------------------------------------------------------------
|
||||||
|
install target also provided for Makefile based generators. Installation
|
||||||
|
directory can be controlled using configure-time parameter
|
||||||
|
CMAKE_INSTALL_PREFIX (default is /usr/local. It is also possible to install to
|
||||||
|
non-configured directory, using
|
||||||
|
|
||||||
|
shell> make install DESTDIR="/some/absolute/path"
|
||||||
|
|
||||||
|
"make test" runs unit tests (uses CTest for it)
|
||||||
|
"make test-force" runs mysql-test-run.pl tests with --test-force parameter
|
||||||
|
|
||||||
|
FOR PROGRAMMERS: WRITING PLATFORM CHECKS
|
||||||
|
--------------------------------------------------------------
|
||||||
|
If you modify MySQL source and want to add a new platform check,please read
|
||||||
|
http://www.vtk.org/Wiki/CMake_HowToDoPlatformChecks first. In MySQL, most of
|
||||||
|
the platform tests are implemented in config.cmake and the template header file
|
||||||
|
is config.h.cmake
|
||||||
|
|
||||||
|
Bigger chunks of functionality, for example non-trivial macros are implemented
|
||||||
|
in files <src-root>/cmake subdirectory.
|
||||||
|
|
||||||
|
For people with autotools background, it is important to remember CMake does
|
||||||
|
not provide autoheader functionality. That is, when you add a check
|
||||||
|
|
||||||
|
CHECK_FUNCTION_EXISTS(foo HAVE_FOO)
|
||||||
|
to config.cmake, then you will also need to add
|
||||||
|
#cmakedefine HAVE_FOO 1
|
||||||
|
to config.h.cmake
|
||||||
|
|
||||||
|
Troubleshooting platform checks
|
||||||
|
--------------------------------
|
||||||
|
If you suspect that a platform check returned wrong result, examine
|
||||||
|
<build-root>/CMakeFiles/CMakeError.log and
|
||||||
|
<build-root>/CMakeFiles/CMakeOutput.log
|
||||||
|
These files they contain compiler command line, and exact error messages.
|
||||||
|
|
||||||
|
Troubleshooting CMake code
|
||||||
|
----------------------------------
|
||||||
|
While there are advanced flags for cmake like -debug-trycompile and --trace,
|
||||||
|
a simple and efficient way to debug to add
|
||||||
|
MESSAGE("interesting variable=${some_invariable}")
|
||||||
|
to the interesting places in CMakeLists.txt
|
||||||
|
|
||||||
|
|
||||||
|
Tips:
|
||||||
|
- When using Makefile generator it is easy to examine which compiler flags are
|
||||||
|
used to build. For example, compiler flags for mysqld are in
|
||||||
|
<build-root>/sql/CMakeFiles/mysqld.dir/flags.make and the linker command line
|
||||||
|
is in <build-root>/sql/CMakeFiles/mysqld.dir/link.txt
|
||||||
|
|
||||||
|
- CMake caches results of platform checks in CMakeCache.txt. It is a nice
|
||||||
|
feature because tests do not rerun when reconfiguring (e.g when a new test was
|
||||||
|
added).The downside of caching is that when a platform test was wrong and was
|
||||||
|
later corrected, the cached result is still used. If you encounter this
|
||||||
|
situation, which should be a rare occation, you need either to remove the
|
||||||
|
offending entry from CMakeCache.txt (if test was for HAVE_FOO, remove lines
|
||||||
|
containing HAVE_FOO from CMakeCache.txt) or just remove the cache file.
|
@ -20,6 +20,7 @@
|
|||||||
EXTRA_DIST = FINISH.sh \
|
EXTRA_DIST = FINISH.sh \
|
||||||
SETUP.sh \
|
SETUP.sh \
|
||||||
autorun.sh \
|
autorun.sh \
|
||||||
|
choose_configure.sh \
|
||||||
build_mccge.sh \
|
build_mccge.sh \
|
||||||
check-cpu \
|
check-cpu \
|
||||||
cleanup \
|
cleanup \
|
||||||
|
@ -20,6 +20,7 @@ do
|
|||||||
done
|
done
|
||||||
IFS="$save_ifs"
|
IFS="$save_ifs"
|
||||||
|
|
||||||
|
rm -rf configure
|
||||||
aclocal || die "Can't execute aclocal"
|
aclocal || die "Can't execute aclocal"
|
||||||
autoheader || die "Can't execute autoheader"
|
autoheader || die "Can't execute autoheader"
|
||||||
# --force means overwrite ltmain.sh script if it already exists
|
# --force means overwrite ltmain.sh script if it already exists
|
||||||
@ -29,3 +30,9 @@ $LIBTOOLIZE --automake --force --copy || die "Can't execute libtoolize"
|
|||||||
# and --force to overwrite them if they already exist
|
# and --force to overwrite them if they already exist
|
||||||
automake --add-missing --force --copy || die "Can't execute automake"
|
automake --add-missing --force --copy || die "Can't execute automake"
|
||||||
autoconf || die "Can't execute autoconf"
|
autoconf || die "Can't execute autoconf"
|
||||||
|
# Do not use autotools generated configure directly. Instead, use a script
|
||||||
|
# that will either call CMake or original configure shell script at build
|
||||||
|
# time (CMake is preferred if installed).
|
||||||
|
mv configure configure.am
|
||||||
|
cp BUILD/choose_configure.sh configure
|
||||||
|
chmod a+x configure
|
||||||
|
14
BUILD/choose_configure.sh
Normal file
14
BUILD/choose_configure.sh
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Choose whether to use autoconf created configure
|
||||||
|
# of perl script that calls cmake.
|
||||||
|
|
||||||
|
# Ensure cmake and perl are there
|
||||||
|
cmake -P cmake/check_minimal_version.cmake >/dev/null 2>&1 || HAVE_CMAKE=no
|
||||||
|
perl --version >/dev/null 2>&1 || HAVE_CMAKE=no
|
||||||
|
if test "$HAVE_CMAKE" = "no"
|
||||||
|
then
|
||||||
|
sh ./configure.am $@
|
||||||
|
else
|
||||||
|
perl ./cmake/configure.pl $@
|
||||||
|
fi
|
||||||
|
|
459
CMakeLists.txt
459
CMakeLists.txt
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2006 MySQL AB
|
# Copyright (C) 2006-2008 MySQL AB, 2009 Sun Microsystems, Inc
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -13,308 +13,217 @@
|
|||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.6 FATAL_ERROR)
|
CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0 FATAL_ERROR)
|
||||||
IF(COMMAND cmake_policy)
|
|
||||||
cmake_policy(SET CMP0005 NEW)
|
|
||||||
ENDIF(COMMAND cmake_policy)
|
|
||||||
|
|
||||||
PROJECT(MySql)
|
# First, decide about build type (debug or release)
|
||||||
|
# If custom compiler flags are set or cmake is invoked with -DCMAKE_BUILD_TYPE,
|
||||||
|
# respect user wishes and do not (re)define CMAKE_BUILD_TYPE. If WITH_DEBUG{_FULL}
|
||||||
|
# is given, set CMAKE_BUILD_TYPE = Debug. Otherwise, use Relwithdebinfo.
|
||||||
|
|
||||||
# This reads user configuration, generated by configure.js.
|
|
||||||
INCLUDE(win/configure.data)
|
|
||||||
|
|
||||||
# Hardcode support for CSV storage engine
|
IF(CMAKE_BUILD_TYPE)
|
||||||
SET(WITH_CSV_STORAGE_ENGINE TRUE)
|
SET(HAVE_CMAKE_BUILD_TYPE TRUE)
|
||||||
|
ENDIF()
|
||||||
|
SET(CUSTOM_C_FLAGS $ENV{CFLAGS})
|
||||||
|
IF(NOT CUSTOM_C_FLAGS)
|
||||||
|
SET(CUSTOM_C_FLAGS ${CMAKE_C_FLAGS})
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/include/mysql_version.h.in
|
OPTION(WITH_DEBUG "Use dbug" OFF)
|
||||||
${CMAKE_SOURCE_DIR}/include/mysql_version.h @ONLY)
|
OPTION(WITH_DEBUG_FULL "Use dbug and safemalloc/safemutex. Slow" OFF)
|
||||||
|
|
||||||
# Set standard options
|
IF(NOT HAVE_CMAKE_BUILD_TYPE AND NOT CUSTOM_C_FLAGS)
|
||||||
ADD_DEFINITIONS(-DHAVE_YASSL)
|
IF(WITH_DEBUG)
|
||||||
ADD_DEFINITIONS(-DCMAKE_CONFIGD)
|
SET(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Debug build" FORCE)
|
||||||
ADD_DEFINITIONS(-DDEFAULT_MYSQL_HOME="c:/Program Files/MySQL/MySQL Server ${MYSQL_BASE_VERSION}/")
|
ELSE()
|
||||||
ADD_DEFINITIONS(-DDEFAULT_BASEDIR="c:/Program Files/MySQL/")
|
SET(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "RelWithDebInfo build" FORCE)
|
||||||
ADD_DEFINITIONS(-DMYSQL_DATADIR="c:/Program Files/MySQL/MySQL Server ${MYSQL_BASE_VERSION}/data")
|
ENDIF()
|
||||||
ADD_DEFINITIONS(-DDEFAULT_CHARSET_HOME="c:/Program Files/MySQL/MySQL Server ${MYSQL_BASE_VERSION}/")
|
ENDIF()
|
||||||
ADD_DEFINITIONS(-DPACKAGE=mysql)
|
IF(WITH_DEBUG_FULL)
|
||||||
ADD_DEFINITIONS(-DSHAREDIR="share")
|
SET(WITH_DEBUG ON CACHE BOOL "Use DBUG")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
# Set debug options
|
PROJECT(MySQL)
|
||||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DFORCE_INIT_OF_VARS")
|
|
||||||
|
|
||||||
# Do not use SAFEMALLOC for Windows builds, as Debug CRT has the same functionality
|
IF(CYGWIN)
|
||||||
# Neither SAFE_MUTEX works on Windows and it has been explicitely undefined in
|
SET(WIN32 0)
|
||||||
# my_pthread.h
|
ENDIF()
|
||||||
IF(NOT WIN32)
|
|
||||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
|
|
||||||
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
|
|
||||||
ENDIF(NOT WIN32)
|
|
||||||
|
|
||||||
SET(localstatedir "C:\\mysql\\data")
|
|
||||||
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/support-files/my-huge.cnf.sh
|
|
||||||
${CMAKE_SOURCE_DIR}/support-files/my-huge.ini @ONLY)
|
|
||||||
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/support-files/my-innodb-heavy-4G.cnf.sh
|
|
||||||
${CMAKE_SOURCE_DIR}/support-files/my-innodb-heavy-4G.ini @ONLY)
|
|
||||||
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/support-files/my-large.cnf.sh
|
|
||||||
${CMAKE_SOURCE_DIR}/support-files/my-large.ini @ONLY)
|
|
||||||
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/support-files/my-medium.cnf.sh
|
|
||||||
${CMAKE_SOURCE_DIR}/support-files/my-medium.ini @ONLY)
|
|
||||||
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/support-files/my-small.cnf.sh
|
|
||||||
${CMAKE_SOURCE_DIR}/support-files/my-small.ini @ONLY)
|
|
||||||
|
|
||||||
IF(CYBOZU)
|
|
||||||
ADD_DEFINITIONS(-DCYBOZU)
|
|
||||||
ENDIF(CYBOZU)
|
|
||||||
|
|
||||||
IF(EXTRA_DEBUG)
|
|
||||||
ADD_DEFINITIONS(-D EXTRA_DEBUG)
|
|
||||||
ENDIF(EXTRA_DEBUG)
|
|
||||||
|
|
||||||
IF(ENABLED_DEBUG_SYNC)
|
|
||||||
ADD_DEFINITIONS(-D ENABLED_DEBUG_SYNC)
|
|
||||||
ENDIF(ENABLED_DEBUG_SYNC)
|
|
||||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DENABLED_DEBUG_SYNC")
|
|
||||||
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DENABLED_DEBUG_SYNC")
|
|
||||||
|
|
||||||
# in some places we use DBUG_OFF
|
|
||||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DDBUG_OFF")
|
|
||||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DDBUG_OFF")
|
|
||||||
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DDBUG_OFF")
|
|
||||||
SET(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -DDBUG_OFF")
|
|
||||||
|
|
||||||
#TODO: update the code and remove the disabled warnings
|
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4800 /wd4805")
|
|
||||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4800 /wd4805")
|
|
||||||
|
|
||||||
# Disable warnings in Visual Studio 8 and above
|
|
||||||
IF(MSVC AND NOT CMAKE_GENERATOR MATCHES "Visual Studio 7")
|
|
||||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /wd4996")
|
|
||||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /wd4996")
|
|
||||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /wd4996")
|
|
||||||
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /wd4996")
|
|
||||||
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /wd4996")
|
|
||||||
SET(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} /wd4996")
|
|
||||||
ENDIF(MSVC AND NOT CMAKE_GENERATOR MATCHES "Visual Studio 7")
|
|
||||||
|
|
||||||
IF(CMAKE_GENERATOR MATCHES "Visual Studio 7")
|
|
||||||
# VS2003 has a bug that prevents linking mysqld with module definition file
|
|
||||||
# (/DEF option for linker). Linker would incorrectly complain about multiply
|
|
||||||
# defined symbols. Workaround is to disable dynamic plugins, so /DEF is not
|
|
||||||
# used.
|
|
||||||
MESSAGE("Warning: Building MySQL with Visual Studio 2003.NET is no more supported.")
|
|
||||||
MESSAGE("Please use a newer version of Visual Studio.")
|
|
||||||
SET(WITHOUT_DYNAMIC_PLUGINS TRUE)
|
|
||||||
ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 7")
|
|
||||||
|
|
||||||
# Settings for Visual Studio 7 and above.
|
|
||||||
IF(MSVC)
|
|
||||||
# replace /MDd with /MTd
|
|
||||||
STRING(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE})
|
|
||||||
STRING(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_RELWITHDEBINFO ${CMAKE_C_FLAGS_RELWITHDEBINFO})
|
|
||||||
STRING(REPLACE "/MDd" "/MTd" CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
|
|
||||||
STRING(REPLACE "/MDd" "/MTd" CMAKE_C_FLAGS_DEBUG_INIT ${CMAKE_C_FLAGS_DEBUG_INIT})
|
|
||||||
|
|
||||||
STRING(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE})
|
|
||||||
STRING(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELWITHDEBINFO ${CMAKE_CXX_FLAGS_RELWITHDEBINFO})
|
|
||||||
STRING(REPLACE "/MDd" "/MTd" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG})
|
|
||||||
STRING(REPLACE "/MDd" "/MTd" CMAKE_CXX_FLAGS_DEBUG_INIT ${CMAKE_CXX_FLAGS_DEBUG_INIT})
|
|
||||||
|
|
||||||
# generate map files, set stack size (see bug#20815)
|
|
||||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MAP /MAPINFO:EXPORTS")
|
|
||||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /STACK:1048576")
|
|
||||||
|
|
||||||
# remove support for Exception handling
|
|
||||||
STRING(REPLACE "/GX" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
|
|
||||||
STRING(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
|
|
||||||
STRING(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS_INIT ${CMAKE_CXX_FLAGS_INIT})
|
|
||||||
STRING(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS_DEBUG_INIT ${CMAKE_CXX_FLAGS_DEBUG_INIT})
|
|
||||||
|
|
||||||
# Mark 32 bit executables large address aware so they can
|
|
||||||
# use > 2GB address space
|
|
||||||
IF(CMAKE_SIZEOF_VOID_P MATCHES 4)
|
|
||||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LARGEADDRESSAWARE")
|
|
||||||
ENDIF(CMAKE_SIZEOF_VOID_P MATCHES 4)
|
|
||||||
|
|
||||||
# Disable automatic manifest generation.
|
|
||||||
STRING(REPLACE "/MANIFEST" "/MANIFEST:NO" CMAKE_EXE_LINKER_FLAGS
|
|
||||||
${CMAKE_EXE_LINKER_FLAGS})
|
|
||||||
# Explicitly disable it since it is the default for newer versions of VS
|
|
||||||
STRING(REGEX MATCH "MANIFEST:NO" tmp_manifest ${CMAKE_EXE_LINKER_FLAGS})
|
|
||||||
IF(NOT tmp_manifest)
|
|
||||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MANIFEST:NO")
|
|
||||||
ENDIF(NOT tmp_manifest)
|
|
||||||
ENDIF(MSVC)
|
|
||||||
|
|
||||||
IF(WIN32)
|
IF(WIN32)
|
||||||
ADD_DEFINITIONS("-D_WINDOWS -D__WIN__ -D_CRT_SECURE_NO_DEPRECATE")
|
SET(IF_WIN 0)
|
||||||
ADD_DEFINITIONS("-D_WIN32_WINNT=0x0501")
|
ELSE()
|
||||||
ENDIF(WIN32)
|
SET(IF_WIN 1)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
# default to x86 platform. We'll check for X64 in a bit
|
# Add macros
|
||||||
SET (PLATFORM X86)
|
INCLUDE(cmake/character_sets.cmake)
|
||||||
|
INCLUDE(cmake/zlib.cmake)
|
||||||
|
INCLUDE(cmake/ssl.cmake)
|
||||||
|
INCLUDE(cmake/readline.cmake)
|
||||||
|
INCLUDE(cmake/mysql_version.cmake)
|
||||||
|
INCLUDE(cmake/misc.cmake)
|
||||||
|
INCLUDE(cmake/dtrace.cmake)
|
||||||
|
INCLUDE(cmake/plugin.cmake)
|
||||||
|
INCLUDE(cmake/install_macros.cmake)
|
||||||
|
|
||||||
# This definition is necessary to work around a bug with Intellisense described
|
# Handle options
|
||||||
# here: http://tinyurl.com/2cb428. Syntax highlighting is important for proper
|
OPTION(ENABLED_PROFILING "Enable profiling" ON)
|
||||||
# debugger functionality.
|
OPTION(CYBOZU "" OFF)
|
||||||
IF(CMAKE_SIZEOF_VOID_P MATCHES 8)
|
OPTION(BACKUP_TEST "" OFF)
|
||||||
MESSAGE(STATUS "Detected 64-bit platform.")
|
OPTION(WITHOUT_SERVER OFF)
|
||||||
ADD_DEFINITIONS("-D_WIN64")
|
MARK_AS_ADVANCED(CYBOZU BACKUP_TEST WITHOUT_SERVER)
|
||||||
SET (PLATFORM X64)
|
|
||||||
ENDIF(CMAKE_SIZEOF_VOID_P MATCHES 8)
|
|
||||||
|
|
||||||
IF(EMBED_MANIFESTS)
|
|
||||||
# Search for the tools (mt, makecat, signtool) necessary for embedding
|
OPTION(ENABLE_DEBUG_SYNC "Enable debug sync (debug builds only)" ON)
|
||||||
# manifests and signing executables with the MySQL AB authenticode cert.
|
IF(ENABLE_DEBUG_SYNC)
|
||||||
#
|
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DENABLED_DEBUG_SYNC")
|
||||||
# CMake will first search it's defaults (CMAKE_FRAMEWORK_PATH,
|
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DENABLED_DEBUG_SYNC")
|
||||||
# CMAKE_APPBUNDLE_PATH, CMAKE_PROGRAM_PATH and the system PATH) followed
|
ENDIF()
|
||||||
# by the listed paths which are the current possible defaults and should be
|
|
||||||
# updated when necessary.
|
OPTION(WITH_ERROR_INJECT
|
||||||
#
|
"Enable error injection in MySQL Server (debug builds only)" OFF)
|
||||||
# The custom manifests are designed to be compatible with all mt versions.
|
IF(WITH_ERROR_INJECT)
|
||||||
# The MySQL AB Authenticode certificate is available only internally.
|
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DERROR_INJECT_SUPPORT")
|
||||||
# Others should store a single signing certificate in a local cryptographic
|
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DERROR_INJECT_SUPPORT")
|
||||||
# service provider and alter the signtool command as necessary.
|
ENDIF()
|
||||||
FIND_PROGRAM(HAVE_MANIFEST_TOOL NAMES mt
|
|
||||||
PATHS
|
|
||||||
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/VC/bin"
|
|
||||||
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/Common7/Tools/Bin"
|
|
||||||
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/SDK/v2.0/Bin")
|
|
||||||
FIND_PROGRAM(HAVE_CATALOG_TOOL NAMES makecat
|
|
||||||
PATHS
|
|
||||||
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/Common7/Tools/Bin")
|
|
||||||
FIND_PROGRAM(HAVE_SIGN_TOOL NAMES signtool
|
|
||||||
PATHS
|
|
||||||
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/Common7/Tools/Bin"
|
|
||||||
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/SDK/v2.0/Bin")
|
|
||||||
|
|
||||||
IF(HAVE_MANIFEST_TOOL)
|
|
||||||
MESSAGE(STATUS "Found Mainfest Tool.")
|
|
||||||
ELSE(HAVE_MANIFEST_TOOL)
|
|
||||||
MESSAGE(FATAL_ERROR "Manifest tool, mt.exe, can't be found.")
|
|
||||||
ENDIF(HAVE_MANIFEST_TOOL)
|
|
||||||
IF(HAVE_CATALOG_TOOL)
|
|
||||||
MESSAGE(STATUS "Found Catalog Tool.")
|
|
||||||
ELSE(HAVE_CATALOG_TOOL)
|
|
||||||
MESSAGE(FATAL_ERROR "Catalog tool, makecat.exe, can't be found.")
|
|
||||||
ENDIF(HAVE_CATALOG_TOOL)
|
|
||||||
IF(HAVE_SIGN_TOOL)
|
|
||||||
MESSAGE(STATUS "Found Sign Tool. Embedding custom manifests and signing executables.")
|
|
||||||
ELSE(HAVE_SIGN_TOOL)
|
|
||||||
MESSAGE(FATAL_ERROR "Sign tool, signtool.exe, can't be found.")
|
|
||||||
ENDIF(HAVE_SIGN_TOOL)
|
|
||||||
|
|
||||||
# Set the processor architecture.
|
|
||||||
IF(CMAKE_GENERATOR MATCHES "Visual Studio 8 2005 Win64")
|
|
||||||
SET(PROCESSOR_ARCH "amd64")
|
|
||||||
ELSE(CMAKE_GENERATOR MATCHES "Visual Studio 8 2005 Win64")
|
|
||||||
SET(PROCESSOR_ARCH "X86")
|
|
||||||
ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 8 2005 Win64")
|
|
||||||
ENDIF(EMBED_MANIFESTS)
|
|
||||||
|
|
||||||
# Figure out what engines to build and how (statically or dynamically),
|
OPTION(ENABLE_LOCAL_INFILE
|
||||||
# add preprocessor defines for storage engines.
|
"If we should should enable LOAD DATA LOCAL by default" ${IF_WIN})
|
||||||
IF(WITHOUT_DYNAMIC_PLUGINS)
|
MARK_AS_ADVANCED(ENABLE_LOCAL_INFILE)
|
||||||
MESSAGE("Dynamic plugins are disabled.")
|
|
||||||
ENDIF(WITHOUT_DYNAMIC_PLUGINS)
|
|
||||||
|
|
||||||
FILE(GLOB STORAGE_SUBDIRS storage/*)
|
# Set DBUG_OFF for non-debug project types.
|
||||||
FOREACH(SUBDIR ${STORAGE_SUBDIRS})
|
FOREACH(BUILD_TYPE RELEASE RELWITHDEBINFO MINSIZEREL)
|
||||||
FILE(RELATIVE_PATH DIRNAME ${PROJECT_SOURCE_DIR}/storage ${SUBDIR})
|
FOREACH(LANG C CXX)
|
||||||
IF (EXISTS ${SUBDIR}/CMakeLists.txt)
|
SET(CMAKE_${LANG}_FLAGS_${BUILD_TYPE}
|
||||||
# Check MYSQL_STORAGE_ENGINE macro is present
|
"${CMAKE_${LANG}_FLAGS_${BUILD_TYPE}} -DDBUG_OFF")
|
||||||
FILE(STRINGS ${SUBDIR}/CMakeLists.txt HAVE_STORAGE_ENGINE REGEX MYSQL_STORAGE_ENGINE)
|
ENDFOREACH()
|
||||||
IF(HAVE_STORAGE_ENGINE)
|
ENDFOREACH()
|
||||||
# Extract name of engine from HAVE_STORAGE_ENGINE
|
|
||||||
STRING(REGEX REPLACE ".*MYSQL_STORAGE_ENGINE\\((.*\)\\).*"
|
|
||||||
"\\1" ENGINE_NAME ${HAVE_STORAGE_ENGINE})
|
|
||||||
STRING(TOUPPER ${ENGINE_NAME} ENGINE)
|
|
||||||
STRING(TOLOWER ${ENGINE_NAME} ENGINE_LOWER)
|
|
||||||
|
|
||||||
SET(ENGINE_BUILD_TYPE "DYNAMIC")
|
|
||||||
# Read plug.in to find out if a plugin is mandatory and whether it supports
|
|
||||||
# build as shared library (dynamic).
|
|
||||||
IF(EXISTS ${SUBDIR}/plug.in)
|
|
||||||
FILE(READ ${SUBDIR}/plug.in PLUGIN_FILE_CONTENT)
|
|
||||||
STRING (REGEX MATCH "MYSQL_PLUGIN_DYNAMIC" MYSQL_PLUGIN_DYNAMIC ${PLUGIN_FILE_CONTENT})
|
|
||||||
STRING (REGEX MATCH "MYSQL_PLUGIN_MANDATORY" MYSQL_PLUGIN_MANDATORY ${PLUGIN_FILE_CONTENT})
|
|
||||||
STRING (REGEX MATCH "MYSQL_PLUGIN_STATIC" MYSQL_PLUGIN_STATIC ${PLUGIN_FILE_CONTENT})
|
|
||||||
|
|
||||||
IF(MYSQL_PLUGIN_MANDATORY)
|
IF(NOT CMAKE_BUILD_TYPE
|
||||||
SET(WITH_${ENGINE}_STORAGE_ENGINE TRUE)
|
AND NOT CMAKE_GENERATOR MATCHES "Visual Studio"
|
||||||
ENDIF(MYSQL_PLUGIN_MANDATORY)
|
AND NOT CMAKE_GENERATOR MATCHES "Xcode")
|
||||||
|
# This is the case of no CMAKE_BUILD_TYPE choosen, typical for VS and Xcode
|
||||||
|
# or if custom C flags are set. In VS and Xcode for non-Debug configurations
|
||||||
|
# DBUG_OFF is already correctly set. Use DBUG_OFF for Makefile based projects
|
||||||
|
# without build type too, unless user specifically requests DBUG.
|
||||||
|
IF(NOT CMAKE_C_FLAGS MATCHES "-DDBUG_ON")
|
||||||
|
ADD_DEFINITIONS(-DDBUG_OFF)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
IF (WITH_${ENGINE}_STORAGE_ENGINE AND MYSQL_PLUGIN_STATIC)
|
# Add safemalloc and safemutex for debug condifurations, except on Windows
|
||||||
SET(ENGINE_BUILD_TYPE "STATIC")
|
# (C runtime library provides safemalloc functionality and safemutex has never
|
||||||
ELSEIF(NOT WITHOUT_${ENGINE}_STORAGE_ENGINE AND MYSQL_PLUGIN_DYNAMIC AND NOT WITHOUT_DYNAMIC_PLUGINS)
|
# worked there)
|
||||||
SET(ENGINE_BUILD_TYPE "DYNAMIC")
|
IF(WITH_DEBUG OR WITH_DEBUG_FULL AND NOT WIN32)
|
||||||
ELSE(WITH_${ENGINE}_STORAGE_ENGINE AND MYSQL_PLUGIN_STATIC)
|
FOREACH(LANG C CXX)
|
||||||
SET(ENGINE_BUILD_TYPE "NONE")
|
IF(WITH_DEBUG_FULL)
|
||||||
ENDIF(WITH_${ENGINE}_STORAGE_ENGINE AND MYSQL_PLUGIN_STATIC)
|
SET(CMAKE_${LANG}_FLAGS_DEBUG "-DSAFEMALLOC -DSAFE_MUTEX")
|
||||||
IF (ENGINE_BUILD_TYPE STREQUAL "STATIC")
|
ELSE()
|
||||||
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_${ENGINE_LOWER}_plugin")
|
SET(CMAKE_${LANG}_FLAGS_DEBUG "-DSAFE_MUTEX")
|
||||||
SET (MYSQLD_STATIC_ENGINE_LIBS ${MYSQLD_STATIC_ENGINE_LIBS} ${ENGINE_LOWER})
|
ENDIF()
|
||||||
SET (STORAGE_ENGINE_DEFS "${STORAGE_ENGINE_DEFS} -DWITH_${ENGINE}_STORAGE_ENGINE")
|
ENDFOREACH()
|
||||||
SET (WITH_${ENGINE}_STORAGE_ENGINE TRUE)
|
ENDIF()
|
||||||
SET (${ENGINE}_DIR ${DIRNAME})
|
|
||||||
ENDIF (ENGINE_BUILD_TYPE STREQUAL "STATIC")
|
|
||||||
ENDIF(EXISTS ${SUBDIR}/plug.in)
|
|
||||||
|
|
||||||
IF(NOT ENGINE_BUILD_TYPE STREQUAL "NONE")
|
|
||||||
LIST(APPEND ${ENGINE_BUILD_TYPE}_ENGINE_DIRECTORIES ${SUBDIR})
|
|
||||||
ENDIF(NOT ENGINE_BUILD_TYPE STREQUAL "NONE")
|
|
||||||
|
|
||||||
ENDIF(HAVE_STORAGE_ENGINE)
|
|
||||||
ENDIF(EXISTS ${SUBDIR}/CMakeLists.txt)
|
|
||||||
ENDFOREACH(SUBDIR ${STORAGE_SUBDIRS})
|
|
||||||
|
|
||||||
# Special handling for partition(not really pluggable)
|
|
||||||
IF(NOT WITHOUT_PARTITION_STORAGE_ENGINE)
|
|
||||||
SET (STORAGE_ENGINE_DEFS "${STORAGE_ENGINE_DEFS} -DWITH_PARTITION_STORAGE_ENGINE")
|
|
||||||
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_partition_plugin")
|
|
||||||
ENDIF(NOT WITHOUT_PARTITION_STORAGE_ENGINE)
|
|
||||||
|
|
||||||
ADD_DEFINITIONS(${STORAGE_ENGINE_DEFS})
|
|
||||||
|
|
||||||
# Now write out our mysql_plugin_defs struct
|
# Set commonly used variables
|
||||||
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc.in
|
IF(WIN32)
|
||||||
${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc @ONLY)
|
SET(DEFAULT_MYSQL_HOME "C:/Program Files/MySQL/MySQL Server ${MYSQL_BASE_VERSION}/" )
|
||||||
|
SET(SHAREDIR share)
|
||||||
|
ELSE()
|
||||||
|
SET(DEFAULT_MYSQL_HOME ${CMAKE_INSTALL_PREFIX}/mysql/)
|
||||||
|
SET(SHAREDIR ${DEFAULT_MYSQL_HOME}share)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
# Add subdirectories for storage engines
|
SET(DEFAULT_BASEDIR "${DEFAULT_MYSQL_HOME}")
|
||||||
SET (ENGINE_BUILD_TYPE "STATIC")
|
SET(MYSQL_DATADIR "${DEFAULT_MYSQL_HOME}data")
|
||||||
FOREACH(DIR ${STATIC_ENGINE_DIRECTORIES})
|
SET(DEFAULT_CHARSET_HOME "${DEFAULT_MYSQL_HOME}")
|
||||||
ADD_SUBDIRECTORY(${DIR})
|
|
||||||
ENDFOREACH(DIR ${STATIC_ENGINE_DIRECTORIES})
|
|
||||||
|
|
||||||
SET (ENGINE_BUILD_TYPE "DYNAMIC")
|
|
||||||
FOREACH(DIR ${DYNAMIC_ENGINE_DIRECTORIES})
|
|
||||||
ADD_SUBDIRECTORY(${DIR})
|
|
||||||
ENDFOREACH(DIR ${DYNAMIC_ENGINE_DIRECTORIES})
|
|
||||||
|
|
||||||
# Add subdirectories for semisync plugin
|
# Optionally read user configuration, generated by configure.js.
|
||||||
IF(NOT WITHOUT_DYNAMIC_PLUGINS)
|
# This is left for backward compatibility reasons only.
|
||||||
ADD_SUBDIRECTORY(plugin/semisync)
|
IF(WIN32)
|
||||||
ENDIF(NOT WITHOUT_DYNAMIC_PLUGINS)
|
INCLUDE(win/configure.data OPTIONAL)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
# FIXME "debug" only needed if build type is "Debug", but
|
# Run platform tests
|
||||||
# CMAKE_BUILD_TYPE is not set during configure time.
|
INCLUDE(configure.cmake)
|
||||||
ADD_SUBDIRECTORY(vio)
|
|
||||||
|
# Common defines and includes
|
||||||
|
ADD_DEFINITIONS(-DHAVE_CONFIG_H)
|
||||||
|
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/include)
|
||||||
|
|
||||||
|
# Add bundled or system zlib.
|
||||||
|
MYSQL_CHECK_ZLIB_WITH_COMPRESS()
|
||||||
|
# Optionally add bundled yassl/taocrypt or system openssl.
|
||||||
|
MYSQL_CHECK_SSL()
|
||||||
|
# Add readline or libedit.
|
||||||
|
MYSQL_CHECK_READLINE()
|
||||||
|
|
||||||
|
IF(NOT WITHOUT_SERVER)
|
||||||
|
# Add storage engines and plugins.
|
||||||
|
CONFIGURE_PLUGINS()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
ADD_SUBDIRECTORY(include)
|
||||||
ADD_SUBDIRECTORY(dbug)
|
ADD_SUBDIRECTORY(dbug)
|
||||||
ADD_SUBDIRECTORY(strings)
|
ADD_SUBDIRECTORY(strings)
|
||||||
|
ADD_SUBDIRECTORY(vio)
|
||||||
ADD_SUBDIRECTORY(regex)
|
ADD_SUBDIRECTORY(regex)
|
||||||
ADD_SUBDIRECTORY(mysys)
|
ADD_SUBDIRECTORY(mysys)
|
||||||
ADD_SUBDIRECTORY(scripts)
|
|
||||||
ADD_SUBDIRECTORY(zlib)
|
|
||||||
ADD_SUBDIRECTORY(extra/yassl)
|
|
||||||
ADD_SUBDIRECTORY(extra/yassl/taocrypt)
|
|
||||||
ADD_SUBDIRECTORY(extra)
|
|
||||||
ADD_SUBDIRECTORY(client)
|
|
||||||
ADD_SUBDIRECTORY(sql)
|
|
||||||
ADD_SUBDIRECTORY(libmysql)
|
ADD_SUBDIRECTORY(libmysql)
|
||||||
ADD_SUBDIRECTORY(libservices)
|
|
||||||
ADD_SUBDIRECTORY(tests)
|
OPTION (WITH_UNIT_TESTS "Compile MySQL with unit tests" ON)
|
||||||
IF(WITH_EMBEDDED_SERVER)
|
IF(WITH_UNIT_TESTS)
|
||||||
ADD_SUBDIRECTORY(libmysqld)
|
ENABLE_TESTING()
|
||||||
ADD_SUBDIRECTORY(libmysqld/examples)
|
ENDIF()
|
||||||
ENDIF(WITH_EMBEDDED_SERVER)
|
IF(WITH_UNIT_TESTS)
|
||||||
ADD_SUBDIRECTORY(mysql-test/lib/My/SafeProcess)
|
ADD_SUBDIRECTORY(unittest/mytap)
|
||||||
|
ADD_SUBDIRECTORY(unittest/mysys)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(NOT WITHOUT_SERVER)
|
||||||
|
ADD_SUBDIRECTORY(tests)
|
||||||
|
ADD_SUBDIRECTORY(extra)
|
||||||
|
ADD_SUBDIRECTORY(client)
|
||||||
|
ADD_SUBDIRECTORY(sql)
|
||||||
|
ADD_SUBDIRECTORY(sql/share)
|
||||||
|
ADD_SUBDIRECTORY(libservices)
|
||||||
|
OPTION (WITH_EMBEDDED_SERVER "Compile MySQL with embedded server" OFF)
|
||||||
|
IF(WITH_EMBEDDED_SERVER)
|
||||||
|
ADD_SUBDIRECTORY(libmysqld)
|
||||||
|
ADD_SUBDIRECTORY(libmysqld/examples)
|
||||||
|
ENDIF(WITH_EMBEDDED_SERVER)
|
||||||
|
|
||||||
|
ADD_SUBDIRECTORY(mysql-test)
|
||||||
|
ADD_SUBDIRECTORY(mysql-test/lib/My/SafeProcess)
|
||||||
|
ADD_SUBDIRECTORY(support-files)
|
||||||
|
ADD_SUBDIRECTORY(scripts)
|
||||||
|
ADD_SUBDIRECTORY(sql-bench)
|
||||||
|
IF(UNIX)
|
||||||
|
ADD_SUBDIRECTORY(man)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
INCLUDE(cmake/abi_check.cmake)
|
||||||
|
|
||||||
|
CONFIGURE_FILE(config.h.cmake ${CMAKE_BINARY_DIR}/include/my_config.h)
|
||||||
|
CONFIGURE_FILE(config.h.cmake ${CMAKE_BINARY_DIR}/include/config.h)
|
||||||
|
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/include/mysql_version.h.in
|
||||||
|
${CMAKE_BINARY_DIR}/include/mysql_version.h )
|
||||||
|
|
||||||
|
|
||||||
|
# Packaging
|
||||||
|
IF(WIN32)
|
||||||
|
SET(CPACK_GENERATOR "ZIP")
|
||||||
|
ELSE()
|
||||||
|
SET(CPACK_GENERATOR "TGZ")
|
||||||
|
ENDIF()
|
||||||
|
INCLUDE(CPack)
|
||||||
|
INSTALL(FILES COPYING EXCEPTIONS-CLIENT README DESTINATION .)
|
||||||
|
IF(UNIX)
|
||||||
|
INSTALL(FILES Docs/INSTALL-BINARY DESTINATION .)
|
||||||
|
ENDIF()
|
||||||
|
@ -19,7 +19,8 @@ AUTOMAKE_OPTIONS = foreign
|
|||||||
|
|
||||||
# These are built from source in the Docs directory
|
# These are built from source in the Docs directory
|
||||||
EXTRA_DIST = INSTALL-SOURCE INSTALL-WIN-SOURCE \
|
EXTRA_DIST = INSTALL-SOURCE INSTALL-WIN-SOURCE \
|
||||||
README COPYING EXCEPTIONS-CLIENT CMakeLists.txt
|
README COPYING EXCEPTIONS-CLIENT \
|
||||||
|
CMakeLists.txt configure.cmake config.h.cmake BUILD-CMAKE
|
||||||
|
|
||||||
SUBDIRS = . include @docs_dirs@ @zlib_dir@ \
|
SUBDIRS = . include @docs_dirs@ @zlib_dir@ \
|
||||||
@readline_topdir@ sql-common scripts \
|
@readline_topdir@ sql-common scripts \
|
||||||
@ -28,8 +29,8 @@ SUBDIRS = . include @docs_dirs@ @zlib_dir@ \
|
|||||||
@sql_server@ @man_dirs@ tests \
|
@sql_server@ @man_dirs@ tests \
|
||||||
netware @libmysqld_dirs@ \
|
netware @libmysqld_dirs@ \
|
||||||
mysql-test support-files sql-bench \
|
mysql-test support-files sql-bench \
|
||||||
win
|
win \
|
||||||
|
cmake
|
||||||
DIST_SUBDIRS = . include Docs zlib \
|
DIST_SUBDIRS = . include Docs zlib \
|
||||||
cmd-line-utils sql-common scripts \
|
cmd-line-utils sql-common scripts \
|
||||||
pstack libservices \
|
pstack libservices \
|
||||||
@ -38,6 +39,7 @@ DIST_SUBDIRS = . include Docs zlib \
|
|||||||
netware libmysqld \
|
netware libmysqld \
|
||||||
mysql-test support-files sql-bench \
|
mysql-test support-files sql-bench \
|
||||||
win \
|
win \
|
||||||
|
cmake \
|
||||||
BUILD
|
BUILD
|
||||||
DISTCLEANFILES = ac_available_languages_fragment
|
DISTCLEANFILES = ac_available_languages_fragment
|
||||||
|
|
||||||
@ -58,6 +60,7 @@ dist-hook:
|
|||||||
--datadir=$(distdir)/win/data \
|
--datadir=$(distdir)/win/data \
|
||||||
--srcdir=$(top_srcdir)
|
--srcdir=$(top_srcdir)
|
||||||
storage/myisam/myisamchk --silent --fast $(distdir)/win/data/mysql/*.MYI
|
storage/myisam/myisamchk --silent --fast $(distdir)/win/data/mysql/*.MYI
|
||||||
|
test ! -f configure.am || $(INSTALL_DATA) configure.am $(distdir)
|
||||||
|
|
||||||
all-local: @ABI_CHECK@
|
all-local: @ABI_CHECK@
|
||||||
|
|
||||||
|
@ -12,46 +12,49 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
INCLUDE("${PROJECT_SOURCE_DIR}/win/mysql_manifest.cmake")
|
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
|
INCLUDE_DIRECTORIES(
|
||||||
${CMAKE_SOURCE_DIR}/zlib
|
${CMAKE_SOURCE_DIR}/include
|
||||||
${CMAKE_SOURCE_DIR}/extra/yassl/include
|
${ZLIB_INCLUDE_DIR}
|
||||||
${CMAKE_SOURCE_DIR}/libmysql
|
${SSL_INCLUDE_DIRS}
|
||||||
${CMAKE_SOURCE_DIR}/regex
|
${CMAKE_SOURCE_DIR}/libmysql
|
||||||
${CMAKE_SOURCE_DIR}/sql
|
${CMAKE_SOURCE_DIR}/regex
|
||||||
${CMAKE_SOURCE_DIR}/strings)
|
${CMAKE_SOURCE_DIR}/sql
|
||||||
|
${CMAKE_SOURCE_DIR}/strings
|
||||||
|
${READLINE_INCLUDE_DIR}
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
ADD_EXECUTABLE(mysql completion_hash.cc mysql.cc readline.cc sql_string.cc ../mysys/my_conio.c)
|
ADD_DEFINITIONS(${READLINE_DEFINES})
|
||||||
|
ADD_DEFINITIONS(${SSL_DEFINES})
|
||||||
|
ADD_EXECUTABLE(mysql completion_hash.cc mysql.cc readline.cc sql_string.cc)
|
||||||
TARGET_LINK_LIBRARIES(mysql mysqlclient)
|
TARGET_LINK_LIBRARIES(mysql mysqlclient)
|
||||||
|
IF(UNIX)
|
||||||
|
TARGET_LINK_LIBRARIES(mysql ${READLINE_LIBRARY})
|
||||||
|
ENDIF(UNIX)
|
||||||
|
|
||||||
ADD_EXECUTABLE(mysqltest mysqltest.cc)
|
ADD_EXECUTABLE(mysqltest mysqltest.cc)
|
||||||
SET_SOURCE_FILES_PROPERTIES(mysqltest.cc PROPERTIES COMPILE_FLAGS "-DTHREADS")
|
SET_SOURCE_FILES_PROPERTIES(mysqltest.cc PROPERTIES COMPILE_FLAGS "-DTHREADS")
|
||||||
TARGET_LINK_LIBRARIES(mysqltest mysqlclient mysys regex dbug)
|
TARGET_LINK_LIBRARIES(mysqltest mysqlclient regex)
|
||||||
|
|
||||||
|
|
||||||
ADD_EXECUTABLE(mysqlcheck mysqlcheck.c)
|
ADD_EXECUTABLE(mysqlcheck mysqlcheck.c)
|
||||||
TARGET_LINK_LIBRARIES(mysqlcheck mysqlclient)
|
TARGET_LINK_LIBRARIES(mysqlcheck mysqlclient)
|
||||||
|
|
||||||
ADD_EXECUTABLE(mysqldump mysqldump.c ../sql-common/my_user.c ../mysys/mf_getdate.c)
|
ADD_EXECUTABLE(mysqldump mysqldump.c ../sql-common/my_user.c)
|
||||||
TARGET_LINK_LIBRARIES(mysqldump mysqlclient)
|
TARGET_LINK_LIBRARIES(mysqldump mysqlclient)
|
||||||
|
|
||||||
ADD_EXECUTABLE(mysqlimport mysqlimport.c)
|
ADD_EXECUTABLE(mysqlimport mysqlimport.c)
|
||||||
TARGET_LINK_LIBRARIES(mysqlimport mysqlclient)
|
TARGET_LINK_LIBRARIES(mysqlimport mysqlclient)
|
||||||
|
|
||||||
ADD_EXECUTABLE(mysql_upgrade mysql_upgrade.c ../mysys/my_getpagesize.c)
|
ADD_EXECUTABLE(mysql_upgrade mysql_upgrade.c)
|
||||||
TARGET_LINK_LIBRARIES(mysql_upgrade mysqlclient)
|
TARGET_LINK_LIBRARIES(mysql_upgrade mysqlclient)
|
||||||
ADD_DEPENDENCIES(mysql_upgrade GenFixPrivs)
|
ADD_DEPENDENCIES(mysql_upgrade GenFixPrivs)
|
||||||
|
|
||||||
ADD_EXECUTABLE(mysqlshow mysqlshow.c)
|
ADD_EXECUTABLE(mysqlshow mysqlshow.c)
|
||||||
TARGET_LINK_LIBRARIES(mysqlshow mysqlclient)
|
TARGET_LINK_LIBRARIES(mysqlshow mysqlclient)
|
||||||
|
|
||||||
ADD_EXECUTABLE(mysqlbinlog mysqlbinlog.cc
|
ADD_EXECUTABLE(mysqlbinlog mysqlbinlog.cc)
|
||||||
../mysys/mf_tempdir.c
|
|
||||||
../mysys/my_new.cc
|
|
||||||
../mysys/my_bit.c
|
|
||||||
../mysys/my_bitmap.c
|
|
||||||
../mysys/my_vle.c
|
|
||||||
../mysys/base64.c)
|
|
||||||
TARGET_LINK_LIBRARIES(mysqlbinlog mysqlclient)
|
TARGET_LINK_LIBRARIES(mysqlbinlog mysqlclient)
|
||||||
|
|
||||||
ADD_EXECUTABLE(mysqladmin mysqladmin.cc)
|
ADD_EXECUTABLE(mysqladmin mysqladmin.cc)
|
||||||
@ -59,20 +62,25 @@ TARGET_LINK_LIBRARIES(mysqladmin mysqlclient)
|
|||||||
|
|
||||||
ADD_EXECUTABLE(mysqlslap mysqlslap.c)
|
ADD_EXECUTABLE(mysqlslap mysqlslap.c)
|
||||||
SET_SOURCE_FILES_PROPERTIES(mysqlslap.c PROPERTIES COMPILE_FLAGS "-DTHREADS")
|
SET_SOURCE_FILES_PROPERTIES(mysqlslap.c PROPERTIES COMPILE_FLAGS "-DTHREADS")
|
||||||
TARGET_LINK_LIBRARIES(mysqlslap mysqlclient mysys zlib dbug)
|
TARGET_LINK_LIBRARIES(mysqlslap mysqlclient)
|
||||||
|
|
||||||
ADD_EXECUTABLE(echo echo.c)
|
ADD_EXECUTABLE(echo echo.c)
|
||||||
|
|
||||||
IF(EMBED_MANIFESTS)
|
SET_TARGET_PROPERTIES (mysqlcheck mysqldump mysqlimport mysql_upgrade mysqlshow mysqlslap
|
||||||
MYSQL_EMBED_MANIFEST("mysql" "asInvoker")
|
PROPERTIES HAS_CXX TRUE)
|
||||||
MYSQL_EMBED_MANIFEST("mysqltest" "asInvoker")
|
|
||||||
MYSQL_EMBED_MANIFEST("mysqlcheck" "asInvoker")
|
SET(INSTALL_EXES
|
||||||
MYSQL_EMBED_MANIFEST("mysqldump" "asInvoker")
|
mysqlcheck
|
||||||
MYSQL_EMBED_MANIFEST("mysqlimport" "asInvoker")
|
mysqldump
|
||||||
MYSQL_EMBED_MANIFEST("mysql_upgrade" "asInvoker")
|
mysqlimport
|
||||||
MYSQL_EMBED_MANIFEST("mysqlshow" "asInvoker")
|
mysql_upgrade
|
||||||
MYSQL_EMBED_MANIFEST("mysqlbinlog" "asInvoker")
|
mysqlshow
|
||||||
MYSQL_EMBED_MANIFEST("mysqladmin" "asInvoker")
|
mysqlslap
|
||||||
MYSQL_EMBED_MANIFEST("echo" "asInvoker")
|
mysql
|
||||||
ENDIF(EMBED_MANIFESTS)
|
mysqladmin
|
||||||
|
mysqlbinlog
|
||||||
|
mysqltest)
|
||||||
|
|
||||||
|
INSTALL(TARGETS ${INSTALL_EXES} DESTINATION bin)
|
||||||
|
INSTALL_DEBUG_SYMBOLS("${INSTALL_EXES}")
|
||||||
|
|
||||||
|
21
cmake/Makefile.am
Normal file
21
cmake/Makefile.am
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
EXTRA_DIST = \
|
||||||
|
cat.cmake \
|
||||||
|
check_minimal_version.cmake \
|
||||||
|
create_initial_db.cmake.in \
|
||||||
|
make_dist.cmake.in \
|
||||||
|
dtrace.cmake \
|
||||||
|
abi_check.cmake \
|
||||||
|
bison.cmake \
|
||||||
|
configure.pl \
|
||||||
|
character_sets.cmake \
|
||||||
|
misc.cmake \
|
||||||
|
readline.cmake \
|
||||||
|
mysql_version.cmake \
|
||||||
|
install_macros.cmake \
|
||||||
|
ssl.cmake \
|
||||||
|
plugin.cmake \
|
||||||
|
zlib.cmake \
|
||||||
|
stack_direction.c \
|
||||||
|
do_abi_check.cmake \
|
||||||
|
merge_archives_unix.cmake.in \
|
||||||
|
dtrace_prelink.cmake
|
60
cmake/abi_check.cmake
Normal file
60
cmake/abi_check.cmake
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
#
|
||||||
|
# Headers which need to be checked for abi/api compatibility.
|
||||||
|
# API_PREPROCESSOR_HEADER will be used until mysql_priv.h stablizes
|
||||||
|
# after which TEST_PREPROCESSOR_HEADER will be used.
|
||||||
|
#
|
||||||
|
# We use gcc specific preprocessing command and sed/diff, so it will
|
||||||
|
# only be run on Unix and only if gcc is used.
|
||||||
|
IF(CMAKE_COMPILER_IS_GNUCC AND UNIX)
|
||||||
|
IF(CMAKE_C_COMPILER MATCHES "ccache$")
|
||||||
|
SET(COMPILER ${CMAKE_C_COMPILER_ARG1})
|
||||||
|
STRING(REGEX REPLACE "^ " "" COMPILER ${COMPILER})
|
||||||
|
ELSE()
|
||||||
|
SET(COMPILER ${CMAKE_C_COMPILER})
|
||||||
|
ENDIF()
|
||||||
|
SET(API_PREPROCESSOR_HEADER
|
||||||
|
${CMAKE_SOURCE_DIR}/include/mysql/plugin.h
|
||||||
|
${CMAKE_SOURCE_DIR}/include/mysql.h)
|
||||||
|
|
||||||
|
SET(TEST_PREPROCESSOR_HEADER
|
||||||
|
${CMAKE_SOURCE_DIR}/include/mysql/plugin.h
|
||||||
|
${CMAKE_SOURCE_DIR}/sql/mysql_priv.h
|
||||||
|
${CMAKE_SOURCE_DIR}/include/mysql.h)
|
||||||
|
|
||||||
|
|
||||||
|
ADD_CUSTOM_TARGET(abi_check ALL
|
||||||
|
COMMAND ${CMAKE_COMMAND}
|
||||||
|
-DCOMPILER=${COMPILER}
|
||||||
|
-DSOURCE_DIR=${CMAKE_SOURCE_DIR}
|
||||||
|
-DBINARY_DIR=${CMAKE_BINARY_DIR}
|
||||||
|
"-DABI_HEADERS=${API_PREPROCESSOR_HEADER}"
|
||||||
|
-P ${CMAKE_SOURCE_DIR}/cmake/do_abi_check.cmake
|
||||||
|
VERBATIM
|
||||||
|
)
|
||||||
|
|
||||||
|
ADD_CUSTOM_TARGET(abi_check_all
|
||||||
|
COMMAND ${CMAKE_COMMAND}
|
||||||
|
-DCMAKE_C_COMPILER=${COMPILER}
|
||||||
|
-DCMAKE_SOURCE_DIR=${CMAKE_SOURCE_DIR}
|
||||||
|
-DCMAKE_BINARY_DIR=${CMAKE_BINARY_DIR}
|
||||||
|
"-DABI_HEADERS=${TEST_PREPROCESSOR_HEADER}"
|
||||||
|
-P ${CMAKE_SOURCE_DIR}/cmake/scripts/do_abi_check.cmake
|
||||||
|
VERBATIM
|
||||||
|
)
|
||||||
|
ENDIF()
|
||||||
|
|
64
cmake/bison.cmake
Normal file
64
cmake/bison.cmake
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
FIND_PROGRAM(BISON_EXECUTABLE bison DOC "path to the bison executable")
|
||||||
|
MARK_AS_ADVANCED(BISON_EXECUTABLE "")
|
||||||
|
IF(NOT BISON_EXECUTABLE)
|
||||||
|
MESSAGE("Warning: Bison executable not found in PATH")
|
||||||
|
ELSEIF(BISON_EXECUTABLE AND NOT BISON_USABLE)
|
||||||
|
# Check version as well
|
||||||
|
EXEC_PROGRAM(${BISON_EXECUTABLE} ARGS --version OUTPUT_VARIABLE BISON_VERSION_STR)
|
||||||
|
# Get first line in case it's multiline
|
||||||
|
STRING(REGEX REPLACE "([^\n]+).*" "\\1" FIRST_LINE "${BISON_VERSION_STR}")
|
||||||
|
# get version information
|
||||||
|
STRING(REGEX REPLACE ".* ([0-9]+)\\.([0-9]+)" "\\1" BISON_VERSION_MAJOR "${FIRST_LINE}")
|
||||||
|
STRING(REGEX REPLACE ".* ([0-9]+)\\.([0-9]+)" "\\2" BISON_VERSION_MINOR "${FIRST_LINE}")
|
||||||
|
IF (BISON_VERSION_MAJOR LESS 2)
|
||||||
|
MESSAGE("Warning: bison version is old. please update to version 2")
|
||||||
|
ELSE()
|
||||||
|
SET(BISON_USABLE 1 CACHE INTERNAL "Bison version 2 or higher")
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
# Use bison to generate C++ and header file
|
||||||
|
MACRO (RUN_BISON input_yy output_cc output_h)
|
||||||
|
IF(BISON_TOO_OLD)
|
||||||
|
IF(EXISTS ${output_cc} AND EXISTS ${output_h})
|
||||||
|
SET(BISON_USABLE FALSE)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
IF(BISON_USABLE)
|
||||||
|
ADD_CUSTOM_COMMAND(
|
||||||
|
OUTPUT ${output_cc}
|
||||||
|
${output_h}
|
||||||
|
COMMAND bison -y -p MYSQL
|
||||||
|
--output=${output_cc}
|
||||||
|
--defines=${output_h}
|
||||||
|
${input_yy}
|
||||||
|
DEPENDS ${input_yy}
|
||||||
|
)
|
||||||
|
ELSE()
|
||||||
|
# Bison is missing or not usable, e.g too old
|
||||||
|
IF(EXISTS ${output_cc} AND EXISTS ${output_h})
|
||||||
|
IF(${input_yy} IS_NEWER_THAN ${output_cc} OR ${input_yy} IS_NEWER_THAN ${output_h})
|
||||||
|
# Possibly timestamps are messed up in source distribution.
|
||||||
|
MESSAGE("Warning: no usable bison found, ${input_yy} will not be rebuilt.")
|
||||||
|
ENDIF()
|
||||||
|
ELSE()
|
||||||
|
# Output files are missing, bail out.
|
||||||
|
MESSAGE(FATAL_ERROR "Please install bison.")
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
ENDMACRO()
|
27
cmake/cat.cmake
Normal file
27
cmake/cat.cmake
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
# Concatenate files
|
||||||
|
#
|
||||||
|
# Parameters :
|
||||||
|
# IN - input files (list)
|
||||||
|
# OUT - output file
|
||||||
|
FILE(WRITE ${OUT} "")
|
||||||
|
FOREACH(FILENAME ${IN})
|
||||||
|
FILE(READ ${FILENAME} CONTENTS)
|
||||||
|
FILE(APPEND ${OUT} "${CONTENTS}")
|
||||||
|
ENDFOREACH()
|
||||||
|
|
||||||
|
|
63
cmake/character_sets.cmake
Normal file
63
cmake/character_sets.cmake
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
#Charsets and collations
|
||||||
|
IF(NOT DEFAULT_CHARSET)
|
||||||
|
SET(DEFAULT_CHARSET "latin1")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(NOT DEFAULT_COLLATIONS)
|
||||||
|
SET(DEFAULT_COLLATION "latin1_swedish_ci")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
SET(CHARSETS ${DEFAULT_CHARSET} latin1 utf8 utf8mb3)
|
||||||
|
SET(CHARSETS_COMPLEX big5 cp1250 cp932 eucjpms euckr gb2312 gbk latin1 latin2 sjis tis620 ucs2 ujis utf8 utf8mb3 utf16 utf32)
|
||||||
|
|
||||||
|
SET(CHARSETS_AVAILABLE
|
||||||
|
binary armscii8 ascii big5 cp1250 cp1251 cp1256 cp1257
|
||||||
|
cp850 cp852 cp866 cp932 dec8 eucjpms euckr gb2312 gbk geostd8
|
||||||
|
greek hebrew hp8 keybcs2 koi8r koi8u
|
||||||
|
latin1 latin2 latin5 latin7 macce macroman
|
||||||
|
sjis swe7 tis620 ucs2 ujis utf8 utf8mb3 utf16 utf32)
|
||||||
|
|
||||||
|
|
||||||
|
IF(WIN32)
|
||||||
|
SET (EXTRA_CHARSETS "all")
|
||||||
|
ELSE()
|
||||||
|
SET (EXTRA_CHARSETS "none")
|
||||||
|
ENDIF()
|
||||||
|
SET(WITH_EXTRA_CHARSETS ${EXTRA_CHARSETS} CACHE
|
||||||
|
STRING "Options are: none, complex,all")
|
||||||
|
|
||||||
|
|
||||||
|
IF(WITH_EXTRA_CHARSETS MATCHES "complex")
|
||||||
|
SET(CHARSETS ${CHARSETS} ${CHARSETS_COMPLEX})
|
||||||
|
ELSEIF(WITH_EXTRA_CHARSETS MATCHES "all")
|
||||||
|
SET(CHARSETS ${CHARSETS} ${CHARSETS_AVAILABLE})
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
SET(MYSQL_DEFAULT_CHARSET_NAME "${DEFAULT_CHARSET}")
|
||||||
|
SET(MYSQL_DEFAULT_COLLATION_NAME "${DEFAULT_COLLATION}")
|
||||||
|
|
||||||
|
FOREACH(cs in ${CHARSETS})
|
||||||
|
SET(HAVE_CHARSET_${cs} 1)
|
||||||
|
ENDFOREACH()
|
||||||
|
|
||||||
|
SET(HAVE_UCA_COLLATIONS 1)
|
||||||
|
|
||||||
|
SET(HAVE_UTF8_GENERAL_CS 1)
|
||||||
|
SET(USE_MB 1)
|
||||||
|
SET(USE_MB_IDENT 1)
|
||||||
|
|
19
cmake/check_minimal_version.cmake
Normal file
19
cmake/check_minimal_version.cmake
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
# This is a helper script is used to check for the minimal required version
|
||||||
|
# It helps to decide whether to use autoconf based configure or cmake's
|
||||||
|
# configure
|
||||||
|
CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0 FATAL_ERROR)
|
79
cmake/configure.pl
Normal file
79
cmake/configure.pl
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
use Switch;
|
||||||
|
|
||||||
|
my $cmakeargs="";
|
||||||
|
foreach $option (@ARGV)
|
||||||
|
{
|
||||||
|
if (substr ($option, 0, 2) == "--")
|
||||||
|
{
|
||||||
|
$option = substr($option, 2);
|
||||||
|
}
|
||||||
|
if($option =~ /help/)
|
||||||
|
{
|
||||||
|
system("cmake -LH");
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
if($option =~ /with-plugins=/)
|
||||||
|
{
|
||||||
|
my @plugins= split(/,/, substr($option,13));
|
||||||
|
foreach $p (@plugins)
|
||||||
|
{
|
||||||
|
$p =~ s/-/_/g;
|
||||||
|
$cmakeargs = $cmakeargs." -DWITH_".uc($p)."=1";
|
||||||
|
}
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
if($option =~ /with-extra-charsets=/)
|
||||||
|
{
|
||||||
|
my $charsets= substr($option,20);
|
||||||
|
$cmakeargs = $cmakeargs." -DWITH_EXTRA_CHARSETS=".$charsets;
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
if($option =~ /without-plugin=/)
|
||||||
|
{
|
||||||
|
$cmakeargs = $cmakeargs." -DWITHOUT_".uc(substr($option,15))."=1";
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
if($option =~ /with-zlib-dir=bundled/)
|
||||||
|
{
|
||||||
|
$cmakeargs = $cmakeargs." -DWITH_ZLIB=bundled";
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
if($option =~ /with-zlib-dir=/)
|
||||||
|
{
|
||||||
|
$cmakeargs = $cmakeargs." -DWITH_ZLIB=system";
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
if($option =~ /with-ssl=/)
|
||||||
|
{
|
||||||
|
$cmakeargs = $cmakeargs." -DWITH_SSL=bundled";
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
if($option =~ /with-ssl/)
|
||||||
|
{
|
||||||
|
$cmakeargs = $cmakeargs." -DWITH_SSL=yes";
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
if($option =~ /prefix=/)
|
||||||
|
{
|
||||||
|
my $cmake_install_prefix= substr($option, 7);
|
||||||
|
$cmakeargs = $cmakeargs." -DCMAKE_INSTALL_PREFIX=".$cmake_install_prefix;
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
if ($options =~ /extra-charsets=all/)
|
||||||
|
{
|
||||||
|
$cmakeargs = $cmakeargs." -DWITH_CHARSETS=all";
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
if ($options =~ /extra-charsets=complex/)
|
||||||
|
{
|
||||||
|
$cmakeargs = $cmakeargs." -DWITH_CHARSETS=complex";
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
$option = uc($option);
|
||||||
|
$option =~ s/-/_/g;
|
||||||
|
$cmakeargs = $cmakeargs." -D".$option."=1";
|
||||||
|
}
|
||||||
|
print("configure.pl : calling cmake . $cmakeargs\n");
|
||||||
|
my $rc = system("cmake . $cmakeargs");
|
||||||
|
exit($rc);
|
84
cmake/create_initial_db.cmake.in
Normal file
84
cmake/create_initial_db.cmake.in
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
# This script creates initial database for packaging on Windows
|
||||||
|
SET(CMAKE_SOURCE_DIR "@CMAKE_SOURCE_DIR@")
|
||||||
|
SET(CMAKE_CURRENT_BINARY_DIR "@CMAKE_CURRENT_BINARY_DIR@")
|
||||||
|
SET(MYSQLD_EXECUTABLE "@MYSQLD_EXECUTABLE@")
|
||||||
|
SET(CMAKE_CFG_INTDIR "@CMAKE_CFG_INTDIR@")
|
||||||
|
SET(WIN32 "@WIN32@")
|
||||||
|
SET ($ENV{VS_UNICODE_OUTPUT})
|
||||||
|
IF(CMAKE_CFG_INTDIR)
|
||||||
|
IF(CONFIG)
|
||||||
|
MESSAGE(${CONFIG})
|
||||||
|
#Resolve build configuration variables
|
||||||
|
STRING(REPLACE "${CMAKE_CFG_INTDIR}" ${CONFIG} MYSQLD_EXECUTABLE
|
||||||
|
"${MYSQLD_EXECUTABLE}")
|
||||||
|
ELSE()
|
||||||
|
MESSAGE(FATAL_ERROR "Please provide CONFIG parameter to the script")
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
# Create bootstrapper SQL script
|
||||||
|
FILE(WRITE bootstrap.sql "use mysql;\n" )
|
||||||
|
FOREACH(FILENAME mysql_system_tables.sql mysql_system_tables_data.sql
|
||||||
|
fill_help_tables.sql)
|
||||||
|
FILE(STRINGS ${CMAKE_SOURCE_DIR}/scripts/${FILENAME} CONTENTS)
|
||||||
|
FOREACH(STR ${CONTENTS})
|
||||||
|
IF(NOT STR MATCHES "@current_hostname")
|
||||||
|
FILE(APPEND bootstrap.sql "${STR}\n")
|
||||||
|
ENDIF()
|
||||||
|
ENDFOREACH()
|
||||||
|
ENDFOREACH()
|
||||||
|
|
||||||
|
|
||||||
|
MAKE_DIRECTORY(data)
|
||||||
|
FILE(REMOVE_RECURSE data/mysql)
|
||||||
|
MAKE_DIRECTORY(data/mysql)
|
||||||
|
IF(WIN32)
|
||||||
|
SET(CONSOLE --console)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
SET(BOOTSTRAP_COMMAND
|
||||||
|
${MYSQLD_EXECUTABLE}
|
||||||
|
--no-defaults
|
||||||
|
${CONSOLE}
|
||||||
|
--bootstrap
|
||||||
|
--lc-messages-dir=${CMAKE_CURRENT_BINARY_DIR}/share
|
||||||
|
--basedir=.
|
||||||
|
--datadir=.
|
||||||
|
--loose-skip-innodb
|
||||||
|
--loose-skip-ndbcluster
|
||||||
|
--max_allowed_packet=8M
|
||||||
|
--net_buffer_length=16K
|
||||||
|
)
|
||||||
|
|
||||||
|
GET_FILENAME_COMPONENT(CWD . ABSOLUTE)
|
||||||
|
EXECUTE_PROCESS(
|
||||||
|
COMMAND "@CMAKE_COMMAND@" -E echo Executing ${BOOTSTRAP_COMMAND}
|
||||||
|
)
|
||||||
|
EXECUTE_PROCESS (
|
||||||
|
COMMAND "@CMAKE_COMMAND@" -E echo input file bootstrap.sql, current directory ${CWD}
|
||||||
|
)
|
||||||
|
EXECUTE_PROCESS (
|
||||||
|
COMMAND ${BOOTSTRAP_COMMAND} INPUT_FILE bootstrap.sql OUTPUT_VARIABLE OUT
|
||||||
|
ERROR_VARIABLE ERR
|
||||||
|
RESULT_VARIABLE RESULT
|
||||||
|
)
|
||||||
|
|
||||||
|
IF(NOT RESULT EQUAL 0)
|
||||||
|
MESSAGE(FATAL_ERROR "Could not create initial database \n ${OUT} \n ${ERR}")
|
||||||
|
ENDIF()
|
||||||
|
|
78
cmake/do_abi_check.cmake
Normal file
78
cmake/do_abi_check.cmake
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
#
|
||||||
|
# Rules for checking that the abi/api has not changed.
|
||||||
|
#
|
||||||
|
# The following steps are followed in the do_abi_check rule below
|
||||||
|
#
|
||||||
|
# 1) Generate preprocessor output for the files that need to
|
||||||
|
# be tested for abi/api changes. use -nostdinc to prevent
|
||||||
|
# generation of preprocessor output for system headers. This
|
||||||
|
# results in messages in stderr saying that these headers
|
||||||
|
# were not found. Redirect the stderr output to /dev/null
|
||||||
|
# to prevent seeing these messages.
|
||||||
|
# 2) sed the output to
|
||||||
|
# 2.1) remove blank lines and lines that begin with "# "
|
||||||
|
# 2.2) When gcc -E is run on the Mac OS and solaris sparc platforms it
|
||||||
|
# introduces a line of output that shows up as a difference between
|
||||||
|
# the .pp and .out files. Remove these OS specific preprocessor text
|
||||||
|
# inserted by the preprocessor.
|
||||||
|
# 3) diff the generated file and the canons (.pp files already in
|
||||||
|
# the repository).
|
||||||
|
# 4) delete the .out file that is generated.
|
||||||
|
#
|
||||||
|
# If the diff fails, the generated file is not removed. This will
|
||||||
|
# be useful for analysis of ABI differences (e.g. using a visual
|
||||||
|
# diff tool).
|
||||||
|
#
|
||||||
|
# A ABI change that causes a build to fail will always be accompanied
|
||||||
|
# by new canons (.out files). The .out files that are not removed will
|
||||||
|
# be replaced as the new .pp files.
|
||||||
|
#
|
||||||
|
# e.g. If include/mysql/plugin.h has an ABI change then this rule would
|
||||||
|
# leave a <build directory>/abi_check.out file.
|
||||||
|
#
|
||||||
|
# A developer with a justified API change will then do a
|
||||||
|
# mv <build directory>/abi_check.out include/mysql/plugin.pp
|
||||||
|
# to replace the old canons with the new ones.
|
||||||
|
#
|
||||||
|
|
||||||
|
SET(abi_check_out ${BINARY_DIR}/abi_check.out)
|
||||||
|
|
||||||
|
FOREACH(file ${ABI_HEADERS})
|
||||||
|
SET(tmpfile ${file}.pp.tmp)
|
||||||
|
EXECUTE_PROCESS(
|
||||||
|
COMMAND ${COMPILER}
|
||||||
|
-E -nostdinc -dI -I${SOURCE_DIR}/include -I${BINARY_DIR}/include
|
||||||
|
-I${SOURCE_DIR}/include/mysql -I${SOURCE_DIR}/sql ${file}
|
||||||
|
ERROR_QUIET OUTPUT_FILE ${tmpfile})
|
||||||
|
EXECUTE_PROCESS(
|
||||||
|
COMMAND sed -e
|
||||||
|
"/^# /d" -e "/^[ ]*$/d" -e "/^#pragma GCC set_debug_pwd/d" -e "/^#ident/d"
|
||||||
|
RESULT_VARIABLE result OUTPUT_FILE ${abi_check_out} INPUT_FILE ${tmpfile})
|
||||||
|
IF(NOT ${result} EQUAL 0)
|
||||||
|
MESSAGE(FATAL_ERROR "sed returned error ${result}")
|
||||||
|
ENDIF()
|
||||||
|
FILE(REMOVE ${tmpfile})
|
||||||
|
EXECUTE_PROCESS(COMMAND diff -w ${file}.pp ${abi_check_out} RESULT_VARIABLE
|
||||||
|
result)
|
||||||
|
IF(NOT ${result} EQUAL 0)
|
||||||
|
MESSAGE(FATAL_ERROR
|
||||||
|
"ABI check found difference between ${file}.pp and ${abi_check_out}")
|
||||||
|
ENDIF()
|
||||||
|
FILE(REMOVE ${abi_check_out})
|
||||||
|
ENDFOREACH()
|
||||||
|
|
92
cmake/dtrace.cmake
Normal file
92
cmake/dtrace.cmake
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
# Check if OS supports DTrace
|
||||||
|
MACRO(CHECK_DTRACE)
|
||||||
|
FIND_PROGRAM(DTRACE dtrace)
|
||||||
|
MARK_AS_ADVANCED(DTRACE)
|
||||||
|
|
||||||
|
# On FreeBSD, dtrace does not handle userland tracing yet
|
||||||
|
IF(DTRACE AND NOT CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
|
||||||
|
SET(ENABLE_DTRACE ON CACHE BOOL "Enable dtrace")
|
||||||
|
ENDIF()
|
||||||
|
SET(HAVE_DTRACE ${ENABLE_DTRACE})
|
||||||
|
IF(CMAKE_SYSTEM_NAME MATCHES "SunOS")
|
||||||
|
IF(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||||
|
SET(DTRACE_FLAGS -32 CACHE INTERNAL "DTrace architecture flags")
|
||||||
|
ELSE()
|
||||||
|
SET(DTRACE_FLAGS -64 CACHE INTERNAL "DTrace architecture flags")
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
ENDMACRO()
|
||||||
|
|
||||||
|
CHECK_DTRACE()
|
||||||
|
|
||||||
|
# Produce a header file with
|
||||||
|
# DTrace macros
|
||||||
|
MACRO (DTRACE_HEADER provider header header_no_dtrace)
|
||||||
|
IF(ENABLE_DTRACE)
|
||||||
|
ADD_CUSTOM_COMMAND(
|
||||||
|
OUTPUT ${header} ${header_no_dtrace}
|
||||||
|
COMMAND ${DTRACE} -h -s ${provider} -o ${header}
|
||||||
|
COMMAND perl ${CMAKE_SOURCE_DIR}/scripts/dheadgen.pl -f ${provider} > ${header_no_dtrace}
|
||||||
|
DEPENDS ${provider}
|
||||||
|
)
|
||||||
|
ENDIF()
|
||||||
|
ENDMACRO()
|
||||||
|
|
||||||
|
|
||||||
|
# Create provider headers
|
||||||
|
IF(ENABLE_DTRACE)
|
||||||
|
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/include/probes_mysql.d.base
|
||||||
|
${CMAKE_BINARY_DIR}/include/probes_mysql.d COPYONLY)
|
||||||
|
DTRACE_HEADER(
|
||||||
|
${CMAKE_BINARY_DIR}/include/probes_mysql.d
|
||||||
|
${CMAKE_BINARY_DIR}/include/probes_mysql_dtrace.h
|
||||||
|
${CMAKE_BINARY_DIR}/include/probes_mysql_nodtrace.h
|
||||||
|
)
|
||||||
|
ADD_CUSTOM_TARGET(gen_dtrace_header
|
||||||
|
DEPENDS
|
||||||
|
${CMAKE_BINARY_DIR}/include/probes_mysql.d
|
||||||
|
${CMAKE_BINARY_DIR}/include/probes_mysql_dtrace.h
|
||||||
|
${CMAKE_BINARY_DIR}/include/probes_mysql_nodtrace.h
|
||||||
|
)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
|
||||||
|
MACRO (DTRACE_INSTRUMENT target)
|
||||||
|
IF(ENABLE_DTRACE)
|
||||||
|
ADD_DEPENDENCIES(${target} gen_dtrace_header)
|
||||||
|
|
||||||
|
# On Solaris, invoke dtrace -G to generate object file and
|
||||||
|
# link it together with target.
|
||||||
|
IF(CMAKE_SYSTEM_NAME MATCHES "SunOS")
|
||||||
|
SET(objdir ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${target}.dir)
|
||||||
|
SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/${target}_dtrace.o)
|
||||||
|
|
||||||
|
ADD_CUSTOM_COMMAND(
|
||||||
|
TARGET ${target} PRE_LINK
|
||||||
|
COMMAND ${CMAKE_COMMAND}
|
||||||
|
-DDTRACE=${DTRACE}
|
||||||
|
-DOUTFILE=${outfile}
|
||||||
|
-DDFILE=${CMAKE_BINARY_DIR}/include/probes_mysql.d
|
||||||
|
-DDTRACE_FLAGS=${DTRACE_FLAGS}
|
||||||
|
-P ${CMAKE_SOURCE_DIR}/cmake/dtrace_prelink.cmake
|
||||||
|
WORKING_DIRECTORY ${OBJDIR}
|
||||||
|
)
|
||||||
|
SET_TARGET_PROPERTIES(${target} PROPERTIES LINK_FLAGS "${outfile}")
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
ENDMACRO()
|
34
cmake/dtrace_prelink.cmake
Normal file
34
cmake/dtrace_prelink.cmake
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
# Generates an ELF object file with dtrace entry points.
|
||||||
|
# This object that must to be linked with together with
|
||||||
|
# the target. This script needs to run on Solaris only
|
||||||
|
|
||||||
|
# Do not follow symlinks in GLOB_RECURSE
|
||||||
|
CMAKE_POLICY(SET CMP0009 NEW)
|
||||||
|
FILE(GLOB_RECURSE OBJECTS *.o)
|
||||||
|
|
||||||
|
# Use relative paths to generate shorter command line
|
||||||
|
GET_FILENAME_COMPONENT(CURRENT_ABS_DIR . ABSOLUTE)
|
||||||
|
FOREACH(OBJ ${OBJECTS})
|
||||||
|
FILE(RELATIVE_PATH REL ${CURRENT_ABS_DIR} ${OBJ})
|
||||||
|
LIST(APPEND REL_OBJECTS ${REL})
|
||||||
|
ENDFOREACH()
|
||||||
|
|
||||||
|
EXECUTE_PROCESS(
|
||||||
|
COMMAND ${DTRACE} ${DTRACE_FLAGS} -o ${OUTFILE} -G -s ${DFILE} ${REL_OBJECTS}
|
||||||
|
)
|
||||||
|
|
69
cmake/install_macros.cmake
Normal file
69
cmake/install_macros.cmake
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
MACRO (INSTALL_DEBUG_SYMBOLS targets)
|
||||||
|
IF(MSVC)
|
||||||
|
FOREACH(target ${targets})
|
||||||
|
GET_TARGET_PROPERTY(location ${target} LOCATION)
|
||||||
|
GET_TARGET_PROPERTY(type ${target} TYPE)
|
||||||
|
IF(NOT INSTALL_LOCATION)
|
||||||
|
IF(type MATCHES "STATIC_LIBRARY" OR type MATCHES "MODULE_LIBRARY" OR type MATCHES "SHARED_LIBRARY")
|
||||||
|
SET(INSTALL_LOCATION "lib")
|
||||||
|
ELSEIF(type MATCHES "EXECUTABLE")
|
||||||
|
SET(INSTALL_LOCATION "bin")
|
||||||
|
ELSE()
|
||||||
|
MESSAGE(FATAL_ERROR "cannot determine type of ${target}. Don't now where to install")
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
STRING(REPLACE ".exe" ".pdb" pdb_location ${location})
|
||||||
|
STRING(REPLACE ".dll" ".pdb" pdb_location ${pdb_location})
|
||||||
|
STRING(REPLACE ".lib" ".pdb" pdb_location ${pdb_location})
|
||||||
|
STRING(REPLACE "$(OutDir)" "\${CMAKE_INSTALL_CONFIG_NAME}" pdb_location ${pdb_location})
|
||||||
|
STRING(REPLACE "$(ConfigurationName)" "\${CMAKE_INSTALL_CONFIG_NAME}" pdb_location ${pdb_location})
|
||||||
|
INSTALL(FILES ${pdb_location} DESTINATION ${INSTALL_LOCATION})
|
||||||
|
ENDFOREACH()
|
||||||
|
ENDIF()
|
||||||
|
ENDMACRO()
|
||||||
|
|
||||||
|
# Install symbolic link to CMake target.
|
||||||
|
# the link is created in the same directory as target
|
||||||
|
# and extension will be the same as for target file.
|
||||||
|
MACRO(INSTALL_SYMLINK linkbasename target destination)
|
||||||
|
IF(UNIX)
|
||||||
|
GET_TARGET_PROPERTY(location ${target} LOCATION)
|
||||||
|
GET_FILENAME_COMPONENT(path ${location} PATH)
|
||||||
|
GET_FILENAME_COMPONENT(name_we ${location} NAME_WE)
|
||||||
|
GET_FILENAME_COMPONENT(ext ${location} EXT)
|
||||||
|
SET(output ${path}/${linkbasename}${ext})
|
||||||
|
ADD_CUSTOM_COMMAND(
|
||||||
|
OUTPUT ${output}
|
||||||
|
COMMAND ${CMAKE_COMMAND} ARGS -E remove -f ${output}
|
||||||
|
COMMAND ${CMAKE_COMMAND} ARGS -E create_symlink
|
||||||
|
${name_we}${ext}
|
||||||
|
${linkbasename}${ext}
|
||||||
|
WORKING_DIRECTORY ${path}
|
||||||
|
DEPENDS ${target}
|
||||||
|
)
|
||||||
|
|
||||||
|
ADD_CUSTOM_TARGET(symlink_${linkbasename}${ext}
|
||||||
|
ALL
|
||||||
|
DEPENDS ${output})
|
||||||
|
SET_TARGET_PROPERTIES(symlink_${linkbasename}${ext} PROPERTIES CLEAN_DIRECT_OUTPUT 1)
|
||||||
|
# For Xcode, replace project config with install config
|
||||||
|
STRING(REPLACE "$(CONFIGURATION)" "\${CMAKE_INSTALL_CONFIG_NAME}" output ${output})
|
||||||
|
INSTALL(FILES ${output} DESTINATION ${destination})
|
||||||
|
ENDIF()
|
||||||
|
ENDMACRO()
|
||||||
|
|
176
cmake/make_dist.cmake.in
Normal file
176
cmake/make_dist.cmake.in
Normal file
@ -0,0 +1,176 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
# Make source distribution
|
||||||
|
# If bzr is present, run bzr export, add output of BUILD/autorun.sh
|
||||||
|
# if autotools are present, also pack bison output into it.
|
||||||
|
# Otherwise, just run cpack with source configuration.
|
||||||
|
|
||||||
|
SET(CMAKE_SOURCE_DIR "@CMAKE_SOURCE_DIR@")
|
||||||
|
SET(CMAKE_BINARY_DIR "@CMAKE_BINARY_DIR@")
|
||||||
|
SET(CPACK_SOURCE_PACKAGE_FILE_NAME "@CPACK_SOURCE_PACKAGE_FILE_NAME@")
|
||||||
|
SET(GLIBTOOLIZE_EXECUTABLE "@GLIBTOOLIZE_EXECUTABLE@")
|
||||||
|
SET(LIBTOOLIZE_EXECUTABLE "@LIBTOOLIZE_EXECUTABLE@")
|
||||||
|
SET(ACLOCAL_EXECUTABLE "@ACLOCAL_EXECUTABLE@")
|
||||||
|
SET(AUTOCONF_EXECUTABLE "@AUTOCONF_EXECUTABLE@")
|
||||||
|
SET(AUTOHEADER_EXECUTABLE "@AUTOHEADER_EXECUTABLE@")
|
||||||
|
SET(AUTOMAKE_EXECUTABLE "@AUTOMAKE_EXECUTABLE@")
|
||||||
|
SET(CMAKE_CPACK_COMMAND "@CMAKE_CPACK_COMMAND@")
|
||||||
|
SET(CMAKE_COMMAND "@CMAKE_COMMAND@")
|
||||||
|
SET(BZR_EXECUTABLE "@BZR_EXECUTABLE@")
|
||||||
|
SET(GTAR_EXECUTABLE "@GTAR_EXECUTABLE@")
|
||||||
|
SET(TAR_EXECUTABLE "@TAR_EXECUTABLE@")
|
||||||
|
SET(CMAKE_GENERATOR "@CMAKE_GENERATOR@")
|
||||||
|
SET(CMAKE_MAKE_PROGRAM "@CMAKE_MAKE_PROGRAM@")
|
||||||
|
SET(CMAKE_SYSTEM_NAME "@CMAKE_SYSTEM_NAME@")
|
||||||
|
|
||||||
|
|
||||||
|
SET(PACKAGE_DIR ${CMAKE_BINARY_DIR}/${CPACK_SOURCE_PACKAGE_FILE_NAME})
|
||||||
|
|
||||||
|
FILE(REMOVE_RECURSE ${PACKAGE_DIR})
|
||||||
|
FILE(REMOVE ${PACKAGE_DIR}.tar.gz )
|
||||||
|
|
||||||
|
IF(BZR_EXECUTABLE)
|
||||||
|
MESSAGE(STATUS "Running bzr export")
|
||||||
|
EXECUTE_PROCESS(
|
||||||
|
COMMAND "${BZR_EXECUTABLE}" export
|
||||||
|
${PACKAGE_DIR}
|
||||||
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||||
|
RESULT_VARIABLE RESULT
|
||||||
|
)
|
||||||
|
|
||||||
|
IF(NOT RESULT EQUAL 0)
|
||||||
|
SET(BZR_EXECUTABLE)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(NOT BZR_EXECUTABLE)
|
||||||
|
MESSAGE(STATUS "bzr not found or source dir is not a repo, use CPack")
|
||||||
|
|
||||||
|
IF(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
|
||||||
|
# In-source build is the worst option, we have to cleanup source tree.
|
||||||
|
|
||||||
|
# Save bison output first.
|
||||||
|
CONFIGURE_FILE(${CMAKE_BINARY_DIR}/sql/sql_yacc.cc
|
||||||
|
${CMAKE_BINARY_DIR}/sql_yacc.cc COPY_ONLY)
|
||||||
|
CONFIGURE_FILE(${CMAKE_BINARY_DIR}/sql/sql_yacc.h
|
||||||
|
${CMAKE_BINARY_DIR}/sql_yacc.h COPY_ONLY)
|
||||||
|
|
||||||
|
IF(CMAKE_GENERATOR MATCHES "Makefiles")
|
||||||
|
# make clean
|
||||||
|
EXECUTE_PROCESS(
|
||||||
|
COMMAND ${CMAKE_MAKE_PROGRAM} clean
|
||||||
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||||
|
)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
# Restore bison output
|
||||||
|
CONFIGURE_FILE(${CMAKE_BINARY_DIR}/sql_yacc.cc
|
||||||
|
${CMAKE_BINARY_DIR}/sql/sql_yacc.cc COPY_ONLY)
|
||||||
|
CONFIGURE_FILE(${CMAKE_BINARY_DIR}/sql_yacc.h
|
||||||
|
${CMAKE_BINARY_DIR}/sql/sql_yacc.h COPY_ONLY)
|
||||||
|
FILE(REMOVE ${CMAKE_BINARY_DIR}/sql_yacc.cc)
|
||||||
|
FILE(REMOVE ${CMAKE_BINARY_DIR}/sql_yacc.h)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
EXECUTE_PROCESS(
|
||||||
|
COMMAND ${CMAKE_CPACK_COMMAND} -G TGZ --config ./CPackSourceConfig.cmake
|
||||||
|
${CMAKE_BINARY_DIR}/CPackSourceConfig.cmake
|
||||||
|
|
||||||
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||||
|
)
|
||||||
|
EXECUTE_PROCESS(
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E tar xzf
|
||||||
|
${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.gz
|
||||||
|
${PACK_SOURCE_PACKAGE_FILE_NAME}
|
||||||
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||||
|
)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
# Try to pack output of BUILD/autorun, if autotools are present
|
||||||
|
IF(GLIBTOOLIZE_EXECUTABLE OR LIBTOOLIZE_EXECUTABLE)
|
||||||
|
IF(ACLOCAL_EXECUTABLE AND AUTOMAKE_EXECUTABLE AND AUTOCONF_EXECUTABLE
|
||||||
|
AND AUTOHEADER_EXECUTABLE)
|
||||||
|
SET(HAVE_AUTOTOOLS 1)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(HAVE_AUTOTOOLS)
|
||||||
|
EXECUTE_PROCESS(COMMAND BUILD/autorun.sh
|
||||||
|
WORKING_DIRECTORY ${PACKAGE_DIR})
|
||||||
|
ELSE()
|
||||||
|
MESSAGE( "Autotools not found, resulting source package can only be built"
|
||||||
|
" with cmake")
|
||||||
|
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/cmake/configure.pl
|
||||||
|
${PACKAGE_DIR}/configure
|
||||||
|
COPYONLY)
|
||||||
|
IF(UNIX)
|
||||||
|
EXECUTE_PROCESS(COMMAND chmod +x ${PACKAGE_DIR}/configure)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
# Copy bison output
|
||||||
|
CONFIGURE_FILE(${CMAKE_BINARY_DIR}/sql/sql_yacc.h
|
||||||
|
${PACKAGE_DIR}/sql/sql_yacc.h COPYONLY)
|
||||||
|
CONFIGURE_FILE(${CMAKE_BINARY_DIR}/sql/sql_yacc.cc
|
||||||
|
${PACKAGE_DIR}/sql/sql_yacc.cc COPYONLY)
|
||||||
|
|
||||||
|
|
||||||
|
# In case we used CPack, it could have copied some
|
||||||
|
# extra files that are not usable on different machines.
|
||||||
|
FILE(REMOVE ${PACKAGE_DIR}/CMakeCache.txt)
|
||||||
|
|
||||||
|
# When packing source, prefer gnu tar to "cmake -P tar"
|
||||||
|
# cmake does not preserve timestamps.gnuwin32 tar is broken, cygwin is ok
|
||||||
|
|
||||||
|
IF(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||||
|
IF (EXISTS C:/cygwin/bin/tar.exe)
|
||||||
|
SET(TAR_EXECUTABLE C:/cygwin/bin/tar.exe)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(GTAR_EXECUTABLE)
|
||||||
|
SET(GNUTAR ${GTAR_EXECUTABLE})
|
||||||
|
ELSEIF(TAR_EXECUTABLE)
|
||||||
|
EXECUTE_PROCESS(
|
||||||
|
COMMAND "${TAR_EXECUTABLE}" --version
|
||||||
|
RESULT_VARIABLE RESULT OUTPUT_VARIABLE OUT ERROR_VARIABLE ERR
|
||||||
|
)
|
||||||
|
IF(RESULT EQUAL 0 AND OUT MATCHES "GNU")
|
||||||
|
SET(GNUTAR ${TAR_EXECUTABLE})
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
SET($ENV{GZIP} "--best")
|
||||||
|
|
||||||
|
IF(GNUTAR)
|
||||||
|
SET(PACK_COMMAND
|
||||||
|
${GNUTAR} cfz
|
||||||
|
${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.gz
|
||||||
|
${CPACK_SOURCE_PACKAGE_FILE_NAME}
|
||||||
|
)
|
||||||
|
ELSE()
|
||||||
|
SET(PACK_COMMAND ${CMAKE_COMMAND} -E tar cfz
|
||||||
|
${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.gz
|
||||||
|
${CPACK_SOURCE_PACKAGE_FILE_NAME}
|
||||||
|
)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
MESSAGE(STATUS "Creating source package")
|
||||||
|
|
||||||
|
EXECUTE_PROCESS(
|
||||||
|
COMMAND ${PACK_COMMAND}
|
||||||
|
)
|
||||||
|
MESSAGE(STATUS "Source package ${PACKAGE_DIR}.tar.gz created")
|
62
cmake/merge_archives_unix.cmake.in
Normal file
62
cmake/merge_archives_unix.cmake.in
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
# This script merges many static libraries into
|
||||||
|
# one big library on Unix.
|
||||||
|
SET(TARGET_LOCATION "@TARGET_LOCATION@")
|
||||||
|
SET(TARGET "@TARGET@")
|
||||||
|
SET(STATIC_LIBS "@STATIC_LIBS@")
|
||||||
|
SET(CMAKE_CURRENT_BINARY_DIR "@CMAKE_CURRENT_BINARY_DIR@")
|
||||||
|
SET(CMAKE_AR "@CMAKE_AR@")
|
||||||
|
SET(CMAKE_RANLIB "@CMAKE_RANLIB@")
|
||||||
|
|
||||||
|
|
||||||
|
SET(TEMP_DIR ${CMAKE_CURRENT_BINARY_DIR}/merge_archives_${TARGET})
|
||||||
|
MAKE_DIRECTORY(${TEMP_DIR})
|
||||||
|
# Extract each archive to its own subdirectory(avoid object filename clashes)
|
||||||
|
FOREACH(LIB ${STATIC_LIBS})
|
||||||
|
GET_FILENAME_COMPONENT(NAME_NO_EXT ${LIB} NAME_WE)
|
||||||
|
SET(TEMP_SUBDIR ${TEMP_DIR}/${NAME_NO_EXT})
|
||||||
|
MAKE_DIRECTORY(${TEMP_SUBDIR})
|
||||||
|
EXECUTE_PROCESS(
|
||||||
|
COMMAND ${CMAKE_AR} -x ${LIB}
|
||||||
|
WORKING_DIRECTORY ${TEMP_SUBDIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
FILE(GLOB_RECURSE LIB_OBJECTS "${TEMP_SUBDIR}/*")
|
||||||
|
SET(OBJECTS ${OBJECTS} ${LIB_OBJECTS})
|
||||||
|
ENDFOREACH()
|
||||||
|
|
||||||
|
# Use relative paths, makes command line shorter.
|
||||||
|
GET_FILENAME_COMPONENT(ABS_TEMP_DIR ${TEMP_DIR} ABSOLUTE)
|
||||||
|
FOREACH(OBJ ${OBJECTS})
|
||||||
|
FILE(RELATIVE_PATH OBJ ${ABS_TEMP_DIR} ${OBJ})
|
||||||
|
FILE(TO_NATIVE_PATH ${OBJ} OBJ)
|
||||||
|
SET(ALL_OBJECTS ${ALL_OBJECTS} ${OBJ})
|
||||||
|
ENDFOREACH()
|
||||||
|
|
||||||
|
FILE(TO_NATIVE_PATH ${TARGET_LOCATION} ${TARGET_LOCATION})
|
||||||
|
# Now pack the objects into library with ar.
|
||||||
|
EXECUTE_PROCESS(
|
||||||
|
COMMAND ${CMAKE_AR} -r ${TARGET_LOCATION} ${ALL_OBJECTS}
|
||||||
|
WORKING_DIRECTORY ${TEMP_DIR}
|
||||||
|
)
|
||||||
|
EXECUTE_PROCESS(
|
||||||
|
COMMAND ${CMAKE_RANLIB} ${TARGET_LOCATION}
|
||||||
|
WORKING_DIRECTORY ${TEMP_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
FILE(REMOVE_RECURSE ${TEMP_DIR})
|
128
cmake/misc.cmake
Normal file
128
cmake/misc.cmake
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
# Merge static libraries.
|
||||||
|
MACRO(MERGE_STATIC_LIBS TARGET OUTPUT_NAME LIBS_TO_MERGE)
|
||||||
|
# To produce a library we need at least one source file.
|
||||||
|
# It is created by ADD_CUSTOM_COMMAND below and will helps
|
||||||
|
# also help to track dependencies.
|
||||||
|
SET(SOURCE_FILE ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_depends.c)
|
||||||
|
ADD_LIBRARY(${TARGET} STATIC ${SOURCE_FILE})
|
||||||
|
SET_TARGET_PROPERTIES(${TARGET} PROPERTIES OUTPUT_NAME ${OUTPUT_NAME})
|
||||||
|
|
||||||
|
FOREACH(LIB ${LIBS_TO_MERGE})
|
||||||
|
GET_TARGET_PROPERTY(LIB_LOCATION ${LIB} LOCATION)
|
||||||
|
GET_TARGET_PROPERTY(LIB_TYPE ${LIB} TYPE)
|
||||||
|
IF(NOT LIB_LOCATION)
|
||||||
|
# 3rd party library like libz.so. Make sure that everything
|
||||||
|
# that links to our library links to this one as well.
|
||||||
|
TARGET_LINK_LIBRARIES(${TARGET} ${LIB})
|
||||||
|
ELSE()
|
||||||
|
# This is a target in current project
|
||||||
|
# (can be a static or shared lib)
|
||||||
|
IF(LIB_TYPE STREQUAL "STATIC_LIBRARY")
|
||||||
|
SET(STATIC_LIBS ${STATIC_LIBS} ${LIB_LOCATION})
|
||||||
|
ADD_DEPENDENCIES(${TARGET} ${LIB})
|
||||||
|
ELSE()
|
||||||
|
# This is a shared library our static lib depends on.
|
||||||
|
TARGET_LINK_LIBRARIES(${TARGET} ${LIB})
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
ENDFOREACH()
|
||||||
|
|
||||||
|
# Make the generated dummy source file depended on all static input
|
||||||
|
# libs. If input lib changes,the source file is touched
|
||||||
|
# which causes the desired effect (relink).
|
||||||
|
ADD_CUSTOM_COMMAND(
|
||||||
|
OUTPUT ${SOURCE_FILE}
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E touch ${SOURCE_FILE}
|
||||||
|
DEPENDS ${STATIC_LIBS})
|
||||||
|
|
||||||
|
IF(MSVC)
|
||||||
|
# To merge libs, just pass them to lib.exe command line.
|
||||||
|
SET(LINKER_EXTRA_FLAGS "")
|
||||||
|
FOREACH(LIB ${STATIC_LIBS})
|
||||||
|
SET(LINKER_EXTRA_FLAGS "${LINKER_EXTRA_FLAGS} ${LIB}")
|
||||||
|
ENDFOREACH()
|
||||||
|
SET_TARGET_PROPERTIES(${TARGET} PROPERTIES STATIC_LIBRARY_FLAGS
|
||||||
|
"${LINKER_EXTRA_FLAGS}")
|
||||||
|
ELSE()
|
||||||
|
GET_TARGET_PROPERTY(TARGET_LOCATION ${TARGET} LOCATION)
|
||||||
|
IF(APPLE)
|
||||||
|
# Use OSX's libtool to merge archives (ihandles universal
|
||||||
|
# binaries properly)
|
||||||
|
ADD_CUSTOM_COMMAND(TARGET ${TARGET} POST_BUILD
|
||||||
|
COMMAND rm ${TARGET_LOCATION}
|
||||||
|
COMMAND /usr/bin/libtool -static -o ${TARGET_LOCATION}
|
||||||
|
${STATIC_LIBS}
|
||||||
|
)
|
||||||
|
ELSE()
|
||||||
|
# Generic Unix, Cygwin or MinGW. In post-build step, call
|
||||||
|
# script, that extracts objects from archives with "ar x"
|
||||||
|
# and repacks them with "ar r"
|
||||||
|
SET(TARGET ${TARGET})
|
||||||
|
CONFIGURE_FILE(
|
||||||
|
${CMAKE_SOURCE_DIR}/cmake/merge_archives_unix.cmake.in
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/merge_archives_${TARGET}.cmake
|
||||||
|
@ONLY
|
||||||
|
)
|
||||||
|
ADD_CUSTOM_COMMAND(TARGET ${TARGET} POST_BUILD
|
||||||
|
COMMAND rm ${TARGET_LOCATION}
|
||||||
|
COMMAND ${CMAKE_COMMAND} -P
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/merge_archives_${TARGET}.cmake
|
||||||
|
)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
ENDMACRO()
|
||||||
|
|
||||||
|
# Convert static library to shared
|
||||||
|
MACRO(STATIC_TO_SHARED STATIC_LIB SHARED_LIB EXPORTS_FILE)
|
||||||
|
IF(NOT MSVC)
|
||||||
|
MESSAGE(FATAL_ERROR
|
||||||
|
"Cannot convert static ${STATIC_LIB} to shared ${TARGET} library."
|
||||||
|
)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
# Need one source file.
|
||||||
|
SET(SOURCE_FILE ${CMAKE_CURRENT_BINARY_DIR}/${SHARED_LIB}_dummy.c)
|
||||||
|
ADD_CUSTOM_COMMAND(
|
||||||
|
OUTPUT ${SOURCE_FILE}
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E touch ${SOURCE_FILE}
|
||||||
|
)
|
||||||
|
|
||||||
|
ADD_LIBRARY(${SHARED_LIB} SHARED ${SOURCE_FILE} ${EXPORTS_FILE})
|
||||||
|
TARGET_LINK_LIBRARIES(${SHARED_LIB} ${STATIC_LIB})
|
||||||
|
ENDMACRO()
|
||||||
|
|
||||||
|
MACRO(SET_TARGET_SOURCEDIR TARGET)
|
||||||
|
SET(${TARGET}_SOURCEDIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE INTERNAL "source directory for a target")
|
||||||
|
ENDMACRO()
|
||||||
|
|
||||||
|
# Handy macro to use when source projects maybe used somewhere else
|
||||||
|
# For example, embedded or client library may recompile mysys sources
|
||||||
|
# In such cases, using absolute names in ADD_LIBRARY has the advantage that
|
||||||
|
# GET_TARGET_PROPERTY(xxx SOURCES) also returns absolute names, so there is
|
||||||
|
# no need to know the base directory of a target.
|
||||||
|
MACRO(USE_ABSOLUTE_FILENAMES FILELIST)
|
||||||
|
# Use absolute file paths for sources
|
||||||
|
# It helps when building embedded where we need to
|
||||||
|
# sources files for the plugin to recompile.
|
||||||
|
SET(RESOLVED_PATHS)
|
||||||
|
FOREACH(FILE ${${FILELIST}})
|
||||||
|
GET_FILENAME_COMPONENT(ABSOLUTE_PATH ${FILE} ABSOLUTE)
|
||||||
|
LIST(APPEND RESOLVED_PATHS ${ABSOLUTE_PATH})
|
||||||
|
ENDFOREACH()
|
||||||
|
SET(${FILELIST} ${RESOLVED_PATHS})
|
||||||
|
ENDMACRO()
|
142
cmake/mysql_version.cmake
Normal file
142
cmake/mysql_version.cmake
Normal file
@ -0,0 +1,142 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
# Read value for a variable from configure.in
|
||||||
|
|
||||||
|
MACRO(MYSQL_GET_CONFIG_VALUE keyword var)
|
||||||
|
IF(NOT ${var})
|
||||||
|
IF (EXISTS ${CMAKE_SOURCE_DIR}/configure.in)
|
||||||
|
FILE (STRINGS ${CMAKE_SOURCE_DIR}/configure.in str REGEX "^[ ]*${keyword}=")
|
||||||
|
IF(str)
|
||||||
|
STRING(REPLACE "${keyword}=" "" str ${str})
|
||||||
|
STRING(REGEX REPLACE "[ ].*" "" str ${str})
|
||||||
|
SET(${var} ${str} CACHE INTERNAL "Config variable")
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
ENDMACRO()
|
||||||
|
|
||||||
|
|
||||||
|
# Read mysql version for configure script
|
||||||
|
|
||||||
|
MACRO(GET_MYSQL_VERSION)
|
||||||
|
|
||||||
|
IF(NOT VERSION_STRING)
|
||||||
|
IF(EXISTS ${CMAKE_SOURCE_DIR}/configure.in)
|
||||||
|
FILE(STRINGS ${CMAKE_SOURCE_DIR}/configure.in str REGEX "AM_INIT_AUTOMAKE")
|
||||||
|
STRING(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+[-][^ \\)]+" VERSION_STRING "${str}")
|
||||||
|
IF(NOT VERSION_STRING)
|
||||||
|
FILE(STRINGS configure.in str REGEX "AC_INIT\\(")
|
||||||
|
STRING(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+[-][^ \\]]+" VERSION_STRING "${str}")
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(NOT VERSION_STRING)
|
||||||
|
MESSAGE(FATAL_ERROR
|
||||||
|
"VERSION_STRING cannot be parsed, please specify -DVERSION_STRING=major.minor.patch-extra"
|
||||||
|
"when calling cmake")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
SET(VERSION ${VERSION_STRING})
|
||||||
|
|
||||||
|
STRING(REGEX REPLACE "([0-9]+)\\.[0-9]+\\.[0-9]+[^ ]+" "\\1" MAJOR_VERSION "${VERSION_STRING}")
|
||||||
|
STRING(REGEX REPLACE "[0-9]+\\.([0-9]+)\\.[0-9]+[^ ]+" "\\1" MINOR_VERSION "${VERSION_STRING}")
|
||||||
|
STRING(REGEX REPLACE "[0-9]+\\.[0-9]+\\.([0-9]+)[^ ]+" "\\1" PATCH "${VERSION_STRING}")
|
||||||
|
SET(MYSQL_BASE_VERSION "${MAJOR_VERSION}.${MINOR_VERSION}" CACHE INTERNAL "MySQL Base version")
|
||||||
|
SET(MYSQL_NO_DASH_VERSION "${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH}")
|
||||||
|
MATH(EXPR MYSQL_VERSION_ID "10000*${MAJOR_VERSION} + 100*${MINOR_VERSION} + ${PATCH}")
|
||||||
|
MARK_AS_ADVANCED(VERSION MYSQL_VERSION_ID MYSQL_BASE_VERSION)
|
||||||
|
SET(CPACK_PACKAGE_VERSION_MAJOR ${MAJOR_VERSION})
|
||||||
|
SET(CPACK_PACKAGE_VERSION_MINOR ${MINOR_VERSION})
|
||||||
|
SET(CPACK_PACKAGE_VERSION_PATCH ${PATCH})
|
||||||
|
ENDMACRO()
|
||||||
|
|
||||||
|
# Get mysql version and other interesting variables
|
||||||
|
GET_MYSQL_VERSION()
|
||||||
|
|
||||||
|
MYSQL_GET_CONFIG_VALUE("PROTOCOL_VERSION" PROTOCOL_VERSION)
|
||||||
|
MYSQL_GET_CONFIG_VALUE("DOT_FRM_VERSION" DOT_FRM_VERSION)
|
||||||
|
MYSQL_GET_CONFIG_VALUE("MYSQL_TCP_PORT_DEFAULT" MYSQL_TCP_PORT_DEFAULT)
|
||||||
|
MYSQL_GET_CONFIG_VALUE("MYSQL_UNIX_ADDR_DEFAULT" MYSQL_UNIX_ADDR_DEFAULT)
|
||||||
|
MYSQL_GET_CONFIG_VALUE("SHARED_LIB_MAJOR_VERSION" SHARED_LIB_MAJOR_VERSION)
|
||||||
|
IF(NOT MYSQL_TCP_PORT_DEFAULT)
|
||||||
|
SET(MYSQL_TCP_PORT_DEFAULT "3306")
|
||||||
|
ENDIF()
|
||||||
|
IF(NOT MYSQL_TCP_PORT)
|
||||||
|
SET(MYSQL_TCP_PORT ${MYSQL_TCP_PORT_DEFAULT})
|
||||||
|
SET(MYSQL_TCP_PORT_DEFAULT "0")
|
||||||
|
ENDIF()
|
||||||
|
IF(NOT MYSQL_UNIX_ADDR)
|
||||||
|
SET(MYSQL_UNIX_ADDR "/tmp/mysql.sock")
|
||||||
|
ENDIF()
|
||||||
|
IF(NOT COMPILATION_COMMENT)
|
||||||
|
SET(COMPILATION_COMMENT "Source distribution")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Use meaningful package name for the binary package
|
||||||
|
IF(NOT CPACK_PACKAGE_FILE_NAME)
|
||||||
|
IF( NOT SYSTEM_NAME_AND_PROCESSOR)
|
||||||
|
IF(WIN32)
|
||||||
|
# CMake does not set CMAKE_SYSTEM_PROCESSOR correctly on Win64
|
||||||
|
# (uses x86). Besides, we try to be compatible with existing naming
|
||||||
|
IF(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||||
|
SET(SYSTEM_NAME_AND_PROCESSOR "winx64")
|
||||||
|
ELSE()
|
||||||
|
SET(SYSTEM_NAME_AND_PROCESSOR "win32")
|
||||||
|
ENDIF()
|
||||||
|
ELSE()
|
||||||
|
IF(NOT PLATFORM)
|
||||||
|
SET(PLATFORM ${CMAKE_SYSTEM_NAME})
|
||||||
|
ENDIF()
|
||||||
|
IF(NOT MACHINE)
|
||||||
|
SET(MACHINE ${CMAKE_SYSTEM_PROCESSOR})
|
||||||
|
IF(CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT ${MACHINE} MATCHES "ia64")
|
||||||
|
# On almost every 64 bit machine (except IA64) it is possible
|
||||||
|
# to build 32 bit packages. Add -64bit suffix to differentiate
|
||||||
|
# between 32 and 64 bit packages.
|
||||||
|
SET(MACHINE ${MACHINE}-64bit)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
SET(SYSTEM_NAME_AND_PROCESSOR "${PLATFORM}-${MACHINE}")
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
SET(package_name "mysql-${VERSION}-${SYSTEM_NAME_AND_PROCESSOR}" )
|
||||||
|
# Sometimes package suffix is added (something like icc-glibc23)
|
||||||
|
IF(PACKAGE_SUFFIX)
|
||||||
|
SET(package_name "${package_name}-${PACKAGE_SUFFIX}")
|
||||||
|
ENDIF()
|
||||||
|
STRING(TOLOWER ${package_name} package_name)
|
||||||
|
SET(CPACK_PACKAGE_FILE_NAME ${package_name})
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(NOT CPACK_SOURCE_PACKAGE_FILE_NAME)
|
||||||
|
SET(CPACK_SOURCE_PACKAGE_FILE_NAME "mysql-${VERSION}")
|
||||||
|
ENDIF()
|
||||||
|
SET(CPACK_PACKAGE_VENDOR "Sun Microsystems")
|
||||||
|
SET(CPACK_SOURCE_GENERATOR "TGZ")
|
||||||
|
SET(CPACK_SOURCE_IGNORE_FILES
|
||||||
|
\\\\.bzr/
|
||||||
|
\\\\.bzr-mysql
|
||||||
|
.bzrignore
|
||||||
|
CMakeCache.txt
|
||||||
|
/CMakeFiles/
|
||||||
|
/_CPack_Packages/
|
||||||
|
$.gz
|
||||||
|
$.zip
|
||||||
|
)
|
171
cmake/plugin.cmake
Normal file
171
cmake/plugin.cmake
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
# Creates a project to build plugin either as static or shared library
|
||||||
|
# Parameters:
|
||||||
|
# plugin - storage engine name.
|
||||||
|
# variable BUILD_TYPE should be set to "STATIC" or "DYNAMIC"
|
||||||
|
# Remarks:
|
||||||
|
# ${PLUGIN}_SOURCES variable containing source files to produce the
|
||||||
|
# library must set before calling this macro
|
||||||
|
|
||||||
|
MACRO(MYSQL_PLUGIN plugin)
|
||||||
|
# Add common include directories
|
||||||
|
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
|
||||||
|
${CMAKE_SOURCE_DIR}/sql
|
||||||
|
${CMAKE_SOURCE_DIR}/regex
|
||||||
|
${SSL_INCLUDE_DIRS}
|
||||||
|
${ZLIB_INCLUDE_DIR})
|
||||||
|
|
||||||
|
STRING(TOUPPER ${plugin} plugin)
|
||||||
|
STRING(TOLOWER ${plugin} target)
|
||||||
|
|
||||||
|
IF(NOT ${plugin}_PLUGIN_STATIC AND NOT ${plugin}_PLUGIN_DYNAMIC)
|
||||||
|
MESSAGE(FATAL_ERROR
|
||||||
|
"Neither ${plugin}_PLUGIN_STATIC nor ${plugin}_PLUGIN_DYNAMIC is defined.
|
||||||
|
Please set at least one of these variables to the name of the output
|
||||||
|
library in CMakeLists.txt prior to calling MYSQL_PLUGIN"
|
||||||
|
)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(WITH_PLUGIN_${plugin})
|
||||||
|
SET(WITH_${plugin} 1)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(WITH_${plugin}_STORAGE_ENGINE OR WITH_{$plugin} OR WITH_ALL
|
||||||
|
OR WITH_MAX AND NOT WITHOUT_${plugin}_STORAGE_ENGINE AND NOT
|
||||||
|
WITHOUT_${plugin})
|
||||||
|
SET(WITH_${plugin} 1)
|
||||||
|
ELSEIF(WITHOUT_${plugin}_STORAGE_ENGINE OR WITH_NONE OR ${plugin}_DISABLED)
|
||||||
|
SET(WITHOUT_${plugin} 1)
|
||||||
|
SET(WITH_${plugin}_STORAGE_ENGINE 0)
|
||||||
|
SET(WITH_${plugin} 0)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(${plugin}_PLUGIN_MANDATORY)
|
||||||
|
SET(WITH_${plugin} 1)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(${plugin} MATCHES NDBCLUSTER AND WITH_MAX_NO_NDB)
|
||||||
|
SET(WITH_${plugin} 0)
|
||||||
|
SET(WITH_${plugin}_STORAGE_ENGINE 0)
|
||||||
|
SET(WITHOUT_${plugin} 1)
|
||||||
|
SET(WITHOUT_${plugin}_STORAGE_ENGINE 0)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(STORAGE_ENGINE)
|
||||||
|
SET(with_var "WITH_${plugin}_STORAGE_ENGINE" )
|
||||||
|
ELSE()
|
||||||
|
SET(with_var "WITH_${plugin}")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
|
||||||
|
USE_ABSOLUTE_FILENAMES(${plugin}_SOURCES)
|
||||||
|
|
||||||
|
IF (WITH_${plugin} AND ${plugin}_PLUGIN_STATIC)
|
||||||
|
ADD_DEFINITIONS(-DMYSQL_SERVER)
|
||||||
|
#Create static library.
|
||||||
|
ADD_LIBRARY(${target} ${${plugin}_SOURCES})
|
||||||
|
DTRACE_INSTRUMENT(${target})
|
||||||
|
ADD_DEPENDENCIES(${target} GenError)
|
||||||
|
IF(${plugin}_LIBS)
|
||||||
|
TARGET_LINK_LIBRARIES(${target} ${${plugin}_LIBS})
|
||||||
|
ENDIF()
|
||||||
|
SET_TARGET_PROPERTIES(${target} PROPERTIES
|
||||||
|
OUTPUT_NAME "${${plugin}_PLUGIN_STATIC}")
|
||||||
|
# Update mysqld dependencies
|
||||||
|
SET (MYSQLD_STATIC_PLUGIN_LIBS ${MYSQLD_STATIC_PLUGIN_LIBS}
|
||||||
|
${target} PARENT_SCOPE)
|
||||||
|
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_${target}_plugin"
|
||||||
|
PARENT_SCOPE)
|
||||||
|
SET(${with_var} ON CACHE BOOL "Link ${plugin} statically to the server"
|
||||||
|
FORCE)
|
||||||
|
ELSEIF(NOT WITHOUT_${plugin} AND ${plugin}_PLUGIN_DYNAMIC
|
||||||
|
AND NOT WITHOUT_DYNAMIC_PLUGINS)
|
||||||
|
|
||||||
|
# Create a shared module.
|
||||||
|
ADD_DEFINITIONS(-DMYSQL_DYNAMIC_PLUGIN)
|
||||||
|
ADD_LIBRARY(${target} MODULE ${${plugin}_SOURCES})
|
||||||
|
IF(${plugin}_LIBS)
|
||||||
|
TARGET_LINK_LIBRARIES(${target} ${${plugin}_LIBS})
|
||||||
|
ENDIF()
|
||||||
|
DTRACE_INSTRUMENT(${target})
|
||||||
|
SET_TARGET_PROPERTIES (${target} PROPERTIES PREFIX "")
|
||||||
|
TARGET_LINK_LIBRARIES (${target} mysqlservices)
|
||||||
|
|
||||||
|
# Plugin uses symbols defined in mysqld executable.
|
||||||
|
# Some operating systems like Windows and OSX and are pretty strict about
|
||||||
|
# unresolved symbols. Others are less strict and allow unresolved symbols
|
||||||
|
# in shared libraries. On Linux for example, CMake does not even add
|
||||||
|
# executable to the linker command line (it would result into link error).
|
||||||
|
# Thus we skip TARGET_LINK_LIBRARIES on Linux, as it would only generate
|
||||||
|
# an additional dependency.
|
||||||
|
IF(NOT CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||||
|
TARGET_LINK_LIBRARIES (${target} mysqld)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
ADD_DEPENDENCIES(${target} GenError)
|
||||||
|
|
||||||
|
IF(${plugin}_PLUGIN_DYNAMIC)
|
||||||
|
SET_TARGET_PROPERTIES(${target} PROPERTIES
|
||||||
|
OUTPUT_NAME "${${plugin}_PLUGIN_DYNAMIC}")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
# Update cache "WITH" variable for plugins that support static linking
|
||||||
|
IF(${plugin}_PLUGIN_STATIC)
|
||||||
|
SET(${with_var} OFF CACHE BOOL "Link ${plugin} statically to the server"
|
||||||
|
FORCE)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
# Install dynamic library
|
||||||
|
SET(INSTALL_LOCATION lib/plugin)
|
||||||
|
INSTALL(TARGETS ${target} DESTINATION ${INSTALL_LOCATION})
|
||||||
|
INSTALL_DEBUG_SYMBOLS(${target})
|
||||||
|
ELSE()
|
||||||
|
IF(STORAGE_ENGINE)
|
||||||
|
SET(without_var "WITHOUT_${plugin}_STORAGE_ENGINE")
|
||||||
|
ELSE()
|
||||||
|
SET(without_var "WITHOUT_${plugin}")
|
||||||
|
ENDIF()
|
||||||
|
SET(${without_var} ON CACHE BOOL "Link ${plugin} statically to the server"
|
||||||
|
FORCE)
|
||||||
|
MARK_AS_ADVANCED(${without_var})
|
||||||
|
ENDIF()
|
||||||
|
ENDMACRO()
|
||||||
|
|
||||||
|
MACRO (MYSQL_STORAGE_ENGINE engine)
|
||||||
|
SET(STORAGE_ENGINE 1)
|
||||||
|
MYSQL_PLUGIN(${engine})
|
||||||
|
ENDMACRO()
|
||||||
|
|
||||||
|
# Add all CMake projects under storage and plugin
|
||||||
|
# subdirectories, configure sql_builtins.cc
|
||||||
|
MACRO(CONFIGURE_PLUGINS)
|
||||||
|
FILE(GLOB dirs_storage ${CMAKE_SOURCE_DIR}/storage/*)
|
||||||
|
FILE(GLOB dirs_plugin ${CMAKE_SOURCE_DIR}/plugin/*)
|
||||||
|
FOREACH(dir ${dirs_storage} ${dirs_plugin})
|
||||||
|
IF (EXISTS ${dir}/CMakeLists.txt)
|
||||||
|
ADD_SUBDIRECTORY(${dir})
|
||||||
|
ENDIF()
|
||||||
|
ENDFOREACH()
|
||||||
|
# Special handling for partition(not really pluggable)
|
||||||
|
IF(NOT WITHOUT_PARTITION_STORAGE_ENGINE)
|
||||||
|
SET (WITH_PARTITION_STORAGE_ENGINE 1)
|
||||||
|
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_partition_plugin")
|
||||||
|
ENDIF(NOT WITHOUT_PARTITION_STORAGE_ENGINE)
|
||||||
|
ADD_DEFINITIONS(${STORAGE_ENGINE_DEFS})
|
||||||
|
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc.in
|
||||||
|
${CMAKE_BINARY_DIR}/sql/sql_builtin.cc)
|
||||||
|
ENDMACRO()
|
197
cmake/readline.cmake
Normal file
197
cmake/readline.cmake
Normal file
@ -0,0 +1,197 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
MACRO(SET_WITH_BUNDLED_READLINE option)
|
||||||
|
IF(option)
|
||||||
|
SET(not_option OFF)
|
||||||
|
ELSE()
|
||||||
|
SET(not_option ON)
|
||||||
|
ENDIF()
|
||||||
|
SET(WITH_READLINE ${option} CACHE BOOL "Use bundled readline")
|
||||||
|
SET(WITH_LIBEDIT ${not_option} CACHE BOOL "Use bundled libedit")
|
||||||
|
ENDMACRO()
|
||||||
|
|
||||||
|
MACRO (MYSQL_CHECK_MULTIBYTE)
|
||||||
|
CHECK_INCLUDE_FILE(wctype.h HAVE_WCTYPE_H)
|
||||||
|
CHECK_INCLUDE_FILE(wchar.h HAVE_WCHAR_H)
|
||||||
|
IF(HAVE_WCHAR_H)
|
||||||
|
SET(CMAKE_EXTRA_INCLUDE_FILES wchar.h)
|
||||||
|
CHECK_TYPE_SIZE(mbstate_t SIZEOF_MBSTATE_T)
|
||||||
|
SET(CMAKE_EXTRA_INCLUDE_FILES)
|
||||||
|
IF(SIZEOF_MBSTATE_T)
|
||||||
|
SET(HAVE_MBSTATE_T 1)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
CHECK_C_SOURCE_COMPILES("
|
||||||
|
#include <langinfo.h>
|
||||||
|
int main(int ac, char **av)
|
||||||
|
{
|
||||||
|
char *cs = nl_langinfo(CODESET);
|
||||||
|
return 0;
|
||||||
|
}"
|
||||||
|
HAVE_LANGINFO_CODESET)
|
||||||
|
|
||||||
|
CHECK_FUNCTION_EXISTS(mbrlen HAVE_MBRLEN)
|
||||||
|
CHECK_FUNCTION_EXISTS(mbscmp HAVE_MBSCMP)
|
||||||
|
CHECK_FUNCTION_EXISTS(mbsrtowcs HAVE_MBSRTOWCS)
|
||||||
|
CHECK_FUNCTION_EXISTS(wcrtomb HAVE_WCRTOMB)
|
||||||
|
CHECK_FUNCTION_EXISTS(mbrtowc HAVE_MBRTOWC)
|
||||||
|
CHECK_FUNCTION_EXISTS(wcscoll HAVE_WCSCOLL)
|
||||||
|
CHECK_FUNCTION_EXISTS(wcsdup HAVE_WCSDUP)
|
||||||
|
CHECK_FUNCTION_EXISTS(wcwidth HAVE_WCWIDTH)
|
||||||
|
CHECK_FUNCTION_EXISTS(wctype HAVE_WCTYPE)
|
||||||
|
CHECK_FUNCTION_EXISTS(iswlower HAVE_ISWLOWER)
|
||||||
|
CHECK_FUNCTION_EXISTS(iswupper HAVE_ISWUPPER)
|
||||||
|
CHECK_FUNCTION_EXISTS(towlower HAVE_TOWLOWER)
|
||||||
|
CHECK_FUNCTION_EXISTS(towupper HAVE_TOWUPPER)
|
||||||
|
CHECK_FUNCTION_EXISTS(iswctype HAVE_ISWCTYPE)
|
||||||
|
|
||||||
|
SET(CMAKE_EXTRA_INCLUDE_FILES wchar.h)
|
||||||
|
CHECK_TYPE_SIZE(wchar_t SIZEOF_WCHAR_T)
|
||||||
|
IF(SIZEOF_WCHAR_T)
|
||||||
|
SET(HAVE_WCHAR_T 1)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
SET(CMAKE_EXTRA_INCLUDE_FILES wctype.h)
|
||||||
|
CHECK_TYPE_SIZE(wctype_t SIZEOF_WCTYPE_T)
|
||||||
|
IF(SIZEOF_WCTYPE_T)
|
||||||
|
SET(HAVE_WCTYPE_T 1)
|
||||||
|
ENDIF()
|
||||||
|
CHECK_TYPE_SIZE(wint_t SIZEOF_WINT_T)
|
||||||
|
IF(SIZEOF_WINT_T)
|
||||||
|
SET(HAVE_WINT_T 1)
|
||||||
|
ENDIF()
|
||||||
|
SET(CMAKE_EXTRA_INCLUDE_FILES)
|
||||||
|
|
||||||
|
ENDMACRO()
|
||||||
|
|
||||||
|
MACRO (FIND_CURSES)
|
||||||
|
INCLUDE (FindCurses)
|
||||||
|
MARK_AS_ADVANCED(CURSES_CURSES_H_PATH CURSES_FORM_LIBRARY CURSES_HAVE_CURSES_H)
|
||||||
|
IF(NOT CURSES_FOUND)
|
||||||
|
MESSAGE(FATAL_ERROR "curses library not found")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(CURSES_HAVE_CURSES_H)
|
||||||
|
SET(HAVE_CURSES_H 1 CACHE INTERNAL "")
|
||||||
|
ELSEIF(CURSES_HAVE_NCURSES_H)
|
||||||
|
SET(HAVE_NCURSES_H 1 CACHE INTERNAL "")
|
||||||
|
ENDIF()
|
||||||
|
IF(CMAKE_SYSTEM_NAME MATCHES "HP")
|
||||||
|
# CMake uses full path to library /lib/libcurses.sl
|
||||||
|
# On Itanium, it results into architecture mismatch+
|
||||||
|
# the library is for PA-RISC
|
||||||
|
SET(CURSES_LIBRARY "curses" CACHE INTERNAL "" FORCE)
|
||||||
|
SET(CURSES_CURSES_LIBRARY "curses" CACHE INTERNAL "" FORCE)
|
||||||
|
ENDIF()
|
||||||
|
ENDMACRO()
|
||||||
|
|
||||||
|
MACRO (MYSQL_USE_BUNDLED_READLINE)
|
||||||
|
SET_WITH_BUNDLED_READLINE(ON)
|
||||||
|
SET(USE_NEW_READLINE_INTERFACE 1)
|
||||||
|
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_WITH_BUNDLED_READLINE(OFF)
|
||||||
|
SET(USE_LIBEDIT_INTERFACE 1 CACHE INTERNAL "")
|
||||||
|
SET(HAVE_HIST_ENTRY 1 CACHE INTERNAL "")
|
||||||
|
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)
|
||||||
|
FIND_PATH(SYSTEM_READLINE_INCLUDE_DIR readline/readline.h )
|
||||||
|
FIND_LIBRARY(SYSTEM_READLINE_LIBRARY NAMES ${name})
|
||||||
|
MARK_AS_ADVANCED(SYSTEM_READLINE_INCLUDE_DIR SYSTEM_READLINE_LIBRARY)
|
||||||
|
|
||||||
|
INCLUDE(CheckCXXSourceCompiles)
|
||||||
|
SET(CMAKE_REQUIRES_LIBRARIES ${SYSTEM_READLINE_LIBRARY})
|
||||||
|
|
||||||
|
IF(SYSTEM_READLINE_LIBRARY AND SYSTEM_READLINE_INCLUDE_DIR)
|
||||||
|
SET(SYSTEM_READLINE_FOUND 1)
|
||||||
|
SET(CMAKE_REQUIRED_LIBRARIES ${SYSTEM_READLINE_LIBRARY})
|
||||||
|
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)
|
||||||
|
|
||||||
|
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);
|
||||||
|
}"
|
||||||
|
USE_LIBEDIT_INTERFACE)
|
||||||
|
|
||||||
|
|
||||||
|
CHECK_CXX_SOURCE_COMPILES("
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <readline/readline.h>
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
rl_completion_func_t *func1= (rl_completion_func_t*)0;
|
||||||
|
rl_compentry_func_t *func2= (rl_compentry_func_t*)0;
|
||||||
|
}"
|
||||||
|
USE_NEW_READLINE_INTERFACE)
|
||||||
|
|
||||||
|
IF(USE_LIBEDIT_INTERFACE OR USE_NEW_READLINE_INTERFACE)
|
||||||
|
SET(READLINE_LIBRARY ${SYSTEM_READLINE_LIBRARY})
|
||||||
|
SET(READLINE_INCLUDE_DIR ${SYSTEM_READLINE_INCLUDE_DIR})
|
||||||
|
SET(READLINE_FOUND 1)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
ENDMACRO()
|
||||||
|
|
||||||
|
MACRO (MYSQL_CHECK_READLINE)
|
||||||
|
IF (NOT WIN32)
|
||||||
|
MYSQL_CHECK_MULTIBYTE()
|
||||||
|
OPTION(WITH_READLINE "Use bundled readline" OFF)
|
||||||
|
IF(NOT CYGWIN)
|
||||||
|
# Bundled libedit does not compile on cygwin
|
||||||
|
OPTION(WITH_LIBEDIT "Use bundled libedit" ON)
|
||||||
|
ELSE()
|
||||||
|
OPTION(WITH_LIBEDIT "Use bundled libedit" OFF)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(WITH_READLINE)
|
||||||
|
MYSQL_USE_BUNDLED_READLINE()
|
||||||
|
ELSEIF(WITH_LIBEDIT)
|
||||||
|
MYSQL_USE_BUNDLED_LIBEDIT()
|
||||||
|
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")
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
ENDIF(NOT WIN32)
|
||||||
|
ENDMACRO()
|
||||||
|
|
88
cmake/ssl.cmake
Normal file
88
cmake/ssl.cmake
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
MACRO (CHANGE_SSL_SETTINGS string)
|
||||||
|
SET(WITH_SSL ${string} CACHE STRING "Options are : no, bundled, yes (prefer os library if present otherwise use bundled), system (use os library)" FORCE)
|
||||||
|
ENDMACRO()
|
||||||
|
|
||||||
|
MACRO (MYSQL_USE_BUNDLED_SSL)
|
||||||
|
SET(INC_DIRS
|
||||||
|
${CMAKE_SOURCE_DIR}/extra/yassl/include
|
||||||
|
${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/include
|
||||||
|
)
|
||||||
|
SET(SSL_LIBRARIES yassl taocrypt)
|
||||||
|
SET(SSL_INCLUDE_DIRS ${INC_DIRS})
|
||||||
|
SET(SSL_INTERNAL_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/mySTL)
|
||||||
|
SET(SSL_DEFINES "-DHAVE_YASSL -DYASSL_PURE_C -DYASSL_PREFIX -DHAVE_OPENSSL")
|
||||||
|
CHANGE_SSL_SETTINGS("bundled")
|
||||||
|
#Remove -fno-implicit-templates
|
||||||
|
#(yassl sources cannot be compiled with it)
|
||||||
|
SET(SAVE_CXX_FLAGS ${CXX_FLAGS})
|
||||||
|
STRING(REPLACE "-fno-implicit-templates" "" CMAKE_CXX_FLAGS
|
||||||
|
${CMAKE_CXX_FLAGS})
|
||||||
|
ADD_SUBDIRECTORY(extra/yassl)
|
||||||
|
ADD_SUBDIRECTORY(extra/yassl/taocrypt)
|
||||||
|
SET(CXX_FLAGS ${SAVE_CXX_FLAGS})
|
||||||
|
GET_TARGET_PROPERTY(src yassl SOURCES)
|
||||||
|
FOREACH(file ${src})
|
||||||
|
SET(SSL_SOURCES ${SSL_SOURCES} ${CMAKE_SOURCE_DIR}/extra/yassl/${file})
|
||||||
|
ENDFOREACH()
|
||||||
|
GET_TARGET_PROPERTY(src taocrypt SOURCES)
|
||||||
|
FOREACH(file ${src})
|
||||||
|
SET(SSL_SOURCES ${SSL_SOURCES} ${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/${file})
|
||||||
|
ENDFOREACH()
|
||||||
|
ENDMACRO()
|
||||||
|
|
||||||
|
# MYSQL_CHECK_SSL
|
||||||
|
#
|
||||||
|
# Provides the following configure options:
|
||||||
|
# WITH_SSL=[yes|no|bundled]
|
||||||
|
MACRO (MYSQL_CHECK_SSL)
|
||||||
|
IF(NOT WITH_SSL)
|
||||||
|
IF(WIN32)
|
||||||
|
CHANGE_SSL_SETTINGS("bundled")
|
||||||
|
ELSE()
|
||||||
|
CHANGE_SSL_SETTINGS("no")
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(WITH_SSL STREQUAL "bundled")
|
||||||
|
MYSQL_USE_BUNDLED_SSL()
|
||||||
|
ELSEIF(WITH_SSL STREQUAL "system" OR WITH_SSL STREQUAL "yes")
|
||||||
|
# Check for system library
|
||||||
|
SET(OPENSSL_FIND_QUIETLY TRUE)
|
||||||
|
INCLUDE(FindOpenSSL)
|
||||||
|
FIND_LIBRARY(CRYPTO_LIBRARY crypto)
|
||||||
|
MARK_AS_ADVANCED(CRYPTO_LIBRARY)
|
||||||
|
INCLUDE(CheckSymbolExists)
|
||||||
|
CHECK_SYMBOL_EXISTS(SHA512_DIGEST_LENGTH "openssl/sha.h"
|
||||||
|
HAVE_SHA512_DIGEST_LENGTH)
|
||||||
|
IF(OPENSSL_FOUND AND CRYPTO_LIBRARY AND HAVE_SHA512_DIGEST_LENGTH)
|
||||||
|
SET(SSL_SOURCES "")
|
||||||
|
SET(SSL_LIBRARIES ${OPENSSL_LIBRARIES} ${CRYPTO_LIBRARY})
|
||||||
|
SET(SSL_INCLUDE_DIRS ${OPENSSL_INCLUDE_DIR})
|
||||||
|
SET(SSL_INTERNAL_INCLUDE_DIRS "")
|
||||||
|
SET(SSL_DEFINES "-DHAVE_OPENSSL")
|
||||||
|
CHANGE_SSL_SETTINGS("system")
|
||||||
|
ELSE()
|
||||||
|
IF(WITH_SSL STREQUAL "system")
|
||||||
|
MESSAGE(SEND_ERROR "Cannot find appropriate system libraries for SSL. Use WITH_SSL=bundled to enable SSL support")
|
||||||
|
ENDIF()
|
||||||
|
MYSQL_USE_BUNDLED_SSL()
|
||||||
|
ENDIF()
|
||||||
|
ELSEIF(NOT WITH_SSL STREQUAL "no")
|
||||||
|
MESSAGE(SEND_ERROR "Wrong option for WITH_SSL. Valid values are : yes, no, bundled")
|
||||||
|
ENDIF()
|
||||||
|
ENDMACRO()
|
31
cmake/stack_direction.c
Normal file
31
cmake/stack_direction.c
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
/* Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; version 2 of the License.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
|
||||||
|
|
||||||
|
/* Check stack direction (0-down, 1-up) */
|
||||||
|
int f(int *a)
|
||||||
|
{
|
||||||
|
int b;
|
||||||
|
return(&b > a)?1:0;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
Prevent compiler optimizations by calling function
|
||||||
|
through pointer.
|
||||||
|
*/
|
||||||
|
volatile int (*ptr_f)(int *) = f;
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int a;
|
||||||
|
return ptr_f(&a);
|
||||||
|
}
|
73
cmake/zlib.cmake
Normal file
73
cmake/zlib.cmake
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
MACRO (MYSQL_USE_BUNDLED_ZLIB)
|
||||||
|
SET(ZLIB_LIBRARY zlib)
|
||||||
|
SET(ZLIB_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/zlib)
|
||||||
|
SET(ZLIB_FOUND TRUE)
|
||||||
|
SET(WITH_ZLIB "bundled" CACHE STRING "Use bundled zlib")
|
||||||
|
ADD_SUBDIRECTORY(zlib)
|
||||||
|
GET_TARGET_PROPERTY(src zlib SOURCES)
|
||||||
|
FOREACH(file ${src})
|
||||||
|
SET(ZLIB_SOURCES ${ZLIB_SOURCES} ${CMAKE_SOURCE_DIR}/zlib/${file})
|
||||||
|
ENDFOREACH()
|
||||||
|
ENDMACRO()
|
||||||
|
|
||||||
|
# MYSQL_CHECK_ZLIB_WITH_COMPRESS
|
||||||
|
#
|
||||||
|
# Provides the following configure options:
|
||||||
|
# WITH_ZLIB_BUNDLED
|
||||||
|
# If this is set,we use bindled zlib
|
||||||
|
# If this is not set,search for system zlib.
|
||||||
|
# if system zlib is not found, use bundled copy
|
||||||
|
# ZLIB_LIBRARIES, ZLIB_INCLUDE_DIR and ZLIB_SOURCES
|
||||||
|
# are set after this macro has run
|
||||||
|
|
||||||
|
MACRO (MYSQL_CHECK_ZLIB_WITH_COMPRESS)
|
||||||
|
|
||||||
|
IF(CMAKE_SYSTEM_NAME STREQUAL "OS400" OR
|
||||||
|
CMAKE_SYSTEM_NAME STREQUAL "AIX" OR
|
||||||
|
CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||||
|
# Use bundled zlib on some platforms by default (system one is too
|
||||||
|
# old or not existent)
|
||||||
|
IF (NOT WITH_ZLIB)
|
||||||
|
SET(WITH_ZLIB "bundled" CACHE STRING "By default use bundled zlib on this platform")
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(WITH_ZLIB STREQUAL "bundled")
|
||||||
|
MYSQL_USE_BUNDLED_ZLIB()
|
||||||
|
ELSE()
|
||||||
|
SET(ZLIB_FIND_QUIETLY TRUE)
|
||||||
|
INCLUDE(FindZLIB)
|
||||||
|
IF(ZLIB_FOUND)
|
||||||
|
INCLUDE(CheckFunctionExists)
|
||||||
|
SET(CMAKE_REQUIRED_LIBRARIES z)
|
||||||
|
CHECK_FUNCTION_EXISTS(crc32 HAVE_CRC32)
|
||||||
|
SET(CMAKE_REQUIRED_LIBRARIES)
|
||||||
|
IF(HAVE_CRC32)
|
||||||
|
SET(ZLIB_LIBRARY z CACHE INTERNAL "System zlib library")
|
||||||
|
SET(WITH_ZLIB "system" CACHE STRING "Which zlib to use (possible values are 'bundled' or 'system')")
|
||||||
|
SET(ZLIB_SOURCES "")
|
||||||
|
ELSE()
|
||||||
|
SET(ZLIB_FOUND FALSE CACHE INTERNAL "Zlib found but not usable")
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
IF(NOT ZLIB_FOUND)
|
||||||
|
MYSQL_USE_BUNDLED_ZLIB()
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
SET(HAVE_COMPRESS 1)
|
||||||
|
ENDMACRO()
|
167
cmd-line-utils/libedit/CMakeLists.txt
Normal file
167
cmd-line-utils/libedit/CMakeLists.txt
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_SOURCE_DIR} )
|
||||||
|
INCLUDE(CheckIncludeFile)
|
||||||
|
CHECK_INCLUDE_FILES(term.h HAVE_TERM_H)
|
||||||
|
|
||||||
|
SET(CMAKE_REQUIRED_LIBRARIES ${CURSES_CURSES_LIBRARY})
|
||||||
|
CHECK_CXX_SOURCE_COMPILES("
|
||||||
|
#include <term.h>
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
tgoto(0,0,0);
|
||||||
|
return 0;
|
||||||
|
}" HAVE_DECL_TGOTO)
|
||||||
|
SET(CMAKE_REQUIRED_LIBRARIES)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
|
||||||
|
#On Solaris, default awk is next to unusable while the xpg4 one is ok.
|
||||||
|
IF(EXISTS /usr/xpg4/bin/awk)
|
||||||
|
SET(AWK_EXECUTABLE /usr/xpg4/bin/awk)
|
||||||
|
ENDIF()
|
||||||
|
ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "OS400")
|
||||||
|
#Workaround for cases, where /usr/bin/gawk is not executable
|
||||||
|
IF(EXISTS /QOpenSys/usr/bin/awk)
|
||||||
|
SET(AWK_EXECUTABLE /QOpenSys/usr/bin/awk)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(NOT AWK_EXECUTABLE)
|
||||||
|
FIND_PROGRAM(AWK_EXECUTABLE NAMES gawk awk DOC "path to the awk executable")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
MARK_AS_ADVANCED(AWK_EXECUTABLE)
|
||||||
|
SET(AWK ${AWK_EXECUTABLE})
|
||||||
|
CONFIGURE_FILE(makelist.sh ${CMAKE_CURRENT_SOURCE_DIR}/makelist @ONLY)
|
||||||
|
|
||||||
|
|
||||||
|
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
|
||||||
|
${CURSES_INCLUDE_PATH}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
SET(ASRC vi.c emacs.c common.c)
|
||||||
|
SET(AHDR vi.h emacs.h common.h)
|
||||||
|
|
||||||
|
|
||||||
|
SET(LIBEDIT_SOURCES
|
||||||
|
chared.c el.c history.c map.c prompt.c readline.c
|
||||||
|
search.c tokenizer.c vi.c common.c emacs.c
|
||||||
|
hist.c key.c parse.c read.c refresh.c sig.c term.c
|
||||||
|
tty.c help.c fcns.c filecomplete.c
|
||||||
|
${AHDR}
|
||||||
|
)
|
||||||
|
|
||||||
|
include(CheckFunctionExists)
|
||||||
|
include(CheckIncludeFile)
|
||||||
|
CHECK_INCLUDE_FILE(vis.h HAVE_VIS_H)
|
||||||
|
|
||||||
|
IF(HAVE_VIS_H)
|
||||||
|
CHECK_FUNCTION_EXISTS(strvis HAVE_STRVIS)
|
||||||
|
IF(NOT HAVE_STRVIS)
|
||||||
|
SET(HAVE_VIS_H FALSE CACHE INTERNAL "" FORCE)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
CHECK_FUNCTION_EXISTS(strvis HAVE_STRVIS)
|
||||||
|
IF(NOT HAVE_STRVIS)
|
||||||
|
SET(LIBEDIT_SOURCES ${LIBEDIT_SOURCES} np/vis.c)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
|
||||||
|
CHECK_FUNCTION_EXISTS(strunvis HAVE_STRUNVIS)
|
||||||
|
IF(NOT HAVE_STRUNVIS)
|
||||||
|
SET(LIBEDIT_SOURCES ${LIBEDIT_SOURCES} np/unvis.c)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
CHECK_FUNCTION_EXISTS(strlcpy HAVE_STRLCPY)
|
||||||
|
IF(NOT HAVE_STRLCPY)
|
||||||
|
SET(LIBEDIT_SOURCES ${LIBEDIT_SOURCES} np/strlcpy.c)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
|
||||||
|
CHECK_FUNCTION_EXISTS(strlcat HAVE_STRLCAT)
|
||||||
|
IF(NOT HAVE_STRLCAT)
|
||||||
|
SET(LIBEDIT_SOURCES ${LIBEDIT_SOURCES} np/strlcat.c)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
|
||||||
|
CHECK_FUNCTION_EXISTS(fgetln HAVE_FGETLN)
|
||||||
|
IF(NOT HAVE_FGETLN)
|
||||||
|
SET(LIBEDIT_SOURCES ${LIBEDIT_SOURCES} np/fgetln.c)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
|
||||||
|
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/vi.h
|
||||||
|
COMMAND sh ./makelist -h vi.c > vi.h
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
DEPENDS vi.c)
|
||||||
|
|
||||||
|
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/emacs.h
|
||||||
|
COMMAND sh ./makelist -h emacs.c > emacs.h
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
DEPENDS emacs.c)
|
||||||
|
|
||||||
|
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/common.h
|
||||||
|
COMMAND sh ./makelist -h common.c > common.h
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
DEPENDS common.c)
|
||||||
|
|
||||||
|
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/help.c
|
||||||
|
COMMAND sh ./makelist -bc ${ASRC} > help.c
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
DEPENDS ${ASRC}
|
||||||
|
)
|
||||||
|
|
||||||
|
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/help.h
|
||||||
|
COMMAND sh ./makelist -bh ${ASRC} > help.h
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
DEPENDS ${ASRC}
|
||||||
|
)
|
||||||
|
|
||||||
|
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/fcns.h
|
||||||
|
COMMAND sh ./makelist -fh ${AHDR} > fcns.h
|
||||||
|
VERBATIM
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
DEPENDS ${AHDR}
|
||||||
|
)
|
||||||
|
|
||||||
|
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/fcns.c
|
||||||
|
COMMAND sh ./makelist -fc ${AHDR} > fcns.c
|
||||||
|
VERBATIM
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
DEPENDS ${AHDR}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
ADD_CUSTOM_TARGET(
|
||||||
|
GenLibeditSource
|
||||||
|
DEPENDS
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/vi.h
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/emacs.h
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/common.h
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/help.c
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/help.h
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/fcns.c
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/fcns.h
|
||||||
|
)
|
||||||
|
|
||||||
|
ADD_LIBRARY(edit ${LIBEDIT_SOURCES})
|
||||||
|
ADD_DEPENDENCIES(edit GenLibeditSource)
|
||||||
|
TARGET_LINK_LIBRARIES(edit ${CURSES_LIBRARY})
|
||||||
|
|
@ -23,7 +23,7 @@ noinst_HEADERS = chared.h el.h el_term.h histedit.h key.h parse.h refresh.h sig.
|
|||||||
sys.h config.h hist.h map.h prompt.h read.h \
|
sys.h config.h hist.h map.h prompt.h read.h \
|
||||||
search.h tty.h filecomplete.h np/vis.h
|
search.h tty.h filecomplete.h np/vis.h
|
||||||
|
|
||||||
EXTRA_DIST = makelist.sh
|
EXTRA_DIST = makelist.sh CMakeLists.txt
|
||||||
|
|
||||||
CLEANFILES = makelist common.h emacs.h vi.h fcns.h help.h fcns.c help.c
|
CLEANFILES = makelist common.h emacs.h vi.h fcns.h help.h fcns.c help.c
|
||||||
|
|
||||||
|
60
cmd-line-utils/readline/CMakeLists.txt
Normal file
60
cmd-line-utils/readline/CMakeLists.txt
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
# Copyright (C) 2007 MySQL AB
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
|
||||||
|
${CMAKE_SOURCE_DIR}/cmd-line-utils)
|
||||||
|
|
||||||
|
ADD_DEFINITIONS(-DHAVE_CONFIG_H -DNO_KILL_INTR -DMYSQL_CLIENT_NO_THREADS)
|
||||||
|
|
||||||
|
INCLUDE_DIRECTORIES(${CURSES_INCLUDE_PATH})
|
||||||
|
|
||||||
|
ADD_LIBRARY(readline
|
||||||
|
readline.c
|
||||||
|
funmap.c
|
||||||
|
keymaps.c
|
||||||
|
vi_mode.c
|
||||||
|
parens.c
|
||||||
|
rltty.c
|
||||||
|
complete.c
|
||||||
|
bind.c
|
||||||
|
isearch.c
|
||||||
|
display.c
|
||||||
|
signals.c
|
||||||
|
util.c
|
||||||
|
kill.c
|
||||||
|
undo.c
|
||||||
|
macro.c
|
||||||
|
input.c
|
||||||
|
callback.c
|
||||||
|
terminal.c
|
||||||
|
xmalloc.c
|
||||||
|
history.c
|
||||||
|
histsearch.c
|
||||||
|
histexpand.c
|
||||||
|
histfile.c
|
||||||
|
nls.c
|
||||||
|
search.c
|
||||||
|
shell.c
|
||||||
|
tilde.c
|
||||||
|
misc.c
|
||||||
|
text.c
|
||||||
|
mbutil.c
|
||||||
|
compat.c
|
||||||
|
savestring.c
|
||||||
|
)
|
||||||
|
|
||||||
|
# Declare dependency
|
||||||
|
# so every executable that links with readline links with curses as well
|
||||||
|
TARGET_LINK_LIBRARIES(readline ${CURSES_LIBRARY})
|
@ -29,7 +29,7 @@ noinst_HEADERS = readline.h chardefs.h keymaps.h \
|
|||||||
tilde.h rlconf.h rltty.h ansi_stdlib.h \
|
tilde.h rlconf.h rltty.h ansi_stdlib.h \
|
||||||
tcap.h rlstdc.h
|
tcap.h rlstdc.h
|
||||||
|
|
||||||
EXTRA_DIST= emacs_keymap.c vi_keymap.c
|
EXTRA_DIST= emacs_keymap.c vi_keymap.c CMakeLists.txt
|
||||||
|
|
||||||
DEFS = -DMYSQL_CLIENT_NO_THREADS -DHAVE_CONFIG_H -DNO_KILL_INTR
|
DEFS = -DMYSQL_CLIENT_NO_THREADS -DHAVE_CONFIG_H -DNO_KILL_INTR
|
||||||
|
|
||||||
|
618
config.h.cmake
Normal file
618
config.h.cmake
Normal file
@ -0,0 +1,618 @@
|
|||||||
|
/* Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; version 2 of the License.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
|
||||||
|
|
||||||
|
#ifndef MY_CONFIG_H
|
||||||
|
#define MY_CONFIG_H
|
||||||
|
#cmakedefine DOT_FRM_VERSION @DOT_FRM_VERSION@
|
||||||
|
/* Headers we may want to use. */
|
||||||
|
#cmakedefine STDC_HEADERS 1
|
||||||
|
#cmakedefine HAVE_ALLOCA_H 1
|
||||||
|
#cmakedefine HAVE_AIO_H 1
|
||||||
|
#cmakedefine HAVE_ARPA_INET_H 1
|
||||||
|
#cmakedefine HAVE_BSEARCH 1
|
||||||
|
#cmakedefine HAVE_CRYPT_H 1
|
||||||
|
#cmakedefine HAVE_CURSES_H 1
|
||||||
|
#cmakedefine HAVE_CXXABI_H 1
|
||||||
|
#cmakedefine HAVE_NCURSES_H 1
|
||||||
|
#cmakedefine HAVE_DIRENT_H 1
|
||||||
|
#cmakedefine HAVE_DLFCN_H 1
|
||||||
|
#cmakedefine HAVE_EXECINFO_H 1
|
||||||
|
#cmakedefine HAVE_FCNTL_H 1
|
||||||
|
#cmakedefine HAVE_FENV_H 1
|
||||||
|
#cmakedefine HAVE_FLOAT_H 1
|
||||||
|
#cmakedefine HAVE_FLOATINGPOINT_H 1
|
||||||
|
#cmakedefine HAVE_FNMATCH_H 1
|
||||||
|
#cmakedefine HAVE_FPU_CONTROL_H 1
|
||||||
|
#cmakedefine HAVE_GRP_H 1
|
||||||
|
#cmakedefine HAVE_EXPLICIT_TEMPLATE_INSTANTIATION 1
|
||||||
|
#cmakedefine HAVE_IEEEFP_H 1
|
||||||
|
#cmakedefine HAVE_INTTYPES_H 1
|
||||||
|
#cmakedefine HAVE_LIMITS_H 1
|
||||||
|
#cmakedefine HAVE_LOCALE_H 1
|
||||||
|
#cmakedefine HAVE_MALLOC_H 1
|
||||||
|
#cmakedefine HAVE_MEMORY_H 1
|
||||||
|
#cmakedefine HAVE_NETINET_IN_H 1
|
||||||
|
#cmakedefine HAVE_PATHS_H 1
|
||||||
|
#cmakedefine HAVE_PORT_H 1
|
||||||
|
#cmakedefine HAVE_PWD_H 1
|
||||||
|
#cmakedefine HAVE_SCHED_H 1
|
||||||
|
#cmakedefine HAVE_SELECT_H 1
|
||||||
|
#cmakedefine HAVE_SOLARIS_LARGE_PAGES 1
|
||||||
|
#cmakedefine HAVE_STDDEF_H 1
|
||||||
|
#cmakedefine HAVE_STDLIB_H 1
|
||||||
|
#cmakedefine HAVE_STDARG_H 1
|
||||||
|
#cmakedefine HAVE_STRINGS_H 1
|
||||||
|
#cmakedefine HAVE_STRING_H 1
|
||||||
|
#cmakedefine HAVE_STDINT_H 1
|
||||||
|
#cmakedefine HAVE_SEMAPHORE_H 1
|
||||||
|
#cmakedefine HAVE_SYNCH_H 1
|
||||||
|
#cmakedefine HAVE_SYSENT_H 1
|
||||||
|
#cmakedefine HAVE_SYS_DIR_H 1
|
||||||
|
#cmakedefine HAVE_SYS_CDEFS_H 1
|
||||||
|
#cmakedefine HAVE_SYS_FILE_H 1
|
||||||
|
#cmakedefine HAVE_SYS_FPU_H 1
|
||||||
|
#cmakedefine HAVE_SYS_IOCTL_H 1
|
||||||
|
#cmakedefine HAVE_SYS_IPC_H 1
|
||||||
|
#cmakedefine HAVE_SYS_MALLOC_H 1
|
||||||
|
#cmakedefine HAVE_SYS_MMAN_H 1
|
||||||
|
#cmakedefine HAVE_SYS_PTE_H 1
|
||||||
|
#cmakedefine HAVE_SYS_PTEM_H 1
|
||||||
|
#cmakedefine HAVE_SYS_PRCTL_H 1
|
||||||
|
#cmakedefine HAVE_SYS_RESOURCE_H 1
|
||||||
|
#cmakedefine HAVE_SYS_SELECT_H 1
|
||||||
|
#cmakedefine HAVE_SYS_SHM_H 1
|
||||||
|
#cmakedefine HAVE_SYS_SOCKET_H 1
|
||||||
|
#cmakedefine HAVE_SYS_STAT_H 1
|
||||||
|
#cmakedefine HAVE_SYS_STREAM_H 1
|
||||||
|
#cmakedefine HAVE_SYS_TERMCAP_H 1
|
||||||
|
#cmakedefine HAVE_SYS_TIMEB_H 1
|
||||||
|
#cmakedefine HAVE_SYS_TYPES_H 1
|
||||||
|
#cmakedefine HAVE_SYS_UN_H 1
|
||||||
|
#cmakedefine HAVE_SYS_VADVISE_H 1
|
||||||
|
#cmakedefine HAVE_TERM_H 1
|
||||||
|
#cmakedefine HAVE_TERMIOS_H 1
|
||||||
|
#cmakedefine HAVE_TERMIO_H 1
|
||||||
|
#cmakedefine HAVE_TERMCAP_H 1
|
||||||
|
#cmakedefine HAVE_UNISTD_H 1
|
||||||
|
#cmakedefine HAVE_UTIME_H 1
|
||||||
|
#cmakedefine HAVE_VARARGS_H 1
|
||||||
|
#cmakedefine HAVE_VIS_H 1
|
||||||
|
#cmakedefine HAVE_SYS_UTIME_H 1
|
||||||
|
#cmakedefine HAVE_SYS_WAIT_H 1
|
||||||
|
#cmakedefine HAVE_SYS_PARAM_H 1
|
||||||
|
|
||||||
|
/* Libraries */
|
||||||
|
#cmakedefine HAVE_LIBPTHREAD 1
|
||||||
|
#cmakedefine HAVE_LIBM 1
|
||||||
|
#cmakedefine HAVE_LIBDL 1
|
||||||
|
#cmakedefine HAVE_LIBRT 1
|
||||||
|
#cmakedefine HAVE_LIBSOCKET 1
|
||||||
|
#cmakedefine HAVE_LIBNSL 1
|
||||||
|
#cmakedefine HAVE_LIBCRYPT 1
|
||||||
|
#cmakedefine HAVE_LIBMTMALLOC 1
|
||||||
|
#cmakedefine HAVE_LIBWRAP 1
|
||||||
|
/* Does "struct timespec" have a "sec" and "nsec" field? */
|
||||||
|
#cmakedefine HAVE_TIMESPEC_TS_SEC 1
|
||||||
|
|
||||||
|
/* Readline */
|
||||||
|
#cmakedefine HAVE_HIST_ENTRY 1
|
||||||
|
#cmakedefine USE_LIBEDIT_INTERFACE 1
|
||||||
|
#cmakedefine USE_NEW_READLINE_INTERFACE 1
|
||||||
|
|
||||||
|
#cmakedefine FIONREAD_IN_SYS_IOCTL 1
|
||||||
|
#cmakedefine GWINSZ_IN_SYS_IOCTL 1
|
||||||
|
#cmakedefine TIOCSTAT_IN_SYS_IOCTL 1
|
||||||
|
|
||||||
|
/* Functions we may want to use. */
|
||||||
|
#cmakedefine HAVE_AIOWAIT 1
|
||||||
|
#cmakedefine HAVE_ALARM 1
|
||||||
|
#cmakedefine HAVE_ALLOCA 1
|
||||||
|
#cmakedefine HAVE_BCMP 1
|
||||||
|
#cmakedefine HAVE_BFILL 1
|
||||||
|
#cmakedefine HAVE_BMOVE 1
|
||||||
|
#cmakedefine HAVE_BZERO 1
|
||||||
|
#cmakedefine HAVE_INDEX 1
|
||||||
|
#cmakedefine HAVE_CLOCK_GETTIME 1
|
||||||
|
#cmakedefine HAVE_CRYPT 1
|
||||||
|
#cmakedefine HAVE_CUSERID 1
|
||||||
|
#cmakedefine HAVE_DIRECTIO 1
|
||||||
|
#cmakedefine HAVE_DLERROR 1
|
||||||
|
#cmakedefine HAVE_DLOPEN 1
|
||||||
|
#cmakedefine HAVE_DOPRNT 1
|
||||||
|
#cmakedefine HAVE_FCHMOD 1
|
||||||
|
#cmakedefine HAVE_FCNTL 1
|
||||||
|
#cmakedefine HAVE_FCONVERT 1
|
||||||
|
#cmakedefine HAVE_FDATASYNC 1
|
||||||
|
#cmakedefine HAVE_FESETROUND 1
|
||||||
|
#cmakedefine HAVE_FINITE 1
|
||||||
|
#cmakedefine HAVE_FP_EXCEPT 1
|
||||||
|
#cmakedefine HAVE_FPSETMASK 1
|
||||||
|
#cmakedefine HAVE_FSEEKO 1
|
||||||
|
#cmakedefine HAVE_FSYNC 1
|
||||||
|
#cmakedefine HAVE_GETADDRINFO 1
|
||||||
|
#cmakedefine HAVE_GETCWD 1
|
||||||
|
#cmakedefine HAVE_GETHOSTBYADDR_R 1
|
||||||
|
#cmakedefine HAVE_GETHOSTBYNAME_R 1
|
||||||
|
#cmakedefine HAVE_GETHRTIME 1
|
||||||
|
#cmakedefine HAVE_GETLINE 1
|
||||||
|
#cmakedefine HAVE_GETNAMEINFO 1
|
||||||
|
#cmakedefine HAVE_GETPAGESIZE 1
|
||||||
|
#cmakedefine HAVE_GETPASS 1
|
||||||
|
#cmakedefine HAVE_GETPASSPHRASE 1
|
||||||
|
#cmakedefine HAVE_GETPWNAM 1
|
||||||
|
#cmakedefine HAVE_GETPWUID 1
|
||||||
|
#cmakedefine HAVE_GETRLIMIT 1
|
||||||
|
#cmakedefine HAVE_GETRUSAGE 1
|
||||||
|
#cmakedefine HAVE_GETTIMEOFDAY 1
|
||||||
|
#cmakedefine HAVE_GETWD 1
|
||||||
|
#cmakedefine HAVE_GMTIME_R 1
|
||||||
|
#cmakedefine gmtime_r @gmtime_r@
|
||||||
|
#cmakedefine HAVE_INITGROUPS 1
|
||||||
|
#cmakedefine HAVE_ISSETUGID 1
|
||||||
|
#cmakedefine HAVE_ISNAN 1
|
||||||
|
#cmakedefine HAVE_ISINF 1
|
||||||
|
#cmakedefine HAVE_LARGE_PAGE_OPTION 1
|
||||||
|
#cmakedefine HAVE_LDIV 1
|
||||||
|
#cmakedefine HAVE_LRAND48 1
|
||||||
|
#cmakedefine HAVE_LOCALTIME_R 1
|
||||||
|
#cmakedefine HAVE_LOG2 1
|
||||||
|
#cmakedefine HAVE_LONGJMP 1
|
||||||
|
#cmakedefine HAVE_LSTAT 1
|
||||||
|
#cmakedefine HAVE_NPTL 1
|
||||||
|
#cmakedefine HAVE_NL_LANGINFO 1
|
||||||
|
#cmakedefine HAVE_MADVISE 1
|
||||||
|
#cmakedefine HAVE_DECL_MADVISE 1
|
||||||
|
#cmakedefine HAVE_DECL_TGOTO 1
|
||||||
|
#cmakedefine HAVE_DECL_MHA_MAPSIZE_VA
|
||||||
|
#cmakedefine HAVE_MALLINFO 1
|
||||||
|
#cmakedefine HAVE_MEMCPY 1
|
||||||
|
#cmakedefine HAVE_MEMMOVE 1
|
||||||
|
#cmakedefine HAVE_MKSTEMP 1
|
||||||
|
#cmakedefine HAVE_MLOCKALL 1
|
||||||
|
#cmakedefine HAVE_MMAP 1
|
||||||
|
#cmakedefine HAVE_MMAP64 1
|
||||||
|
#cmakedefine HAVE_PERROR 1
|
||||||
|
#cmakedefine HAVE_POLL 1
|
||||||
|
#cmakedefine HAVE_PORT_CREATE 1
|
||||||
|
#cmakedefine HAVE_POSIX_FALLOCATE 1
|
||||||
|
#cmakedefine HAVE_PREAD 1
|
||||||
|
#cmakedefine HAVE_PAUSE_INSTRUCTION 1
|
||||||
|
#cmakedefine HAVE_FAKE_PAUSE_INSTRUCTION 1
|
||||||
|
#cmakedefine HAVE_PTHREAD_ATTR_CREATE 1
|
||||||
|
#cmakedefine HAVE_PTHREAD_ATTR_GETSTACKSIZE 1
|
||||||
|
#cmakedefine HAVE_PTHREAD_ATTR_SETPRIO 1
|
||||||
|
#cmakedefine HAVE_PTHREAD_ATTR_SETSCHEDPARAM 1
|
||||||
|
#cmakedefine HAVE_PTHREAD_ATTR_SETSCOPE 1
|
||||||
|
#cmakedefine HAVE_PTHREAD_ATTR_SETSTACKSIZE 1
|
||||||
|
#cmakedefine HAVE_PTHREAD_CONDATTR_CREATE 1
|
||||||
|
#cmakedefine HAVE_PTHREAD_CONDATTR_SETCLOCK 1
|
||||||
|
#cmakedefine HAVE_PTHREAD_INIT 1
|
||||||
|
#cmakedefine HAVE_PTHREAD_KEY_DELETE 1
|
||||||
|
#cmakedefine HAVE_PTHREAD_KEY_DELETE 1
|
||||||
|
#cmakedefine HAVE_PTHREAD_KILL 1
|
||||||
|
#cmakedefine HAVE_PTHREAD_RWLOCK_RDLOCK 1
|
||||||
|
#cmakedefine HAVE_PTHREAD_SETPRIO_NP 1
|
||||||
|
#cmakedefine HAVE_PTHREAD_SETSCHEDPARAM 1
|
||||||
|
#cmakedefine HAVE_PTHREAD_SIGMASK 1
|
||||||
|
#cmakedefine HAVE_PTHREAD_THREADMASK 1
|
||||||
|
#cmakedefine HAVE_PTHREAD_YIELD_NP 1
|
||||||
|
#cmakedefine HAVE_PTHREAD_YIELD_ZERO_ARG 1
|
||||||
|
#cmakedefine HAVE_PUTENV 1
|
||||||
|
#cmakedefine HAVE_RE_COMP 1
|
||||||
|
#cmakedefine HAVE_REGCOMP 1
|
||||||
|
#cmakedefine HAVE_READDIR_R 1
|
||||||
|
#cmakedefine HAVE_READLINK 1
|
||||||
|
#cmakedefine HAVE_REALPATH 1
|
||||||
|
#cmakedefine HAVE_RENAME 1
|
||||||
|
#cmakedefine HAVE_RINT 1
|
||||||
|
#cmakedefine HAVE_RWLOCK_INIT 1
|
||||||
|
#cmakedefine HAVE_SCHED_YIELD 1
|
||||||
|
#cmakedefine HAVE_SELECT 1
|
||||||
|
#cmakedefine HAVE_SETFD 1
|
||||||
|
#cmakedefine HAVE_SETENV 1
|
||||||
|
#cmakedefine HAVE_SETLOCALE 1
|
||||||
|
#cmakedefine HAVE_SIGADDSET 1
|
||||||
|
#cmakedefine HAVE_SIGEMPTYSET 1
|
||||||
|
#cmakedefine HAVE_SIGHOLD 1
|
||||||
|
#cmakedefine HAVE_SIGSET 1
|
||||||
|
#cmakedefine HAVE_SIGSET_T 1
|
||||||
|
#cmakedefine HAVE_SIGACTION 1
|
||||||
|
#cmakedefine HAVE_SIGTHREADMASK 1
|
||||||
|
#cmakedefine HAVE_SIGWAIT 1
|
||||||
|
#cmakedefine HAVE_SLEEP 1
|
||||||
|
#cmakedefine HAVE_SNPRINTF 1
|
||||||
|
#cmakedefine HAVE_STPCPY 1
|
||||||
|
#cmakedefine HAVE_STRERROR 1
|
||||||
|
#cmakedefine HAVE_STRCOLL 1
|
||||||
|
#cmakedefine HAVE_STRSIGNAL 1
|
||||||
|
#cmakedefine HAVE_STRLCPY 1
|
||||||
|
#cmakedefine HAVE_STRLCAT 1
|
||||||
|
#cmakedefine HAVE_FGETLN 1
|
||||||
|
#cmakedefine HAVE_STRNLEN 1
|
||||||
|
#cmakedefine HAVE_STRPBRK 1
|
||||||
|
#cmakedefine HAVE_STRSEP 1
|
||||||
|
#cmakedefine HAVE_STRSTR 1
|
||||||
|
#cmakedefine HAVE_STRTOK_R 1
|
||||||
|
#cmakedefine HAVE_STRTOL 1
|
||||||
|
#cmakedefine HAVE_STRTOLL 1
|
||||||
|
#cmakedefine HAVE_STRTOUL 1
|
||||||
|
#cmakedefine HAVE_STRTOULL 1
|
||||||
|
#cmakedefine HAVE_SHMAT 1
|
||||||
|
#cmakedefine HAVE_SHMCTL 1
|
||||||
|
#cmakedefine HAVE_SHMDT 1
|
||||||
|
#cmakedefine HAVE_SHMGET 1
|
||||||
|
#cmakedefine HAVE_TELL 1
|
||||||
|
#cmakedefine HAVE_TEMPNAM 1
|
||||||
|
#cmakedefine HAVE_THR_SETCONCURRENCY 1
|
||||||
|
#cmakedefine HAVE_THR_YIELD 1
|
||||||
|
#cmakedefine HAVE_VALLOC 1
|
||||||
|
#define HAVE_VIO_READ_BUFF 1
|
||||||
|
#cmakedefine HAVE_VASPRINTF 1
|
||||||
|
#cmakedefine HAVE_VPRINTF 1
|
||||||
|
#cmakedefine HAVE_VSNPRINTF 1
|
||||||
|
#cmakedefine HAVE_FTRUNCATE 1
|
||||||
|
#cmakedefine HAVE_TZNAME 1
|
||||||
|
#cmakedefine HAVE_AIO_READ 1
|
||||||
|
/* Symbols we may use */
|
||||||
|
#cmakedefine HAVE_SYS_ERRLIST 1
|
||||||
|
/* used by stacktrace functions */
|
||||||
|
#cmakedefine HAVE_BSS_START 1
|
||||||
|
#cmakedefine HAVE_BACKTRACE 1
|
||||||
|
#cmakedefine HAVE_BACKTRACE_SYMBOLS 1
|
||||||
|
#cmakedefine HAVE_BACKTRACE_SYMBOLS_FD 1
|
||||||
|
#cmakedefine HAVE_STRUCT_SOCKADDR_IN6 1
|
||||||
|
#cmakedefine HAVE_STRUCT_IN6_ADDR 1
|
||||||
|
#cmakedefine HAVE_NETINET_IN6_H 1
|
||||||
|
#cmakedefine HAVE_IPV6 1
|
||||||
|
#cmakedefine ss_family @ss_family@
|
||||||
|
#cmakedefine HAVE_TIMESPEC_TS_SEC 1
|
||||||
|
#cmakedefine STRUCT_DIRENT_HAS_D_INO 1
|
||||||
|
#cmakedefine STRUCT_DIRENT_HAS_D_NAMLEN 1
|
||||||
|
#cmakedefine SPRINTF_RETURNS_INT 1
|
||||||
|
|
||||||
|
#define USE_MB 1
|
||||||
|
#define USE_MB_IDENT 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Types we may use */
|
||||||
|
#cmakedefine SIZEOF_CHAR @SIZEOF_CHAR@
|
||||||
|
#if SIZEOF_CHAR
|
||||||
|
# define HAVE_CHAR 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#cmakedefine SIZEOF_CHARP @SIZEOF_CHARP@
|
||||||
|
#if SIZEOF_CHARP
|
||||||
|
#define HAVE_CHARP 1
|
||||||
|
#define SIZEOF_VOIDP SIZEOF_CHARP
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#cmakedefine SIZEOF_SHORT @SIZEOF_SHORT@
|
||||||
|
#if SIZEOF_SHORT
|
||||||
|
# define HAVE_SHORT 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#cmakedefine SIZEOF_INT @SIZEOF_INT@
|
||||||
|
#if SIZEOF_INT
|
||||||
|
# define HAVE_INT 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#cmakedefine SIZEOF_LONG @SIZEOF_LONG@
|
||||||
|
#if SIZEOF_LONG
|
||||||
|
# define HAVE_LONG 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#cmakedefine SIZEOF_LONG_LONG @SIZEOF_LONG_LONG@
|
||||||
|
#if SIZEOF_LONG_LONG
|
||||||
|
# define HAVE_LONG_LONG 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#cmakedefine SIZEOF_OFF_T @SIZEOF_OFF_T@
|
||||||
|
#if SIZEOF_OFF_T
|
||||||
|
#define HAVE_OFF_T 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#cmakedefine SIZEOF_SIGSET_T @SIZEOF_SIGSET_T@
|
||||||
|
#if SIZEOF_SIGSET_T
|
||||||
|
#define HAVE_SIGSET_T 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#cmakedefine SIZEOF_SIZE_T @SIZEOF_SIZE_T@
|
||||||
|
#if SIZEOF_SIZE_T
|
||||||
|
#define HAVE_SIZE_T 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#cmakedefine SIZEOF_UCHAR @SIZEOF_UCHAR@
|
||||||
|
#if SIZEOF_UCHAR
|
||||||
|
#define HAVE_UCHAR 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#cmakedefine SIZEOF_UINT @SIZEOF_UINT@
|
||||||
|
#if SIZEOF_UINT
|
||||||
|
#define HAVE_UINT 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#cmakedefine SIZEOF_ULONG @SIZEOF_ULONG@
|
||||||
|
#if SIZEOF_ULONG
|
||||||
|
#define HAVE_ULONG 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#cmakedefine SIZEOF_INT8 @SIZEOF_INT8@
|
||||||
|
#if SIZEOF_INT8
|
||||||
|
#define HAVE_INT8 1
|
||||||
|
#endif
|
||||||
|
#cmakedefine SIZEOF_UINT8 @SIZEOF_UINT8@
|
||||||
|
#if SIZEOF_UINT8
|
||||||
|
#define HAVE_UINT8 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#cmakedefine SIZEOF_INT16 @SIZEOF_INT16@
|
||||||
|
#if SIZEOF_INT16
|
||||||
|
# define HAVE_INT16 1
|
||||||
|
#endif
|
||||||
|
#cmakedefine SIZEOF_UINT16 @SIZEOF_UINT16@
|
||||||
|
#if SIZEOF_UINT16
|
||||||
|
#define HAVE_UINT16 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#cmakedefine SIZEOF_INT32 @SIZEOF_INT32@
|
||||||
|
#if SIZEOF_INT32
|
||||||
|
#define HAVE_INT32 1
|
||||||
|
#endif
|
||||||
|
#cmakedefine SIZEOF_UINT32 @SIZEOF_UINT32@
|
||||||
|
#if SIZEOF_UINT32
|
||||||
|
#define HAVE_UINT32 1
|
||||||
|
#endif
|
||||||
|
#cmakedefine SIZEOF_U_INT32_T @SIZEOF_U_INT32_T@
|
||||||
|
#if SIZEOF_U_INT32_T
|
||||||
|
#define HAVE_U_INT32_T 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#cmakedefine SIZEOF_INT64 @SIZEOF_INT64@
|
||||||
|
#if SIZEOF_INT64
|
||||||
|
#define HAVE_INT64 1
|
||||||
|
#endif
|
||||||
|
#cmakedefine SIZEOF_UINT64 @SIZEOF_UINT64@
|
||||||
|
#if SIZEOF_UINT64
|
||||||
|
#define HAVE_UINT64 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#cmakedefine SOCKET_SIZE_TYPE @SOCKET_SIZE_TYPE@
|
||||||
|
|
||||||
|
#cmakedefine SIZEOF_BOOL @SIZEOF_BOOL@
|
||||||
|
#if SIZEOF_BOOL
|
||||||
|
#define HAVE_BOOL 1
|
||||||
|
#endif
|
||||||
|
#cmakedefine HAVE_MBSTATE_T
|
||||||
|
|
||||||
|
#define MAX_INDEXES 64
|
||||||
|
|
||||||
|
#cmakedefine QSORT_TYPE_IS_VOID 1
|
||||||
|
#define RETQSORTTYPE void
|
||||||
|
|
||||||
|
#cmakedefine SIGNAL_RETURN_TYPE_IS_VOID 1
|
||||||
|
#define RETSIGTYPE void
|
||||||
|
#if SIGNAL_RETURN_TYPE_IS_VOID
|
||||||
|
#define VOID_SIGHANDLER 1
|
||||||
|
#endif
|
||||||
|
#define STRUCT_RLIMIT struct rlimit
|
||||||
|
|
||||||
|
#cmakedefine WORDS_BIGENDIAN 1
|
||||||
|
|
||||||
|
/* Define to `__inline__' or `__inline' if that's what the C compiler calls
|
||||||
|
it, or to nothing if 'inline' is not supported under any name. */
|
||||||
|
#cmakedefine C_HAS_inline 1
|
||||||
|
#if !(C_HAS_inline)
|
||||||
|
#ifndef __cplusplus
|
||||||
|
# define inline @C_INLINE@
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#cmakedefine TARGET_OS_LINUX 1
|
||||||
|
#cmakedefine TARGET_OS_SOLARIS 1
|
||||||
|
|
||||||
|
#cmakedefine HAVE_WCTYPE_H 1
|
||||||
|
#cmakedefine HAVE_WCHAR_H 1
|
||||||
|
#cmakedefine HAVE_LANGINFO_H 1
|
||||||
|
#cmakedefine HAVE_MBRLEN
|
||||||
|
#cmakedefine HAVE_MBSCMP
|
||||||
|
#cmakedefine HAVE_MBSRTOWCS
|
||||||
|
#cmakedefine HAVE_WCRTOMB
|
||||||
|
#cmakedefine HAVE_MBRTOWC
|
||||||
|
#cmakedefine HAVE_WCSCOLL
|
||||||
|
#cmakedefine HAVE_WCSDUP
|
||||||
|
#cmakedefine HAVE_WCWIDTH
|
||||||
|
#cmakedefine HAVE_WCTYPE
|
||||||
|
#cmakedefine HAVE_ISWLOWER 1
|
||||||
|
#cmakedefine HAVE_ISWUPPER 1
|
||||||
|
#cmakedefine HAVE_TOWLOWER 1
|
||||||
|
#cmakedefine HAVE_TOWUPPER 1
|
||||||
|
#cmakedefine HAVE_ISWCTYPE 1
|
||||||
|
#cmakedefine HAVE_WCHAR_T 1
|
||||||
|
#cmakedefine HAVE_WCTYPE_T 1
|
||||||
|
#cmakedefine HAVE_WINT_T 1
|
||||||
|
|
||||||
|
|
||||||
|
#cmakedefine HAVE_STRCASECMP 1
|
||||||
|
#cmakedefine HAVE_STRNCASECMP 1
|
||||||
|
#cmakedefine HAVE_STRDUP 1
|
||||||
|
#cmakedefine HAVE_LANGINFO_CODESET
|
||||||
|
#cmakedefine HAVE_TCGETATTR 1
|
||||||
|
#cmakedefine HAVE_FLOCKFILE 1
|
||||||
|
|
||||||
|
#cmakedefine HAVE_WEAK_SYMBOL 1
|
||||||
|
#cmakedefine HAVE_ABI_CXA_DEMANGLE 1
|
||||||
|
|
||||||
|
|
||||||
|
#cmakedefine HAVE_POSIX_SIGNALS 1
|
||||||
|
#cmakedefine HAVE_BSD_SIGNALS 1
|
||||||
|
#cmakedefine HAVE_SVR3_SIGNALS 1
|
||||||
|
#cmakedefine HAVE_V7_SIGNALS 1
|
||||||
|
|
||||||
|
|
||||||
|
#cmakedefine HAVE_SOLARIS_STYLE_GETHOST 1
|
||||||
|
#cmakedefine HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE 1
|
||||||
|
#cmakedefine HAVE_GETHOSTBYNAME_R_RETURN_INT 1
|
||||||
|
|
||||||
|
#cmakedefine MY_ATOMIC_MODE_DUMMY 1
|
||||||
|
#cmakedefine MY_ATOMIC_MODE_RWLOCKS 1
|
||||||
|
#cmakedefine HAVE_GCC_ATOMIC_BUILTINS 1
|
||||||
|
#cmakedefine HAVE_SOLARIS_ATOMIC 1
|
||||||
|
#cmakedefine HAVE_DECL_SHM_HUGETLB 1
|
||||||
|
#cmakedefine HAVE_LARGE_PAGES 1
|
||||||
|
#cmakedefine HUGETLB_USE_PROC_MEMINFO 1
|
||||||
|
#cmakedefine NO_FCNTL_NONBLOCK 1
|
||||||
|
|
||||||
|
#cmakedefine _LARGE_FILES 1
|
||||||
|
#cmakedefine _LARGEFILE_SOURCE 1
|
||||||
|
#cmakedefine _LARGEFILE64_SOURCE 1
|
||||||
|
#cmakedefine _FILE_OFFSET_BITS @_FILE_OFFSET_BITS@
|
||||||
|
|
||||||
|
#cmakedefine TIME_WITH_SYS_TIME 1
|
||||||
|
|
||||||
|
#cmakedefine STACK_DIRECTION @STACK_DIRECTION@
|
||||||
|
|
||||||
|
#define THREAD 1
|
||||||
|
#define THREAD_SAFE_CLIENT 1
|
||||||
|
|
||||||
|
#define SYSTEM_TYPE "@SYSTEM_TYPE@"
|
||||||
|
#define MACHINE_TYPE "@CMAKE_SYSTEM_PROCESSOR@"
|
||||||
|
#cmakedefine HAVE_DTRACE 1
|
||||||
|
|
||||||
|
#cmakedefine SIGNAL_WITH_VIO_CLOSE 1
|
||||||
|
|
||||||
|
/* Windows stuff, mostly functions, that have Posix analogs but named differently */
|
||||||
|
#cmakedefine S_IROTH @S_IROTH@
|
||||||
|
#cmakedefine S_IFIFO @S_IFIFO@
|
||||||
|
#cmakedefine IPPROTO_IPV6 @IPPROTO_IPV6@
|
||||||
|
#cmakedefine IPV6_V6ONLY @IPV6_V6ONLY@
|
||||||
|
#cmakedefine sigset_t @sigset_t@
|
||||||
|
#cmakedefine mode_t @mode_t@
|
||||||
|
#cmakedefine SIGQUIT @SIGQUIT@
|
||||||
|
#cmakedefine SIGPIPE @SIGPIPE@
|
||||||
|
#cmakedefine isnan @isnan@
|
||||||
|
#cmakedefine finite @finite@
|
||||||
|
#cmakedefine popen @popen@
|
||||||
|
#cmakedefine pclose @pclose@
|
||||||
|
#cmakedefine ssize_t @ssize_t@
|
||||||
|
#cmakedefine strcasecmp @strcasecmp@
|
||||||
|
#cmakedefine strncasecmp @strncasecmp@
|
||||||
|
#cmakedefine snprintf @snprintf@
|
||||||
|
#cmakedefine strtok_r @strtok_r@
|
||||||
|
#cmakedefine strtoll @strtoll@
|
||||||
|
#cmakedefine strtoull @strtoull@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
MySQL features
|
||||||
|
*/
|
||||||
|
#cmakedefine ENABLED_LOCAL_INFILE 1
|
||||||
|
#cmakedefine ENABLED_PROFILING 1
|
||||||
|
#cmakedefine EXTRA_DEBUG 1
|
||||||
|
#cmakedefine BACKUP_TEST 1
|
||||||
|
#cmakedefine CYBOZU 1
|
||||||
|
|
||||||
|
/* Character sets and collations */
|
||||||
|
#cmakedefine MYSQL_DEFAULT_CHARSET_NAME "latin1"
|
||||||
|
#cmakedefine MYSQL_DEFAULT_COLLATION_NAME "latin1_swedish_ci"
|
||||||
|
|
||||||
|
#cmakedefine USE_MB 1
|
||||||
|
#cmakedefine USE_MB_IDENT 1
|
||||||
|
#cmakedefine USE_STRCOLL 1
|
||||||
|
|
||||||
|
#cmakedefine HAVE_CHARSET_armscii8 1
|
||||||
|
#cmakedefine HAVE_CHARSET_ascii
|
||||||
|
#cmakedefine HAVE_CHARSET_big5 1
|
||||||
|
#cmakedefine HAVE_CHARSET_cp1250 1
|
||||||
|
#cmakedefine HAVE_CHARSET_cp1251 1
|
||||||
|
#cmakedefine HAVE_CHARSET_cp1256 1
|
||||||
|
#cmakedefine HAVE_CHARSET_cp1257 1
|
||||||
|
#cmakedefine HAVE_CHARSET_cp850 1
|
||||||
|
#cmakedefine HAVE_CHARSET_cp852 1
|
||||||
|
#cmakedefine HAVE_CHARSET_cp866 1
|
||||||
|
#cmakedefine HAVE_CHARSET_cp932 1
|
||||||
|
#cmakedefine HAVE_CHARSET_dec8 1
|
||||||
|
#cmakedefine HAVE_CHARSET_eucjpms 1
|
||||||
|
#cmakedefine HAVE_CHARSET_euckr 1
|
||||||
|
#cmakedefine HAVE_CHARSET_gb2312 1
|
||||||
|
#cmakedefine HAVE_CHARSET_gbk 1
|
||||||
|
#cmakedefine HAVE_CHARSET_geostd8 1
|
||||||
|
#cmakedefine HAVE_CHARSET_greek 1
|
||||||
|
#cmakedefine HAVE_CHARSET_hebrew 1
|
||||||
|
#cmakedefine HAVE_CHARSET_hp8 1
|
||||||
|
#cmakedefine HAVE_CHARSET_keybcs2 1
|
||||||
|
#cmakedefine HAVE_CHARSET_koi8r 1
|
||||||
|
#cmakedefine HAVE_CHARSET_koi8u 1
|
||||||
|
#cmakedefine HAVE_CHARSET_latin1 1
|
||||||
|
#cmakedefine HAVE_CHARSET_latin2 1
|
||||||
|
#cmakedefine HAVE_CHARSET_latin5 1
|
||||||
|
#cmakedefine HAVE_CHARSET_latin7 1
|
||||||
|
#cmakedefine HAVE_CHARSET_macce 1
|
||||||
|
#cmakedefine HAVE_CHARSET_macroman 1
|
||||||
|
#cmakedefine HAVE_CHARSET_sjis 1
|
||||||
|
#cmakedefine HAVE_CHARSET_swe7 1
|
||||||
|
#cmakedefine HAVE_CHARSET_tis620 1
|
||||||
|
#cmakedefine HAVE_CHARSET_ucs2 1
|
||||||
|
#cmakedefine HAVE_CHARSET_ujis 1
|
||||||
|
#cmakedefine HAVE_CHARSET_utf8mb4 1
|
||||||
|
#cmakedefine HAVE_CHARSET_utf8mb3 1
|
||||||
|
#cmakedefine HAVE_CHARSET_utf8 1
|
||||||
|
#cmakedefine HAVE_CHARSET_utf16 1
|
||||||
|
#cmakedefine HAVE_CHARSET_utf32 1
|
||||||
|
#cmakedefine HAVE_UCA_COLLATIONS 1
|
||||||
|
#cmakedefine HAVE_COMPRESS 1
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
Stuff that always need to be defined (compile breaks without it)
|
||||||
|
*/
|
||||||
|
#define HAVE_SPATIAL 1
|
||||||
|
#define HAVE_RTREE_KEYS 1
|
||||||
|
#define HAVE_QUERY_CACHE 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
Important storage engines (those that really need define
|
||||||
|
WITH_<ENGINE>_STORAGE_ENGINE for the whole server)
|
||||||
|
*/
|
||||||
|
#cmakedefine WITH_MYISAM_STORAGE_ENGINE 1
|
||||||
|
#cmakedefine WITH_MYISAMMRG_STORAGE_ENGINE 1
|
||||||
|
#cmakedefine WITH_HEAP_STORAGE_ENGINE 1
|
||||||
|
#cmakedefine WITH_CSV_STORAGE_ENGINE 1
|
||||||
|
#cmakedefine WITH_PARTITION_STORAGE_ENGINE 1
|
||||||
|
#cmakedefine WITH_PERFSCHEMA_STORAGE_ENGINE 1
|
||||||
|
#cmakedefine WITH_NDBCLUSTER_STORAGE_ENGINE 1
|
||||||
|
#if (WITH_NDBCLUSTER_STORAGE_ENGINE) && !defined(EMBEDDED_LIBRARY)
|
||||||
|
#define HAVE_NDB_BINLOG 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#cmakedefine DEFAULT_MYSQL_HOME "@DEFAULT_MYSQL_HOME@"
|
||||||
|
#cmakedefine SHAREDIR "@SHAREDIR@"
|
||||||
|
#cmakedefine DEFAULT_BASEDIR "@DEFAULT_BASEDIR@"
|
||||||
|
#cmakedefine MYSQL_DATADIR "@MYSQL_DATADIR@"
|
||||||
|
#cmakedefine DEFAULT_CHARSET_HOME "@DEFAULT_CHARSET_HOME@"
|
||||||
|
|
||||||
|
#define PACKAGE "mysql"
|
||||||
|
#define PACKAGE_BUGREPORT ""
|
||||||
|
#define PACKAGE_NAME "MySQL Server"
|
||||||
|
#define PACKAGE_STRING "MySQL Server @VERSION@"
|
||||||
|
#define PACKAGE_TARNAME "mysql"
|
||||||
|
#define PACKAGE_VERSION "@VERSION@"
|
||||||
|
#define VERSION "@VERSION@"
|
||||||
|
#define PROTOCOL_VERSION 10
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
1335
configure.cmake
Normal file
1335
configure.cmake
Normal file
File diff suppressed because it is too large
Load Diff
@ -2929,7 +2929,9 @@ AC_CONFIG_FILES(Makefile extra/Makefile mysys/Makefile dnl
|
|||||||
libmysqld/Makefile libmysqld/examples/Makefile dnl
|
libmysqld/Makefile libmysqld/examples/Makefile dnl
|
||||||
mysql-test/Makefile mysql-test/lib/My/SafeProcess/Makefile dnl
|
mysql-test/Makefile mysql-test/lib/My/SafeProcess/Makefile dnl
|
||||||
netware/Makefile sql-bench/Makefile dnl
|
netware/Makefile sql-bench/Makefile dnl
|
||||||
include/mysql_version.h plugin/Makefile win/Makefile)
|
include/mysql_version.h plugin/Makefile win/Makefile
|
||||||
|
cmake/Makefile
|
||||||
|
)
|
||||||
|
|
||||||
AC_CONFIG_COMMANDS([default], , test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h)
|
AC_CONFIG_COMMANDS([default], , test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h)
|
||||||
|
|
||||||
|
@ -13,11 +13,11 @@
|
|||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/dbug)
|
INCLUDE_DIRECTORIES(
|
||||||
|
${CMAKE_SOURCE_DIR}/dbug
|
||||||
SET(DBUG_SOURCES dbug.c factorial.c sanity.c)
|
${CMAKE_SOURCE_DIR}/include
|
||||||
|
)
|
||||||
IF(NOT SOURCE_SUBLIBS)
|
SET(DBUG_SOURCES dbug.c sanity.c)
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
|
USE_ABSOLUTE_FILENAMES(DBUG_SOURCES)
|
||||||
ADD_LIBRARY(dbug ${DBUG_SOURCES})
|
ADD_LIBRARY(dbug ${DBUG_SOURCES})
|
||||||
ENDIF(NOT SOURCE_SUBLIBS)
|
TARGET_LINK_LIBRARIES(dbug mysys)
|
||||||
|
@ -12,42 +12,78 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
INCLUDE("${PROJECT_SOURCE_DIR}/win/mysql_manifest.cmake")
|
|
||||||
|
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
|
INCLUDE_DIRECTORIES(
|
||||||
|
${CMAKE_SOURCE_DIR}/include
|
||||||
|
${ZLIB_INCLUDE_DIR}
|
||||||
|
# Following is for perror, in case NDB is compiled in.
|
||||||
|
${CMAKE_SOURCE_DIR}/storage/ndb/include
|
||||||
|
${CMAKE_SOURCE_DIR}/storage/ndb/include/util
|
||||||
|
${CMAKE_SOURCE_DIR}/storage/ndb/include/ndbapi
|
||||||
|
${CMAKE_SOURCE_DIR}/storage/ndb/include/portlib
|
||||||
|
${CMAKE_SOURCE_DIR}/storage/ndb/include/mgmapi)
|
||||||
|
|
||||||
ADD_EXECUTABLE(comp_err comp_err.c)
|
|
||||||
TARGET_LINK_LIBRARIES(comp_err dbug mysys strings zlib)
|
|
||||||
|
|
||||||
GET_TARGET_PROPERTY(COMP_ERR_EXE comp_err LOCATION)
|
IF(NOT CMAKE_CROSSCOMPILING)
|
||||||
|
ADD_EXECUTABLE(comp_err comp_err.c)
|
||||||
|
TARGET_LINK_LIBRARIES(comp_err ${ZLIB_LIBRARY} mysys)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_SOURCE_DIR}/include/mysqld_error.h
|
ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_BINARY_DIR}/include/mysqld_error.h
|
||||||
COMMAND ${COMP_ERR_EXE}
|
${PROJECT_BINARY_DIR}/sql/share/english/errmsg.sys
|
||||||
|
COMMAND comp_err
|
||||||
--charset=${PROJECT_SOURCE_DIR}/sql/share/charsets
|
--charset=${PROJECT_SOURCE_DIR}/sql/share/charsets
|
||||||
--out-dir=${PROJECT_SOURCE_DIR}/sql/share/
|
--out-dir=${PROJECT_BINARY_DIR}/sql/share/
|
||||||
--header_file=${PROJECT_SOURCE_DIR}/include/mysqld_error.h
|
--header_file=${PROJECT_BINARY_DIR}/include/mysqld_error.h
|
||||||
--name_file=${PROJECT_SOURCE_DIR}/include/mysqld_ername.h
|
--name_file=${PROJECT_BINARY_DIR}/include/mysqld_ername.h
|
||||||
--state_file=${PROJECT_SOURCE_DIR}/include/sql_state.h
|
--state_file=${PROJECT_BINARY_DIR}/include/sql_state.h
|
||||||
--in_file=${PROJECT_SOURCE_DIR}/sql/share/errmsg-utf8.txt
|
--in_file=${PROJECT_SOURCE_DIR}/sql/share/errmsg-utf8.txt
|
||||||
DEPENDS comp_err ${PROJECT_SOURCE_DIR}/sql/share/errmsg-utf8.txt)
|
DEPENDS ${PROJECT_SOURCE_DIR}/sql/share/errmsg-utf8.txt
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/comp_err.c)
|
||||||
|
|
||||||
ADD_CUSTOM_TARGET(GenError
|
ADD_CUSTOM_TARGET(GenError
|
||||||
ALL
|
ALL
|
||||||
DEPENDS ${PROJECT_SOURCE_DIR}/include/mysqld_error.h)
|
DEPENDS
|
||||||
|
${PROJECT_BINARY_DIR}/include/mysqld_error.h
|
||||||
|
${PROJECT_BINARY_DIR}/sql/share/english/errmsg.sys
|
||||||
|
${PROJECT_SOURCE_DIR}/sql/share/errmsg-utf8.txt)
|
||||||
|
|
||||||
ADD_EXECUTABLE(my_print_defaults my_print_defaults.c)
|
ADD_EXECUTABLE(my_print_defaults my_print_defaults.c)
|
||||||
TARGET_LINK_LIBRARIES(my_print_defaults strings mysys dbug taocrypt)
|
TARGET_LINK_LIBRARIES(my_print_defaults mysys)
|
||||||
|
|
||||||
ADD_EXECUTABLE(perror perror.c)
|
ADD_EXECUTABLE(perror perror.c)
|
||||||
TARGET_LINK_LIBRARIES(perror strings mysys dbug)
|
ADD_DEPENDENCIES(perror GenError)
|
||||||
|
TARGET_LINK_LIBRARIES(perror mysys)
|
||||||
|
|
||||||
ADD_EXECUTABLE(resolveip resolveip.c)
|
ADD_EXECUTABLE(resolveip resolveip.c)
|
||||||
TARGET_LINK_LIBRARIES(resolveip strings mysys dbug)
|
TARGET_LINK_LIBRARIES(resolveip mysys)
|
||||||
|
# On Solaris, inet_aton() function used by resolveip could be in resolv library
|
||||||
|
IF(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
|
||||||
|
INCLUDE(CheckFunctionExists)
|
||||||
|
INCLUDE(CheckLibraryExists)
|
||||||
|
CHECK_FUNCTION_EXISTS(inet_aton HAVE_INET_ATON)
|
||||||
|
IF(NOT HAVE_INET_ATON)
|
||||||
|
CHECK_LIBRARY_EXISTS(resolv inet_aton "" HAVE_INET_ATON_IN_RESOLV)
|
||||||
|
IF(HAVE_INET_ATON_IN_RESOLV)
|
||||||
|
TARGET_LINK_LIBRARIES(resolveip resolv)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
|
||||||
ADD_EXECUTABLE(replace replace.c)
|
ADD_EXECUTABLE(replace replace.c)
|
||||||
TARGET_LINK_LIBRARIES(replace strings mysys dbug)
|
TARGET_LINK_LIBRARIES(replace mysys)
|
||||||
|
IF(UNIX)
|
||||||
|
ADD_EXECUTABLE(innochecksum innochecksum.c)
|
||||||
|
|
||||||
|
ADD_EXECUTABLE(resolve_stack_dump resolve_stack_dump.c)
|
||||||
|
TARGET_LINK_LIBRARIES(resolve_stack_dump mysys)
|
||||||
|
|
||||||
|
ADD_EXECUTABLE(mysql_waitpid mysql_waitpid.c)
|
||||||
|
TARGET_LINK_LIBRARIES(mysql_waitpid mysys)
|
||||||
|
|
||||||
|
INSTALL(TARGETS innochecksum mysql_waitpid resolve_stack_dump DESTINATION bin)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
IF(EMBED_MANIFESTS)
|
INSTALL(TARGETS perror resolveip my_print_defaults replace DESTINATION bin)
|
||||||
MYSQL_EMBED_MANIFEST("myTest" "asInvoker")
|
|
||||||
ENDIF(EMBED_MANIFESTS)
|
|
||||||
|
@ -13,16 +13,22 @@
|
|||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extra/yassl/include
|
INCLUDE_DIRECTORIES(
|
||||||
${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/include
|
${CMAKE_SOURCE_DIR}/include
|
||||||
${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/mySTL)
|
${CMAKE_SOURCE_DIR}/extra/yassl/include
|
||||||
|
${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/include
|
||||||
ADD_DEFINITIONS("-D_LIB -DYASSL_PREFIX")
|
${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/mySTL)
|
||||||
|
|
||||||
|
ADD_DEFINITIONS(${SSL_DEFINES})
|
||||||
|
IF(CMAKE_COMPILER_IS_GNUXX)
|
||||||
|
#Remove -fno-implicit-templates
|
||||||
|
#(yassl sources cannot be compiled with it)
|
||||||
|
STRING(REPLACE "-fno-implicit-templates" "" CMAKE_CXX_FLAGS
|
||||||
|
${CMAKE_CXX_FLAGS})
|
||||||
|
ENDIF()
|
||||||
SET(YASSL_SOURCES src/buffer.cpp src/cert_wrapper.cpp src/crypto_wrapper.cpp src/handshake.cpp src/lock.cpp
|
SET(YASSL_SOURCES src/buffer.cpp src/cert_wrapper.cpp src/crypto_wrapper.cpp src/handshake.cpp src/lock.cpp
|
||||||
src/log.cpp src/socket_wrapper.cpp src/ssl.cpp src/timer.cpp src/yassl_error.cpp
|
src/log.cpp src/socket_wrapper.cpp src/ssl.cpp src/timer.cpp src/yassl_error.cpp
|
||||||
src/yassl_imp.cpp src/yassl_int.cpp)
|
src/yassl_imp.cpp src/yassl_int.cpp)
|
||||||
IF(NOT SOURCE_SUBLIBS)
|
USE_ABSOLUTE_FILENAMES(YASSL_SOURCES)
|
||||||
ADD_LIBRARY(yassl ${YASSL_SOURCES})
|
ADD_LIBRARY(yassl ${YASSL_SOURCES})
|
||||||
ADD_DEPENDENCIES(yassl GenError)
|
|
||||||
ENDIF(NOT SOURCE_SUBLIBS)
|
|
||||||
|
@ -16,6 +16,11 @@
|
|||||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/mySTL
|
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/mySTL
|
||||||
${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/include)
|
${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/include)
|
||||||
|
|
||||||
|
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
|
||||||
|
ADD_DEFINITIONS(${SSL_DEFINES})
|
||||||
|
IF(PREVENT_CPP_RUNTIME)
|
||||||
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${PREVENT_CPP_RUNTIME}")
|
||||||
|
ENDIF()
|
||||||
SET(TAOCRYPT_SOURCES src/aes.cpp src/aestables.cpp src/algebra.cpp src/arc4.cpp src/asn.cpp src/coding.cpp
|
SET(TAOCRYPT_SOURCES src/aes.cpp src/aestables.cpp src/algebra.cpp src/arc4.cpp src/asn.cpp src/coding.cpp
|
||||||
src/des.cpp src/dh.cpp src/dsa.cpp src/file.cpp src/hash.cpp src/integer.cpp src/md2.cpp
|
src/des.cpp src/dh.cpp src/dsa.cpp src/file.cpp src/hash.cpp src/integer.cpp src/md2.cpp
|
||||||
src/md4.cpp src/md5.cpp src/misc.cpp src/random.cpp src/ripemd.cpp src/rsa.cpp src/sha.cpp
|
src/md4.cpp src/md5.cpp src/misc.cpp src/random.cpp src/ripemd.cpp src/rsa.cpp src/sha.cpp
|
||||||
@ -24,6 +29,6 @@ SET(TAOCRYPT_SOURCES src/aes.cpp src/aestables.cpp src/algebra.cpp src/arc4.cpp
|
|||||||
include/error.hpp include/file.hpp include/hash.hpp include/hmac.hpp include/integer.hpp
|
include/error.hpp include/file.hpp include/hash.hpp include/hmac.hpp include/integer.hpp
|
||||||
include/md2.hpp include/md5.hpp include/misc.hpp include/modarith.hpp include/modes.hpp
|
include/md2.hpp include/md5.hpp include/misc.hpp include/modarith.hpp include/modes.hpp
|
||||||
include/random.hpp include/ripemd.hpp include/rsa.hpp include/sha.hpp)
|
include/random.hpp include/ripemd.hpp include/rsa.hpp include/sha.hpp)
|
||||||
IF(NOT SOURCE_SUBLIBS)
|
USE_ABSOLUTE_FILENAMES(TAOCRYPT_SOURCES)
|
||||||
ADD_LIBRARY(taocrypt ${TAOCRYPT_SOURCES})
|
ADD_LIBRARY(taocrypt ${TAOCRYPT_SOURCES})
|
||||||
ENDIF(NOT SOURCE_SUBLIBS)
|
|
||||||
|
61
include/CMakeLists.txt
Normal file
61
include/CMakeLists.txt
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
SET(HEADERS_GEN_CONFIGURE
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/mysql_version.h
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/my_config.h
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/mysqld_ername.h
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/mysqld_error.h
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/sql_state.h
|
||||||
|
)
|
||||||
|
SET(HEADERS_ABI
|
||||||
|
mysql.h
|
||||||
|
mysql_com.h
|
||||||
|
mysql_time.h
|
||||||
|
my_list.h
|
||||||
|
my_alloc.h
|
||||||
|
typelib.h
|
||||||
|
)
|
||||||
|
|
||||||
|
SET(HEADERS
|
||||||
|
${HEADERS_ABI}
|
||||||
|
my_dbug.h
|
||||||
|
m_string.h
|
||||||
|
my_sys.h
|
||||||
|
my_xml.h
|
||||||
|
mysql_embed.h
|
||||||
|
my_pthread.h
|
||||||
|
my_no_pthread.h
|
||||||
|
decimal.h
|
||||||
|
errmsg.h
|
||||||
|
my_global.h
|
||||||
|
my_net.h
|
||||||
|
my_getopt.h
|
||||||
|
sslopt-longopts.h
|
||||||
|
my_dir.h
|
||||||
|
sslopt-vars.h
|
||||||
|
sslopt-case.h
|
||||||
|
sql_common.h
|
||||||
|
keycache.h
|
||||||
|
m_ctype.h
|
||||||
|
my_attribute.h
|
||||||
|
${HEADERS_GEN_CONFIGURE}
|
||||||
|
)
|
||||||
|
|
||||||
|
INSTALL(FILES ${HEADERS} DESTINATION include)
|
||||||
|
INSTALL(DIRECTORY mysql/ DESTINATION include
|
||||||
|
FILES_MATCHING PATTERN "*.h")
|
||||||
|
|
||||||
|
|
@ -43,7 +43,8 @@ noinst_HEADERS = config-win.h config-netware.h my_bit.h \
|
|||||||
atomic/solaris.h \
|
atomic/solaris.h \
|
||||||
atomic/gcc_builtins.h my_libwrap.h my_stacktrace.h
|
atomic/gcc_builtins.h my_libwrap.h my_stacktrace.h
|
||||||
|
|
||||||
EXTRA_DIST = mysql.h.pp mysql/plugin.h.pp probes_mysql.d.base
|
EXTRA_DIST = mysql.h.pp mysql/plugin.h.pp probes_mysql.d.base \
|
||||||
|
CMakeLists.txt
|
||||||
|
|
||||||
# Remove built files and the symlinked directories
|
# Remove built files and the symlinked directories
|
||||||
CLEANFILES = $(BUILT_SOURCES) readline openssl probes_mysql.d probes_mysql_nodtrace.h
|
CLEANFILES = $(BUILT_SOURCES) readline openssl probes_mysql.d probes_mysql_nodtrace.h
|
||||||
|
@ -67,7 +67,7 @@ typedef struct st_key_cache
|
|||||||
HASH_LINK *free_hash_list; /* list of free hash links */
|
HASH_LINK *free_hash_list; /* list of free hash links */
|
||||||
BLOCK_LINK *free_block_list; /* list of free blocks */
|
BLOCK_LINK *free_block_list; /* list of free blocks */
|
||||||
BLOCK_LINK *block_root; /* memory for block links */
|
BLOCK_LINK *block_root; /* memory for block links */
|
||||||
uchar HUGE_PTR *block_mem; /* memory for block buffers */
|
uchar *block_mem; /* memory for block buffers */
|
||||||
BLOCK_LINK *used_last; /* ptr to the last block of the LRU chain */
|
BLOCK_LINK *used_last; /* ptr to the last block of the LRU chain */
|
||||||
BLOCK_LINK *used_ins; /* ptr to the insertion block in LRU chain */
|
BLOCK_LINK *used_ins; /* ptr to the insertion block in LRU chain */
|
||||||
pthread_mutex_t cache_lock; /* to lock access to the cache structure */
|
pthread_mutex_t cache_lock; /* to lock access to the cache structure */
|
||||||
|
@ -68,8 +68,8 @@
|
|||||||
#define C_MODE_END
|
#define C_MODE_END
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(_WIN32) || defined(_WIN64) || defined(__WIN32__) || defined(WIN32)
|
#if defined(_WIN32)
|
||||||
#include <config-win.h>
|
#include <my_config.h>
|
||||||
#elif defined(__NETWARE__)
|
#elif defined(__NETWARE__)
|
||||||
#include <my_config.h>
|
#include <my_config.h>
|
||||||
#include <config-netware.h>
|
#include <config-netware.h>
|
||||||
@ -107,6 +107,49 @@
|
|||||||
#define NETWARE_SET_SCREEN_MODE(A)
|
#define NETWARE_SET_SCREEN_MODE(A)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined (_WIN32)
|
||||||
|
/*
|
||||||
|
off_t is 32 bit long. We do not use C runtime functions
|
||||||
|
with off_t but native Win32 file IO APIs, that work with
|
||||||
|
64 bit offsets.
|
||||||
|
*/
|
||||||
|
#undef SIZEOF_OFF_T
|
||||||
|
#define SIZEOF_OFF_T 8
|
||||||
|
|
||||||
|
/*
|
||||||
|
Prevent inclusion of Windows GDI headers - they define symbol
|
||||||
|
ERROR that conflicts with mysql headers.
|
||||||
|
*/
|
||||||
|
#ifndef NOGDI
|
||||||
|
#define NOGDI
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Include common headers.*/
|
||||||
|
#include <winsock2.h>
|
||||||
|
#include <ws2tcpip.h> /* SOCKET */
|
||||||
|
#include <io.h> /* access(), chmod() */
|
||||||
|
#include <process.h> /* getpid() */
|
||||||
|
|
||||||
|
#define sleep(a) Sleep((a)*1000)
|
||||||
|
|
||||||
|
/* Define missing access() modes. */
|
||||||
|
#define F_OK 0
|
||||||
|
#define W_OK 2
|
||||||
|
|
||||||
|
/* Define missing file locking constants. */
|
||||||
|
#define F_RDLCK 1
|
||||||
|
#define F_WRLCK 2
|
||||||
|
#define F_UNLCK 3
|
||||||
|
#define F_TO_EOF 0x3FFFFFFF
|
||||||
|
|
||||||
|
/* Shared memory and named pipe connections are supported. */
|
||||||
|
#define HAVE_SMEM 1
|
||||||
|
#define HAVE_NAMED_PIPE 1
|
||||||
|
#define shared_memory_buffer_length 16000
|
||||||
|
#define default_shared_memory_base_name "MYSQL"
|
||||||
|
#endif /* _WIN32*/
|
||||||
|
|
||||||
|
|
||||||
/* Workaround for _LARGE_FILES and _LARGE_FILE_API incompatibility on AIX */
|
/* Workaround for _LARGE_FILES and _LARGE_FILE_API incompatibility on AIX */
|
||||||
#if defined(_AIX) && defined(_LARGE_FILE_API)
|
#if defined(_AIX) && defined(_LARGE_FILE_API)
|
||||||
#undef _LARGE_FILE_API
|
#undef _LARGE_FILE_API
|
||||||
@ -486,8 +529,11 @@ C_MODE_END
|
|||||||
|
|
||||||
/* Go around some bugs in different OS and compilers */
|
/* Go around some bugs in different OS and compilers */
|
||||||
#if defined (HPUX11) && defined(_LARGEFILE_SOURCE)
|
#if defined (HPUX11) && defined(_LARGEFILE_SOURCE)
|
||||||
|
#ifndef _LARGEFILE64_SOURCE
|
||||||
#define _LARGEFILE64_SOURCE
|
#define _LARGEFILE64_SOURCE
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(_HPUX_SOURCE) && defined(HAVE_SYS_STREAM_H)
|
#if defined(_HPUX_SOURCE) && defined(HAVE_SYS_STREAM_H)
|
||||||
#include <sys/stream.h> /* HPUX 10.20 defines ulong here. UGLY !!! */
|
#include <sys/stream.h> /* HPUX 10.20 defines ulong here. UGLY !!! */
|
||||||
#define HAVE_ULONG
|
#define HAVE_ULONG
|
||||||
@ -656,7 +702,9 @@ C_MODE_END
|
|||||||
/* Some types that is different between systems */
|
/* Some types that is different between systems */
|
||||||
|
|
||||||
typedef int File; /* File descriptor */
|
typedef int File; /* File descriptor */
|
||||||
#ifndef Socket_defined
|
#ifdef _WIN32
|
||||||
|
typedef SOCKET my_socket;
|
||||||
|
#else
|
||||||
typedef int my_socket; /* File descriptor for sockets */
|
typedef int my_socket; /* File descriptor for sockets */
|
||||||
#define INVALID_SOCKET -1
|
#define INVALID_SOCKET -1
|
||||||
#endif
|
#endif
|
||||||
@ -744,7 +792,13 @@ typedef SOCKET_SIZE_TYPE size_socket;
|
|||||||
#define FN_CURLIB '.' /* ./ is used as abbrev for current dir */
|
#define FN_CURLIB '.' /* ./ is used as abbrev for current dir */
|
||||||
#define FN_PARENTDIR ".." /* Parent directory; Must be a string */
|
#define FN_PARENTDIR ".." /* Parent directory; Must be a string */
|
||||||
|
|
||||||
#ifndef FN_LIBCHAR
|
#ifdef _WIN32
|
||||||
|
#define FN_LIBCHAR '\\'
|
||||||
|
#define FN_ROOTDIR "\\"
|
||||||
|
#define FN_DEVCHAR ':'
|
||||||
|
#define FN_NETWORK_DRIVES /* Uses \\ to indicate network drives */
|
||||||
|
#define FN_NO_CASE_SENCE /* Files are not case-sensitive */
|
||||||
|
#else
|
||||||
#define FN_LIBCHAR '/'
|
#define FN_LIBCHAR '/'
|
||||||
#define FN_ROOTDIR "/"
|
#define FN_ROOTDIR "/"
|
||||||
#endif
|
#endif
|
||||||
@ -828,6 +882,31 @@ typedef SOCKET_SIZE_TYPE size_socket;
|
|||||||
#undef remove /* Crashes MySQL on SCO 5.0.0 */
|
#undef remove /* Crashes MySQL on SCO 5.0.0 */
|
||||||
#ifndef __WIN__
|
#ifndef __WIN__
|
||||||
#define closesocket(A) close(A)
|
#define closesocket(A) close(A)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (_MSC_VER)
|
||||||
|
#if !defined(_WIN64)
|
||||||
|
inline double my_ulonglong2double(unsigned long long value)
|
||||||
|
{
|
||||||
|
long long nr=(long long) value;
|
||||||
|
if (nr >= 0)
|
||||||
|
return (double) nr;
|
||||||
|
return (18446744073709551616.0 + (double) nr);
|
||||||
|
}
|
||||||
|
#define ulonglong2double my_ulonglong2double
|
||||||
|
#define my_off_t2double my_ulonglong2double
|
||||||
|
#endif /* _WIN64 */
|
||||||
|
inline unsigned long long my_double2ulonglong(double d)
|
||||||
|
{
|
||||||
|
double t= d - (double) 0x8000000000000000ULL;
|
||||||
|
|
||||||
|
if (t >= 0)
|
||||||
|
return ((unsigned long long) t) + 0x8000000000000000ULL;
|
||||||
|
return (unsigned long long) d;
|
||||||
|
}
|
||||||
|
#define double2ulonglong my_double2ulonglong
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef ulonglong2double
|
#ifndef ulonglong2double
|
||||||
#define ulonglong2double(A) ((double) (ulonglong) (A))
|
#define ulonglong2double(A) ((double) (ulonglong) (A))
|
||||||
#define my_off_t2double(A) ((double) (my_off_t) (A))
|
#define my_off_t2double(A) ((double) (my_off_t) (A))
|
||||||
@ -835,7 +914,6 @@ typedef SOCKET_SIZE_TYPE size_socket;
|
|||||||
#ifndef double2ulonglong
|
#ifndef double2ulonglong
|
||||||
#define double2ulonglong(A) ((ulonglong) (double) (A))
|
#define double2ulonglong(A) ((ulonglong) (double) (A))
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef offsetof
|
#ifndef offsetof
|
||||||
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
|
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
|
||||||
@ -1092,15 +1170,18 @@ typedef long long intptr;
|
|||||||
#define SYSTEM_SIZEOF_OFF_T SIZEOF_OFF_T
|
#define SYSTEM_SIZEOF_OFF_T SIZEOF_OFF_T
|
||||||
#endif /* USE_RAID */
|
#endif /* USE_RAID */
|
||||||
|
|
||||||
|
#if defined(_WIN32)
|
||||||
|
typedef unsigned long long my_off_t;
|
||||||
|
typedef unsigned long long os_off_t;
|
||||||
|
#else
|
||||||
|
typedef off_t os_off_t;
|
||||||
#if SIZEOF_OFF_T > 4
|
#if SIZEOF_OFF_T > 4
|
||||||
typedef ulonglong my_off_t;
|
typedef ulonglong my_off_t;
|
||||||
#else
|
#else
|
||||||
typedef unsigned long my_off_t;
|
typedef unsigned long my_off_t;
|
||||||
#endif
|
#endif
|
||||||
|
#endif /*_WIN32*/
|
||||||
#define MY_FILEPOS_ERROR (~(my_off_t) 0)
|
#define MY_FILEPOS_ERROR (~(my_off_t) 0)
|
||||||
#if !defined(__WIN__)
|
|
||||||
typedef off_t os_off_t;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__WIN__)
|
#if defined(__WIN__)
|
||||||
#define socket_errno WSAGetLastError()
|
#define socket_errno WSAGetLastError()
|
||||||
@ -1127,9 +1208,6 @@ typedef uint8 int7; /* Most effective integer 0 <= x <= 127 */
|
|||||||
typedef short int15; /* Most effective integer 0 <= x <= 32767 */
|
typedef short int15; /* Most effective integer 0 <= x <= 32767 */
|
||||||
typedef int myf; /* Type of MyFlags in my_funcs */
|
typedef int myf; /* Type of MyFlags in my_funcs */
|
||||||
typedef char my_bool; /* Small bool */
|
typedef char my_bool; /* Small bool */
|
||||||
#if !defined(bool) && (!defined(HAVE_BOOL) || !defined(__cplusplus))
|
|
||||||
typedef char bool; /* Ordinary boolean values 0 1 */
|
|
||||||
#endif
|
|
||||||
/* Macros for converting *constants* to the right type */
|
/* Macros for converting *constants* to the right type */
|
||||||
#define INT8(v) (int8) (v)
|
#define INT8(v) (int8) (v)
|
||||||
#define INT16(v) (int16) (v)
|
#define INT16(v) (int16) (v)
|
||||||
@ -1522,12 +1600,15 @@ do { doubleget_union _tmp; \
|
|||||||
#define NO_EMBEDDED_ACCESS_CHECKS
|
#define NO_EMBEDDED_ACCESS_CHECKS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_DLOPEN
|
#if defined(_WIN32)
|
||||||
#if defined(__WIN__)
|
#define dlsym(lib, name) (void*)GetProcAddress((HMODULE)lib, name)
|
||||||
#define dlsym(lib, name) GetProcAddress((HMODULE)lib, name)
|
|
||||||
#define dlopen(libname, unused) LoadLibraryEx(libname, NULL, 0)
|
#define dlopen(libname, unused) LoadLibraryEx(libname, NULL, 0)
|
||||||
#define dlclose(lib) FreeLibrary((HMODULE)lib)
|
#define dlclose(lib) FreeLibrary((HMODULE)lib)
|
||||||
#elif defined(HAVE_DLFCN_H)
|
#define HAVE_DLOPEN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_DLOPEN
|
||||||
|
#if defined(HAVE_DLFCN_H)
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
@ -117,9 +117,11 @@ struct tm *gmtime_r(const time_t *timep,struct tm *tmp);
|
|||||||
|
|
||||||
void pthread_exit(void *a);
|
void pthread_exit(void *a);
|
||||||
int pthread_join(pthread_t thread, void **value_ptr);
|
int pthread_join(pthread_t thread, void **value_ptr);
|
||||||
|
int pthread_cancel(pthread_t thread);
|
||||||
|
|
||||||
|
#ifndef ETIMEDOUT
|
||||||
#define ETIMEDOUT 145 /* Win32 doesn't have this */
|
#define ETIMEDOUT 145 /* Win32 doesn't have this */
|
||||||
|
#endif
|
||||||
#define HAVE_LOCALTIME_R 1
|
#define HAVE_LOCALTIME_R 1
|
||||||
#define _REENTRANT 1
|
#define _REENTRANT 1
|
||||||
#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1
|
#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1
|
||||||
@ -154,6 +156,7 @@ int pthread_join(pthread_t thread, void **value_ptr);
|
|||||||
#define pthread_condattr_destroy(A)
|
#define pthread_condattr_destroy(A)
|
||||||
|
|
||||||
#define my_pthread_getprio(thread_id) pthread_dummy(0)
|
#define my_pthread_getprio(thread_id) pthread_dummy(0)
|
||||||
|
#define my_sigset(A,B) signal(A,B)
|
||||||
|
|
||||||
#else /* Normal threads */
|
#else /* Normal threads */
|
||||||
|
|
||||||
@ -699,25 +702,32 @@ extern uint thd_lib_detected;
|
|||||||
Warning:
|
Warning:
|
||||||
When compiling without threads, this file is not included.
|
When compiling without threads, this file is not included.
|
||||||
See the *other* declarations of thread_safe_xxx in include/my_global.h
|
See the *other* declarations of thread_safe_xxx in include/my_global.h
|
||||||
|
|
||||||
Second warning:
|
|
||||||
See include/config-win.h, for yet another implementation.
|
|
||||||
*/
|
*/
|
||||||
#ifdef THREAD
|
#ifdef THREAD
|
||||||
#ifndef thread_safe_increment
|
#ifndef thread_safe_increment
|
||||||
|
#ifdef _WIN32
|
||||||
|
#define thread_safe_increment(V,L) InterlockedIncrement((long*) &(V))
|
||||||
|
#define thread_safe_decrement(V,L) InterlockedDecrement((long*) &(V))
|
||||||
|
#else
|
||||||
#define thread_safe_increment(V,L) \
|
#define thread_safe_increment(V,L) \
|
||||||
(pthread_mutex_lock((L)), (V)++, pthread_mutex_unlock((L)))
|
(pthread_mutex_lock((L)), (V)++, pthread_mutex_unlock((L)))
|
||||||
#define thread_safe_decrement(V,L) \
|
#define thread_safe_decrement(V,L) \
|
||||||
(pthread_mutex_lock((L)), (V)--, pthread_mutex_unlock((L)))
|
(pthread_mutex_lock((L)), (V)--, pthread_mutex_unlock((L)))
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef thread_safe_add
|
#ifndef thread_safe_add
|
||||||
|
#ifdef _WIN32
|
||||||
|
#define thread_safe_add(V,C,L) InterlockedExchangeAdd((long*) &(V),(C))
|
||||||
|
#define thread_safe_sub(V,C,L) InterlockedExchangeAdd((long*) &(V),-(long) (C))
|
||||||
|
#else
|
||||||
#define thread_safe_add(V,C,L) \
|
#define thread_safe_add(V,C,L) \
|
||||||
(pthread_mutex_lock((L)), (V)+=(C), pthread_mutex_unlock((L)))
|
(pthread_mutex_lock((L)), (V)+=(C), pthread_mutex_unlock((L)))
|
||||||
#define thread_safe_sub(V,C,L) \
|
#define thread_safe_sub(V,C,L) \
|
||||||
(pthread_mutex_lock((L)), (V)-=(C), pthread_mutex_unlock((L)))
|
(pthread_mutex_lock((L)), (V)-=(C), pthread_mutex_unlock((L)))
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
statistics_xxx functions are for non critical statistic,
|
statistics_xxx functions are for non critical statistic,
|
||||||
|
@ -34,6 +34,9 @@ extern int NEAR my_errno; /* Last error in mysys */
|
|||||||
#include <m_ctype.h> /* for CHARSET_INFO */
|
#include <m_ctype.h> /* for CHARSET_INFO */
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <typelib.h>
|
#include <typelib.h>
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include <malloc.h> /*for alloca*/
|
||||||
|
#endif
|
||||||
|
|
||||||
#define MYSYS_PROGRAM_USES_CURSES() { error_handler_hook = my_message_curses; mysys_uses_curses=1; }
|
#define MYSYS_PROGRAM_USES_CURSES() { error_handler_hook = my_message_curses; mysys_uses_curses=1; }
|
||||||
#define MYSYS_PROGRAM_DONT_USE_CURSES() { error_handler_hook = my_message_no_curses; mysys_uses_curses=0;}
|
#define MYSYS_PROGRAM_DONT_USE_CURSES() { error_handler_hook = my_message_no_curses; mysys_uses_curses=0;}
|
||||||
|
@ -18,10 +18,25 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
On Windows, exports from DLL need to be declared
|
On Windows, exports from DLL need to be declared
|
||||||
|
Also, plugin needs to be declared as extern "C" because MSVC
|
||||||
|
unlike other compilers, uses C++ mangling for variables not only
|
||||||
|
for functions.
|
||||||
*/
|
*/
|
||||||
#if (defined(_WIN32) && defined(MYSQL_DYNAMIC_PLUGIN))
|
#if defined(_MSC_VER)
|
||||||
#define MYSQL_PLUGIN_EXPORT extern "C" __declspec(dllexport)
|
#if defined(MYSQL_DYNAMIC_PLUGIN)
|
||||||
#else
|
#ifdef __cplusplus
|
||||||
|
#define MYSQL_PLUGIN_EXPORT extern "C" __declspec(dllexport)
|
||||||
|
#else
|
||||||
|
#define MYSQL_PLUGIN_EXPORT __declspec(dllexport)
|
||||||
|
#endif
|
||||||
|
#else /* MYSQL_DYNAMIC_PLUGIN */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define MYSQL_PLUGIN_EXPORT extern "C"
|
||||||
|
#else
|
||||||
|
#define MYSQL_PLUGIN_EXPORT
|
||||||
|
#endif
|
||||||
|
#endif /*MYSQL_DYNAMIC_PLUGIN */
|
||||||
|
#else /*_MSC_VER */
|
||||||
#define MYSQL_PLUGIN_EXPORT
|
#define MYSQL_PLUGIN_EXPORT
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -87,9 +102,9 @@ typedef struct st_mysql_xid MYSQL_XID;
|
|||||||
|
|
||||||
#ifndef MYSQL_DYNAMIC_PLUGIN
|
#ifndef MYSQL_DYNAMIC_PLUGIN
|
||||||
#define __MYSQL_DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS) \
|
#define __MYSQL_DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS) \
|
||||||
int VERSION= MYSQL_PLUGIN_INTERFACE_VERSION; \
|
MYSQL_PLUGIN_EXPORT int VERSION= MYSQL_PLUGIN_INTERFACE_VERSION; \
|
||||||
int PSIZE= sizeof(struct st_mysql_plugin); \
|
MYSQL_PLUGIN_EXPORT int PSIZE= sizeof(struct st_mysql_plugin); \
|
||||||
struct st_mysql_plugin DECLS[]= {
|
MYSQL_PLUGIN_EXPORT struct st_mysql_plugin DECLS[]= {
|
||||||
#else
|
#else
|
||||||
#define __MYSQL_DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS) \
|
#define __MYSQL_DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS) \
|
||||||
MYSQL_PLUGIN_EXPORT int _mysql_plugin_interface_version_= MYSQL_PLUGIN_INTERFACE_VERSION; \
|
MYSQL_PLUGIN_EXPORT int _mysql_plugin_interface_version_= MYSQL_PLUGIN_INTERFACE_VERSION; \
|
||||||
|
@ -64,7 +64,7 @@ typedef my_bool ALARM;
|
|||||||
#if defined(__WIN__)
|
#if defined(__WIN__)
|
||||||
typedef struct st_thr_alarm_entry
|
typedef struct st_thr_alarm_entry
|
||||||
{
|
{
|
||||||
rf_SetTimer crono;
|
UINT_PTR crono;
|
||||||
} thr_alarm_entry;
|
} thr_alarm_entry;
|
||||||
|
|
||||||
#else /* System with posix threads */
|
#else /* System with posix threads */
|
||||||
|
@ -12,102 +12,106 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
INCLUDE("${PROJECT_SOURCE_DIR}/win/mysql_manifest.cmake")
|
|
||||||
|
INCLUDE_DIRECTORIES(
|
||||||
|
${CMAKE_SOURCE_DIR}/include
|
||||||
|
${CMAKE_SOURCE_DIR}/libmysql
|
||||||
|
${CMAKE_SOURCE_DIR}/regex
|
||||||
|
${CMAKE_SOURCE_DIR}/sql
|
||||||
|
${CMAKE_SOURCE_DIR}/strings
|
||||||
|
${SSL_INCLUDE_DIRS}
|
||||||
|
${SSL_INTERNAL_INCLUDE_DIRS}
|
||||||
|
${ZLIB_INCLUDE_DIR})
|
||||||
|
ADD_DEFINITIONS(${SSL_DEFINES})
|
||||||
|
|
||||||
|
|
||||||
# Note that we don't link with the libraries "strings" or "mysys"
|
#Remove -fno-implicit-templates
|
||||||
# here, instead we recompile the files needed and include them
|
#(yassl sources cannot be compiled with it)
|
||||||
# directly. This means we don't have to worry here about if these
|
STRING(REPLACE "-fno-implicit-templates" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||||
# libraries are compiled defining USE_TLS or not. Not that it *should*
|
ADD_DEFINITIONS(-DDISABLE_DTRACE)
|
||||||
# have been a problem anyway, they don't use thread local storage.
|
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
|
|
||||||
${CMAKE_SOURCE_DIR}/libmysql
|
|
||||||
${CMAKE_SOURCE_DIR}/regex
|
|
||||||
${CMAKE_SOURCE_DIR}/sql
|
|
||||||
${CMAKE_SOURCE_DIR}/strings)
|
|
||||||
|
|
||||||
# We include the source file listing instead of referencing the
|
|
||||||
# libraries. At least with CMake 2.4 and Visual Studio 2005 a static
|
|
||||||
# library created from other static libraries would not be complete,
|
|
||||||
# i.e. the libraries listed in TARGET_LINK_LIBRARIES() were just
|
|
||||||
# ignored.
|
|
||||||
|
|
||||||
|
|
||||||
# Include and add the directory path
|
|
||||||
SET(SOURCE_SUBLIBS TRUE)
|
|
||||||
SET(LIB_SOURCES "")
|
|
||||||
|
|
||||||
INCLUDE(${CMAKE_SOURCE_DIR}/zlib/CMakeLists.txt)
|
|
||||||
FOREACH(rpath ${ZLIB_SOURCES})
|
|
||||||
SET(LIB_SOURCES ${LIB_SOURCES} ../zlib/${rpath})
|
|
||||||
ENDFOREACH(rpath)
|
|
||||||
|
|
||||||
# FIXME only needed if build type is "Debug", but CMAKE_BUILD_TYPE is
|
|
||||||
# not set during configure time.
|
|
||||||
INCLUDE(${CMAKE_SOURCE_DIR}/dbug/CMakeLists.txt)
|
|
||||||
FOREACH(rpath ${DBUG_SOURCES})
|
|
||||||
SET(LIB_SOURCES ${LIB_SOURCES} ../dbug/${rpath})
|
|
||||||
ENDFOREACH(rpath)
|
|
||||||
|
|
||||||
INCLUDE(${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/CMakeLists.txt)
|
|
||||||
FOREACH(rpath ${TAOCRYPT_SOURCES})
|
|
||||||
SET(LIB_SOURCES ${LIB_SOURCES} ../extra/yassl/taocrypt/${rpath})
|
|
||||||
ENDFOREACH(rpath)
|
|
||||||
|
|
||||||
INCLUDE(${CMAKE_SOURCE_DIR}/extra/yassl/CMakeLists.txt)
|
|
||||||
FOREACH(rpath ${YASSL_SOURCES})
|
|
||||||
SET(LIB_SOURCES ${LIB_SOURCES} ../extra/yassl/${rpath})
|
|
||||||
ENDFOREACH(rpath)
|
|
||||||
|
|
||||||
SET(CLIENT_SOURCES ../mysys/array.c ../strings/bchange.c ../strings/bmove.c
|
|
||||||
../strings/bmove_upp.c ../mysys/charset-def.c ../mysys/charset.c
|
|
||||||
../sql-common/client.c ../strings/ctype-big5.c ../strings/ctype-bin.c
|
|
||||||
../strings/ctype-cp932.c ../strings/ctype-czech.c ../strings/ctype-euc_kr.c
|
|
||||||
../strings/ctype-eucjpms.c ../strings/ctype-extra.c ../strings/ctype-gb2312.c
|
|
||||||
../strings/ctype-gbk.c ../strings/ctype-latin1.c ../strings/ctype-mb.c
|
|
||||||
../strings/ctype-simple.c ../strings/ctype-sjis.c ../strings/ctype-tis620.c
|
|
||||||
../strings/ctype-uca.c ../strings/ctype-ucs2.c ../strings/ctype-ujis.c
|
|
||||||
../strings/ctype-utf8.c ../strings/ctype-win1250ch.c ../strings/ctype.c
|
|
||||||
../mysys/default.c errmsg.c ../mysys/errors.c
|
|
||||||
../mysys/hash.c ../mysys/my_sleep.c ../mysys/default_modify.c
|
|
||||||
get_password.c ../strings/int2str.c ../strings/is_prefix.c
|
|
||||||
libmysql.c ../mysys/list.c ../strings/llstr.c
|
|
||||||
../strings/longlong2str.c ../mysys/mf_arr_appstr.c ../mysys/mf_cache.c
|
|
||||||
../mysys/mf_dirname.c ../mysys/mf_fn_ext.c ../mysys/mf_format.c
|
|
||||||
../mysys/mf_iocache.c ../mysys/mf_iocache2.c ../mysys/mf_loadpath.c
|
|
||||||
../mysys/mf_pack.c ../mysys/mf_path.c ../mysys/mf_tempfile.c ../mysys/mf_unixpath.c
|
|
||||||
../mysys/mf_wcomp.c ../mysys/mulalloc.c ../mysys/my_access.c ../mysys/my_alloc.c
|
|
||||||
../mysys/my_chsize.c ../mysys/my_compress.c ../mysys/my_create.c
|
|
||||||
../mysys/my_delete.c ../mysys/my_div.c ../mysys/my_error.c ../mysys/my_file.c
|
|
||||||
../mysys/my_fopen.c ../mysys/my_fstream.c ../mysys/my_gethostbyname.c
|
|
||||||
../mysys/my_getopt.c ../mysys/my_getwd.c ../mysys/my_init.c ../mysys/my_lib.c
|
|
||||||
../mysys/my_malloc.c ../mysys/my_messnc.c ../mysys/my_net.c ../mysys/my_once.c
|
|
||||||
../mysys/my_open.c ../mysys/my_pread.c ../mysys/my_pthread.c ../mysys/my_read.c
|
|
||||||
../mysys/my_realloc.c ../mysys/my_rename.c ../mysys/my_seek.c
|
|
||||||
../mysys/my_static.c ../strings/my_strtoll10.c ../mysys/my_symlink.c
|
|
||||||
../mysys/my_symlink2.c ../mysys/my_thr_init.c ../sql-common/my_time.c
|
|
||||||
../strings/my_vsnprintf.c ../mysys/my_wincond.c ../mysys/my_winthread.c
|
|
||||||
../mysys/my_write.c ../sql/net_serv.cc ../sql-common/pack.c ../sql/password.c
|
|
||||||
../mysys/safemalloc.c ../mysys/sha1.c ../strings/str2int.c
|
|
||||||
../strings/str_alloc.c ../strings/strcend.c ../strings/strcont.c ../strings/strend.c
|
|
||||||
../strings/strfill.c ../mysys/string.c ../strings/strinstr.c ../strings/strmake.c
|
|
||||||
../strings/strmov.c ../strings/strnlen.c ../strings/strnmov.c ../strings/strtod.c
|
|
||||||
../strings/strtoll.c ../strings/strtoull.c ../strings/strxmov.c ../strings/strxnmov.c
|
|
||||||
../mysys/thr_mutex.c ../mysys/typelib.c ../vio/vio.c ../vio/viosocket.c
|
|
||||||
../vio/viossl.c ../vio/viosslfactories.c ../strings/xml.c ../mysys/mf_qsort.c
|
|
||||||
../mysys/my_getsystime.c ../mysys/my_sync.c ../mysys/my_winerr.c ../mysys/my_winfile.c ${LIB_SOURCES})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ADD_LIBRARY(mysqlclient STATIC ${CLIENT_SOURCES})
|
SET(CLIENT_SOURCES
|
||||||
|
get_password.c
|
||||||
|
libmysql.c
|
||||||
|
errmsg.c
|
||||||
|
../sql-common/client.c
|
||||||
|
../sql-common/my_time.c
|
||||||
|
../sql/net_serv.cc
|
||||||
|
../sql-common/pack.c
|
||||||
|
../sql/password.c
|
||||||
|
)
|
||||||
|
|
||||||
|
ADD_LIBRARY(clientlib STATIC ${CLIENT_SOURCES})
|
||||||
|
ADD_DEPENDENCIES(clientlib GenError)
|
||||||
|
|
||||||
|
# Merge several static libraries into one big mysqlclient.
|
||||||
|
SET(LIBS dbug strings vio mysys ${ZLIB_LIBRARY} ${SSL_LIBRARIES})
|
||||||
|
MERGE_STATIC_LIBS(mysqlclient mysqlclient "${LIBS};clientlib")
|
||||||
|
|
||||||
ADD_DEPENDENCIES(mysqlclient GenError)
|
ADD_DEPENDENCIES(mysqlclient GenError)
|
||||||
TARGET_LINK_LIBRARIES(mysqlclient)
|
SET_TARGET_PROPERTIES(mysqlclient PROPERTIES CLEAN_DIRECT_OUTPUT 1)
|
||||||
|
|
||||||
ADD_LIBRARY(libmysql SHARED ${CLIENT_SOURCES} dll.c libmysql.def)
|
|
||||||
ADD_DEPENDENCIES(libmysql GenError)
|
|
||||||
TARGET_LINK_LIBRARIES(libmysql)
|
|
||||||
|
|
||||||
IF(EMBED_MANIFESTS)
|
# Make shared client library
|
||||||
MYSQL_EMBED_MANIFEST("myTest" "asInvoker")
|
IF(WIN32)
|
||||||
ENDIF(EMBED_MANIFESTS)
|
SET(SHARED_OUTPUT_NAME libmysql)
|
||||||
|
ELSE()
|
||||||
|
SET(SHARED_OUTPUT_NAME mysqlclient)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
# On Windows, we can make a shared library out of static.
|
||||||
|
# On Unix, we need to recompile all sources, unless we compiled with -fPIC, in
|
||||||
|
# which case we can link static libraries to shared.
|
||||||
|
IF(MSVC)
|
||||||
|
STATIC_TO_SHARED(mysqlclient libmysql libmysql.def)
|
||||||
|
ELSE()
|
||||||
|
SET(LIBMYSQL_SOURCES ${CLIENT_SOURCES})
|
||||||
|
|
||||||
|
IF(NOT WITH_PIC)
|
||||||
|
# Add all sources that come into common static libs.
|
||||||
|
FOREACH(LIB ${LIBS})
|
||||||
|
GET_TARGET_PROPERTY(SRC ${LIB} SOURCES)
|
||||||
|
IF (NOT SRC)
|
||||||
|
# This must be system shared lib (zlib or openssl)
|
||||||
|
# Users of libmysql must link with it too.
|
||||||
|
LIST(APPEND OS_LIBS ${LIB})
|
||||||
|
ELSE()
|
||||||
|
LIST(APPEND LIBMYSQL_SOURCES ${SRC})
|
||||||
|
ENDIF()
|
||||||
|
ENDFOREACH()
|
||||||
|
|
||||||
|
# Some extra flags as in mysys
|
||||||
|
IF(CMAKE_COMPILER_IS_GNUCC AND NOT HAVE_CXX_NEW)
|
||||||
|
SET_SOURCE_FILES_PROPERTIES(${CMAKE_SOURCE_DIR}/mysys/my_new.cc
|
||||||
|
PROPERTIES COMPILE_FLAGS "-DUSE_MYSYS_NEW")
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
|
||||||
|
ADD_LIBRARY(libmysql SHARED ${LIBMYSQL_SOURCES})
|
||||||
|
ADD_DEPENDENCIES(libmysql GenError)
|
||||||
|
SET_TARGET_PROPERTIES(libmysql PROPERTIES OUTPUT_NAME ${SHARED_OUTPUT_NAME}
|
||||||
|
SOVERSION "${SHARED_LIB_MAJOR_VERSION}.0")
|
||||||
|
SET_TARGET_PROPERTIES(libmysql PROPERTIES CLEAN_DIRECT_OUTPUT 1)
|
||||||
|
|
||||||
|
IF(WITH_PIC)
|
||||||
|
TARGET_LINK_LIBRARIES(libmysql ${LIBS})
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(OS_LIBS)
|
||||||
|
TARGET_LINK_LIBRARIES(libmysql ${OS_LIBS})
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
|
||||||
|
IF(UNIX)
|
||||||
|
# Install links to shared and static libraries
|
||||||
|
# (append _r to base name)
|
||||||
|
INSTALL_SYMLINK(${CMAKE_SHARED_LIBRARY_PREFIX}mysqlclient_r libmysql lib)
|
||||||
|
INSTALL_SYMLINK(${CMAKE_STATIC_LIBRARY_PREFIX}mysqlclient_r mysqlclient lib)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
INSTALL(TARGETS mysqlclient libmysql DESTINATION lib)
|
||||||
|
INSTALL_DEBUG_SYMBOLS( "mysqlclient;libmysql")
|
||||||
|
@ -13,84 +13,45 @@
|
|||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
ADD_DEFINITIONS(-DMYSQL_SERVER -DEMBEDDED_LIBRARY -DHAVE_DLOPEN)
|
ADD_DEFINITIONS(-DMYSQL_SERVER -DEMBEDDED_LIBRARY -DDISABLE_DTRACE
|
||||||
|
${SSL_DEFINES})
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
|
INCLUDE_DIRECTORIES(
|
||||||
${CMAKE_SOURCE_DIR}/libmysqld
|
${CMAKE_SOURCE_DIR}/include
|
||||||
${CMAKE_SOURCE_DIR}/libmysql
|
${CMAKE_SOURCE_DIR}/libmysql
|
||||||
${CMAKE_SOURCE_DIR}/sql
|
${CMAKE_SOURCE_DIR}/libmysqld
|
||||||
${CMAKE_SOURCE_DIR}/regex
|
${CMAKE_SOURCE_DIR}/sql
|
||||||
${CMAKE_SOURCE_DIR}/extra/yassl/include
|
${CMAKE_BINARY_DIR}/sql
|
||||||
${CMAKE_SOURCE_DIR}/zlib)
|
${CMAKE_SOURCE_DIR}/regex
|
||||||
|
${ZLIB_INCLUDE_DIR}
|
||||||
|
${SSL_INCLUDE_DIRS}
|
||||||
|
${SSL_INTERNAL_INCLUDE_DIRS}
|
||||||
|
${NDB_CLUSTER_INCLUDES}
|
||||||
|
${CMAKE_SOURCE_DIR}/sql/backup
|
||||||
|
)
|
||||||
|
|
||||||
|
SET(GEN_SOURCES
|
||||||
|
${CMAKE_BINARY_DIR}/sql/sql_yacc.h
|
||||||
|
${CMAKE_BINARY_DIR}/sql/sql_yacc.cc
|
||||||
|
${CMAKE_BINARY_DIR}/sql/lex_hash.h
|
||||||
|
)
|
||||||
|
|
||||||
SET(GEN_SOURCES ${CMAKE_SOURCE_DIR}/sql/sql_yacc.cc
|
SET_SOURCE_FILES_PROPERTIES(${GEN_SOURCES} PROPERTIES GENERATED TRUE)
|
||||||
${CMAKE_SOURCE_DIR}/sql/sql_yacc.h
|
SET(LIBS dbug strings regex mysys vio ${ZLIB_LIBRARY} ${SSL_LIBRARIES}
|
||||||
${CMAKE_SOURCE_DIR}/sql/message.h
|
${MYSQLD_STATIC_PLUGIN_LIBS} ${NDB_CLIENT_LIBS})
|
||||||
${CMAKE_SOURCE_DIR}/sql/message.rc
|
|
||||||
${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc
|
|
||||||
${CMAKE_SOURCE_DIR}/sql/lex_hash.h)
|
|
||||||
|
|
||||||
SET_SOURCE_FILES_PROPERTIES(${GEN_SOURCES} PROPERTIES GENERATED 1)
|
# Quirk: recompile selected storage engines with -DEMBEDDED_LIBRARY
|
||||||
|
# They depend on internal structures like THD that is different in embedded.
|
||||||
# Include and add the directory path
|
SET(RECOMPILE_ENGINES myisam myisammrg heap ndbcluster)
|
||||||
SET(SOURCE_SUBLIBS TRUE)
|
FOREACH(ENGINE ${RECOMPILE_ENGINES})
|
||||||
SET(LIB_SOURCES "")
|
LIST(REMOVE_ITEM LIBS ${ENGINE})
|
||||||
|
GET_TARGET_PROPERTY(SRC ${ENGINE} SOURCES)
|
||||||
INCLUDE(${CMAKE_SOURCE_DIR}/zlib/CMakeLists.txt)
|
IF(SRC)
|
||||||
FOREACH(rpath ${ZLIB_SOURCES})
|
LIST(APPEND ENGINE_SOURCES ${SRC})
|
||||||
SET(LIB_SOURCES ${LIB_SOURCES} ../zlib/${rpath})
|
ENDIF()
|
||||||
ENDFOREACH(rpath)
|
ENDFOREACH()
|
||||||
|
|
||||||
# FIXME only needed if build type is "Debug", but CMAKE_BUILD_TYPE is
|
|
||||||
# not set during configure time.
|
|
||||||
INCLUDE(${CMAKE_SOURCE_DIR}/dbug/CMakeLists.txt)
|
|
||||||
FOREACH(rpath ${DBUG_SOURCES})
|
|
||||||
SET(LIB_SOURCES ${LIB_SOURCES} ../dbug/${rpath})
|
|
||||||
ENDFOREACH(rpath)
|
|
||||||
|
|
||||||
INCLUDE(${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/CMakeLists.txt)
|
|
||||||
FOREACH(rpath ${TAOCRYPT_SOURCES})
|
|
||||||
SET(LIB_SOURCES ${LIB_SOURCES} ../extra/yassl/taocrypt/${rpath})
|
|
||||||
ENDFOREACH(rpath)
|
|
||||||
|
|
||||||
INCLUDE(${CMAKE_SOURCE_DIR}/extra/yassl/CMakeLists.txt)
|
|
||||||
FOREACH(rpath ${YASSL_SOURCES})
|
|
||||||
SET(LIB_SOURCES ${LIB_SOURCES} ../extra/yassl/${rpath})
|
|
||||||
ENDFOREACH(rpath)
|
|
||||||
|
|
||||||
INCLUDE(${CMAKE_SOURCE_DIR}/strings/CMakeLists.txt)
|
|
||||||
FOREACH(rpath ${STRINGS_SOURCES})
|
|
||||||
SET(LIB_SOURCES ${LIB_SOURCES} ../strings/${rpath})
|
|
||||||
ENDFOREACH(rpath)
|
|
||||||
|
|
||||||
INCLUDE(${CMAKE_SOURCE_DIR}/regex/CMakeLists.txt)
|
|
||||||
FOREACH(rpath ${REGEX_SOURCES})
|
|
||||||
SET(LIB_SOURCES ${LIB_SOURCES} ../regex/${rpath})
|
|
||||||
ENDFOREACH(rpath)
|
|
||||||
|
|
||||||
INCLUDE(${CMAKE_SOURCE_DIR}/mysys/CMakeLists.txt)
|
|
||||||
FOREACH(rpath ${MYSYS_SOURCES})
|
|
||||||
SET(LIB_SOURCES ${LIB_SOURCES} ../mysys/${rpath})
|
|
||||||
ENDFOREACH(rpath)
|
|
||||||
|
|
||||||
INCLUDE(${CMAKE_SOURCE_DIR}/vio/CMakeLists.txt)
|
|
||||||
FOREACH(rpath ${VIO_SOURCES})
|
|
||||||
SET(LIB_SOURCES ${LIB_SOURCES} ../vio/${rpath})
|
|
||||||
ENDFOREACH(rpath)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
FOREACH (ENGINE_LIB ${MYSQLD_STATIC_ENGINE_LIBS})
|
|
||||||
STRING(TOUPPER ${ENGINE_LIB} ENGINE_LIB_UPPER)
|
|
||||||
SET(ENGINE_DIR ${${ENGINE_LIB_UPPER}_DIR})
|
|
||||||
INCLUDE(${CMAKE_SOURCE_DIR}/storage/${ENGINE_DIR}/CMakeLists.txt)
|
|
||||||
FOREACH(rpath ${${ENGINE_LIB_UPPER}_SOURCES})
|
|
||||||
SET(LIB_SOURCES ${LIB_SOURCES} ${CMAKE_SOURCE_DIR}/storage/${ENGINE_DIR}/${rpath})
|
|
||||||
ENDFOREACH(rpath)
|
|
||||||
ENDFOREACH(ENGINE_LIB)
|
|
||||||
|
|
||||||
|
|
||||||
SET(SOURCE_SUBLIBS FALSE)
|
|
||||||
|
|
||||||
SET(LIBMYSQLD_SOURCES emb_qcache.cc libmysqld.c lib_sql.cc
|
SET(LIBMYSQLD_SOURCES emb_qcache.cc libmysqld.c lib_sql.cc
|
||||||
../libmysql/libmysql.c ../libmysql/errmsg.c ../client/get_password.c
|
../libmysql/libmysql.c ../libmysql/errmsg.c ../client/get_password.c
|
||||||
@ -133,29 +94,35 @@ SET(LIBMYSQLD_SOURCES emb_qcache.cc libmysqld.c lib_sql.cc
|
|||||||
../sql/partition_info.cc ../sql/sql_connect.cc
|
../sql/partition_info.cc ../sql/sql_connect.cc
|
||||||
../sql/scheduler.cc ../sql/event_parse_data.cc
|
../sql/scheduler.cc ../sql/event_parse_data.cc
|
||||||
../sql/sql_signal.cc ../sql/rpl_handler.cc
|
../sql/sql_signal.cc ../sql/rpl_handler.cc
|
||||||
|
${CMAKE_BINARY_DIR}/sql/sql_builtin.cc
|
||||||
${GEN_SOURCES}
|
${GEN_SOURCES}
|
||||||
${LIB_SOURCES})
|
${ENGINE_SOURCES}
|
||||||
|
${MYSYS_LIBWRAP_SOURCE}
|
||||||
|
)
|
||||||
|
|
||||||
# Seems we cannot make a library without at least one source file. So use a
|
|
||||||
# dummy empty file
|
|
||||||
FILE(WRITE cmake_dummy.c " ")
|
|
||||||
|
|
||||||
# Tried use the correct ${GEN_SOURCES} as dependency, worked on Unix
|
ADD_LIBRARY(mysqlserver_int STATIC ${LIBMYSQLD_SOURCES})
|
||||||
# but not on Windows and Visual Studio generators. Likely because they
|
ADD_DEPENDENCIES(mysqlserver_int GenError GenServerSource)
|
||||||
# are no real targets from the Visual Studio project files view. Added
|
|
||||||
# custom targets to "sql/CMakeLists.txt" and reference them here.
|
|
||||||
ADD_LIBRARY(mysqlserver STATIC ${LIBMYSQLD_SOURCES})
|
|
||||||
ADD_DEPENDENCIES(mysqlserver GenServerSource GenError)
|
|
||||||
TARGET_LINK_LIBRARIES(mysqlserver)
|
|
||||||
|
|
||||||
# Add any additional libraries requested by engine(s)
|
# On Windows, static embedded server library is called mysqlserver.lib
|
||||||
FOREACH (ENGINE_LIB ${MYSQLD_STATIC_ENGINE_LIBS})
|
# On Unix, it is libmysqld.a
|
||||||
STRING(TOUPPER ${ENGINE_LIB} ENGINE_LIB_UPPER)
|
IF(WIN32)
|
||||||
IF(${ENGINE_LIB_UPPER}_LIBS)
|
SET(MYSQLSERVER_OUTPUT_NAME mysqlserver)
|
||||||
TARGET_LINK_LIBRARIES(mysqlserver ${${ENGINE_LIB_UPPER}_LIBS})
|
ELSE()
|
||||||
ENDIF(${ENGINE_LIB_UPPER}_LIBS)
|
SET(MYSQLSERVER_OUTPUT_NAME mysqld)
|
||||||
ENDFOREACH(ENGINE_LIB)
|
ENDIF()
|
||||||
|
|
||||||
ADD_LIBRARY(libmysqld SHARED cmake_dummy.c libmysqld.def)
|
# Merge slim mysqlserver_int with other libraries like mysys to create a big
|
||||||
ADD_DEPENDENCIES(libmysqld mysqlserver)
|
# static library that contains everything.
|
||||||
TARGET_LINK_LIBRARIES(libmysqld mysqlserver wsock32)
|
MERGE_STATIC_LIBS(mysqlserver ${MYSQLSERVER_OUTPUT_NAME}
|
||||||
|
"mysqlserver_int;${LIBS}")
|
||||||
|
|
||||||
|
IF(LIBWRAP_LIBRARY)
|
||||||
|
TARGET_LINK_LIBRARIES(mysqlserver ${LIBWRAP_LIBRARY})
|
||||||
|
ENDIF()
|
||||||
|
INSTALL(TARGETS mysqlserver DESTINATION lib)
|
||||||
|
|
||||||
|
IF(MSVC)
|
||||||
|
STATIC_TO_SHARED(mysqlserver libmysqld libmysqld.def)
|
||||||
|
INSTALL(TARGETS libmysqld DESTINATION lib)
|
||||||
|
ENDIF()
|
||||||
|
@ -15,24 +15,44 @@
|
|||||||
|
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
|
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
|
||||||
${CMAKE_SOURCE_DIR}/libmysqld/include
|
${CMAKE_SOURCE_DIR}/libmysqld/include
|
||||||
${CMAKE_SOURCE_DIR}/regex
|
${CMAKE_SOURCE_DIR}/regex
|
||||||
${CMAKE_SOURCE_DIR}/zlib
|
${READLINE_INCLUDE_DIR}
|
||||||
${CMAKE_SOURCE_DIR}/extra/yassl/include)
|
)
|
||||||
|
|
||||||
# Currently does not work with DBUG, there are missing symbols reported.
|
|
||||||
|
|
||||||
ADD_DEFINITIONS(-DEMBEDDED_LIBRARY)
|
ADD_DEFINITIONS(-DEMBEDDED_LIBRARY -UMYSQL_CLIENT)
|
||||||
|
|
||||||
|
|
||||||
ADD_EXECUTABLE(mysql_embedded ../../client/completion_hash.cc
|
ADD_EXECUTABLE(mysql_embedded ../../client/completion_hash.cc
|
||||||
../../client/mysql.cc ../../client/readline.cc
|
../../client/mysql.cc ../../client/readline.cc)
|
||||||
../../client/sql_string.cc)
|
TARGET_LINK_LIBRARIES(mysql_embedded mysqlserver)
|
||||||
TARGET_LINK_LIBRARIES(mysql_embedded debug dbug strings mysys vio yassl taocrypt regex ws2_32)
|
IF(UNIX)
|
||||||
TARGET_LINK_LIBRARIES(mysql_embedded libmysqld)
|
ADD_DEFINITIONS(${READLINE_DEFINES})
|
||||||
|
TARGET_LINK_LIBRARIES(mysql_embedded ${READLINE_LIBRARY})
|
||||||
|
ENDIF(UNIX)
|
||||||
|
|
||||||
ADD_EXECUTABLE(mysqltest_embedded ../../client/mysqltest.cc)
|
ADD_EXECUTABLE(mysqltest_embedded ../../client/mysqltest.cc)
|
||||||
TARGET_LINK_LIBRARIES(mysqltest_embedded debug dbug strings mysys vio yassl taocrypt regex ws2_32)
|
TARGET_LINK_LIBRARIES(mysqltest_embedded mysqlserver)
|
||||||
TARGET_LINK_LIBRARIES(mysqltest_embedded libmysqld)
|
|
||||||
|
|
||||||
ADD_EXECUTABLE(mysql_client_test_embedded ../../tests/mysql_client_test.c)
|
|
||||||
TARGET_LINK_LIBRARIES(mysql_client_test_embedded debug dbug strings mysys vio yassl taocrypt regex ws2_32)
|
IF(CMAKE_GENERATOR MATCHES "Xcode")
|
||||||
TARGET_LINK_LIBRARIES(mysql_client_test_embedded libmysqld)
|
# It does not seem possible to tell Xcode the resulting target might need
|
||||||
|
# to be linked with C++ runtime. The project needs to have at least one C++
|
||||||
|
# file. Add a dummy one.
|
||||||
|
MYSQL_CREATE_EMPTY_FILE(mysql_client_test_embedded_dummy.cc)
|
||||||
|
ADD_EXECUTABLE(mysql_client_test_embedded
|
||||||
|
mysql_client_test_embedded_dummy.cc
|
||||||
|
../../tests/mysql_client_test.c)
|
||||||
|
ELSE()
|
||||||
|
ADD_EXECUTABLE(mysql_client_test_embedded ../../tests/mysql_client_test.c)
|
||||||
|
SET_TARGET_PROPERTIES(mysql_client_test_embedded PROPERTIES HAS_CXX TRUE)
|
||||||
|
ENDIF()
|
||||||
|
TARGET_LINK_LIBRARIES(mysql_client_test_embedded mysqlserver)
|
||||||
|
|
||||||
|
IF(UNIX)
|
||||||
|
SET_TARGET_PROPERTIES(mysql_embedded PROPERTIES ENABLE_EXPORTS TRUE)
|
||||||
|
SET_TARGET_PROPERTIES(mysqltest_embedded PROPERTIES ENABLE_EXPORTS TRUE)
|
||||||
|
SET_TARGET_PROPERTIES(mysql_client_test_embedded PROPERTIES ENABLE_EXPORTS TRUE)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
INSTALL(TARGETS mysql_embedded mysqltest_embedded mysql_client_test_embedded DESTINATION bin)
|
||||||
|
@ -731,11 +731,6 @@ void THD::clear_data_list()
|
|||||||
cur_data= 0;
|
cur_data= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void THD::clear_error()
|
|
||||||
{
|
|
||||||
if (stmt_da->is_error())
|
|
||||||
stmt_da->reset_diagnostics_area();
|
|
||||||
}
|
|
||||||
|
|
||||||
static char *dup_str_aux(MEM_ROOT *root, const char *from, uint length,
|
static char *dup_str_aux(MEM_ROOT *root, const char *from, uint length,
|
||||||
CHARSET_INFO *fromcs, CHARSET_INFO *tocs)
|
CHARSET_INFO *fromcs, CHARSET_INFO *tocs)
|
||||||
|
24
man/CMakeLists.txt
Normal file
24
man/CMakeLists.txt
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
# Copy man pages
|
||||||
|
FILE(GLOB MAN1_FILES *.1)
|
||||||
|
FILE(GLOB MAN8_FILES *.8)
|
||||||
|
IF(MAN1_FILES)
|
||||||
|
INSTALL(FILES ${MAN1_FILES} DESTINATION man/man1)
|
||||||
|
ENDIF()
|
||||||
|
IF(MAN8_FILES)
|
||||||
|
INSTALL(FILES ${MAN8_FILES} DESTINATION man/man8)
|
||||||
|
ENDIF()
|
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
man1_MANS = @man1_files@
|
man1_MANS = @man1_files@
|
||||||
man8_MANS = @man8_files@
|
man8_MANS = @man8_files@
|
||||||
EXTRA_DIST = $(man1_MANS) $(man8_MANS)
|
EXTRA_DIST = $(man1_MANS) $(man8_MANS) CMakeLists.txt
|
||||||
|
|
||||||
# "make_win_*" are not needed in Unix binary packages,
|
# "make_win_*" are not needed in Unix binary packages,
|
||||||
install-data-hook:
|
install-data-hook:
|
||||||
|
110
mysql-test/CMakeLists.txt
Normal file
110
mysql-test/CMakeLists.txt
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
INSTALL(
|
||||||
|
DIRECTORY .
|
||||||
|
DESTINATION mysql-test
|
||||||
|
PATTERN "var/" EXCLUDE
|
||||||
|
PATTERN "lib/My/SafeProcess" EXCLUDE
|
||||||
|
PATTERN "CPack" EXCLUDE
|
||||||
|
PATTERN "CMake" EXCLUDE
|
||||||
|
PATTERN "mtr.out" EXCLUDE
|
||||||
|
PATTERN ".cvsignore" EXCLUDE
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF(NOT ${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
|
||||||
|
# Enable running mtr from build directory
|
||||||
|
CONFIGURE_FILE(
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/mtr.out-of-source
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/mysql-test-run.pl
|
||||||
|
@ONLY
|
||||||
|
)
|
||||||
|
ENDIF()
|
||||||
|
IF(UNIX)
|
||||||
|
EXECUTE_PROCESS(
|
||||||
|
COMMAND chmod +x mysql-test-run.pl
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
||||||
|
./mysql-test-run.pl mtr
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
||||||
|
./mysql-test-run.pl mysql-test-run
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
|
)
|
||||||
|
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mtr
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/mysql-test-run DESTINATION mysql-test)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(CMAKE_GENERATOR MATCHES "Visual Studio")
|
||||||
|
SET(SETCONFIG_COMMAND set MTR_VS_CONFIG=$(OutDir))
|
||||||
|
ELSEIF(CMAKE_GENERATOR MATCHES "Xcode")
|
||||||
|
SET(SETCONFIG_COMMAND export MTR_VS_CONFIG=$(CONFIGURATION))
|
||||||
|
ELSE()
|
||||||
|
SET(SETCONFIG_COMMAND echo Running tests)
|
||||||
|
ENDIF()
|
||||||
|
IF(CYGWIN)
|
||||||
|
# On cygwin, pretend to be "Unix" system
|
||||||
|
SET(SETOS_COMMAND export MTR_CYGWIN_IS_UNIX=1)
|
||||||
|
ELSE()
|
||||||
|
SET(SETOS_COMMAND echo OS=${CMAKE_SYSTEM_NAME})
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
|
||||||
|
ADD_CUSTOM_TARGET(test-force
|
||||||
|
COMMAND ${SETCONFIG_COMMAND}
|
||||||
|
COMMAND ${SETOS_COMMAND}
|
||||||
|
COMMAND perl mysql-test-run.pl --force
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
SET(EXP --experimental=collections/default.experimental)
|
||||||
|
IF(WIN32)
|
||||||
|
SET(SET_ENV set)
|
||||||
|
ELSE()
|
||||||
|
SET(SET_ENV export)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
|
||||||
|
SET(MTR_FORCE perl ./mysql-test-run.pl --force)
|
||||||
|
IF(EXISTS ${CMAKE_SOURCE_DIR}/mysql-test/suite/nist)
|
||||||
|
SET(TEST_NIST ${MTR_FORCE} --comment=nist suite=nist ${EXP} &&
|
||||||
|
${MTR_FORCE} --comment=nist --force --suite=nist+ps ${EXP})
|
||||||
|
ELSE()
|
||||||
|
SET(TEST_NIST echo "NIST tests not found")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(WITH_EMBEDDED_SERVER)
|
||||||
|
SET(TEST_EMBEDDED ${MTR_FORCE} --comment=embedded --timer --embedded-server
|
||||||
|
--skip-rpl --skip-ndbcluster $(EXP))
|
||||||
|
ELSE()
|
||||||
|
SET(TEST_EMBEDDED echo "Can not test embedded, not compiled in")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
ADD_CUSTOM_TARGET(test-bt
|
||||||
|
COMMAND ${SETCONFIG_COMMAND}
|
||||||
|
COMMAND ${SETOS_COMMAND}
|
||||||
|
COMMAND ${SET_ENV} MTR_BUILD_THREAD=auto
|
||||||
|
COMMAND ${MTR_FORCE} --comment=normal --timer --skip-ndbcluster --report-features ${EXP}
|
||||||
|
COMMAND ${MTR_FORCE} --comment=ps --timer --skip-ndbcluster --ps-protocol ${EXP}
|
||||||
|
COMMAND ${MTR_FORCE} --comment=funcs1+ps --ps-protocol --reorder --suite=funcs_1 ${EXP}
|
||||||
|
COMMAND ${MTR_FORCE} --comment=funcs2 --suite=funcs_2 ${EXP}
|
||||||
|
COMMAND ${MTR_FORCE} --comment=partitions --suite=parts ${EXP}
|
||||||
|
COMMAND ${MTR_FORCE} --comment=stress --suite=stress ${EXP}
|
||||||
|
COMMAND ${MTR_FORCE} --force --comment=jp --suite=jp ${EXP}
|
||||||
|
COMMAND ${TEST_NIST}
|
||||||
|
COMMAND ${TEST_EMBEDDED}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
@ -71,7 +71,10 @@ SUBDIRS = lib/My/SafeProcess
|
|||||||
|
|
||||||
EXTRA_DIST = README \
|
EXTRA_DIST = README \
|
||||||
$(test_SCRIPTS) \
|
$(test_SCRIPTS) \
|
||||||
$(nobase_test_DATA)
|
$(nobase_test_DATA) \
|
||||||
|
CMakeLists.txt \
|
||||||
|
mtr.out-of-source
|
||||||
|
|
||||||
|
|
||||||
# List of directories containing test + result files and the
|
# List of directories containing test + result files and the
|
||||||
# related test data files that should be copied
|
# related test data files that should be copied
|
||||||
|
@ -29,6 +29,15 @@ sub get_basedir {
|
|||||||
return $basedir;
|
return $basedir;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Retrive build directory (which is different from basedir in out-of-source build)
|
||||||
|
sub get_bindir {
|
||||||
|
if (defined $ENV{MTR_BINDIR})
|
||||||
|
{
|
||||||
|
return $ENV{MTR_BINDIR};
|
||||||
|
}
|
||||||
|
my ($self, $group)= @_;
|
||||||
|
return $self->get_basedir($group);
|
||||||
|
}
|
||||||
|
|
||||||
sub fix_charset_dir {
|
sub fix_charset_dir {
|
||||||
my ($self, $config, $group_name, $group)= @_;
|
my ($self, $config, $group_name, $group)= @_;
|
||||||
@ -38,7 +47,7 @@ sub fix_charset_dir {
|
|||||||
|
|
||||||
sub fix_language {
|
sub fix_language {
|
||||||
my ($self, $config, $group_name, $group)= @_;
|
my ($self, $config, $group_name, $group)= @_;
|
||||||
return my_find_dir($self->get_basedir($group),
|
return my_find_dir($self->get_bindir($group),
|
||||||
\@share_locations);
|
\@share_locations);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -167,16 +167,16 @@ sub my_find_paths {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# -------------------------------------------------------
|
# -------------------------------------------------------
|
||||||
# Windows specific
|
# CMake generator specific (Visual Studio and Xcode have multimode builds)
|
||||||
# -------------------------------------------------------
|
# -------------------------------------------------------
|
||||||
if (IS_WINDOWS) {
|
|
||||||
# Add the default extra build dirs unless a specific one has
|
# Add the default extra build dirs unless a specific one has
|
||||||
# already been selected
|
# already been selected
|
||||||
push(@extra_dirs,
|
push(@extra_dirs,
|
||||||
("release",
|
("Release",
|
||||||
"relwithdebinfo",
|
"Relwithdebinfo",
|
||||||
"debug")) if @extra_dirs == 0;
|
"Debug")) if @extra_dirs == 0;
|
||||||
}
|
|
||||||
|
|
||||||
#print "extra_build_dir: @extra_dirs\n";
|
#print "extra_build_dir: @extra_dirs\n";
|
||||||
|
|
||||||
|
@ -84,19 +84,31 @@ sub is_child {
|
|||||||
# Find the safe process binary or script
|
# Find the safe process binary or script
|
||||||
my @safe_process_cmd;
|
my @safe_process_cmd;
|
||||||
my $safe_kill;
|
my $safe_kill;
|
||||||
|
my $bindir;
|
||||||
|
if(defined $ENV{MTR_BINDIR})
|
||||||
|
{
|
||||||
|
# This is an out-of-source build. Build directory
|
||||||
|
# is given in MTR_BINDIR env.variable
|
||||||
|
$bindir = $ENV{MTR_BINDIR}."/mysql-test";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$bindir = ".";
|
||||||
|
}
|
||||||
|
|
||||||
if (IS_WIN32PERL or IS_CYGWIN){
|
if (IS_WIN32PERL or IS_CYGWIN){
|
||||||
# Use my_safe_process.exe
|
# Use my_safe_process.exe
|
||||||
my $exe= my_find_bin(".", ["lib/My/SafeProcess", "My/SafeProcess"],
|
my $exe= my_find_bin($bindir, ["lib/My/SafeProcess", "My/SafeProcess"],
|
||||||
"my_safe_process");
|
"my_safe_process");
|
||||||
push(@safe_process_cmd, $exe);
|
push(@safe_process_cmd, $exe);
|
||||||
|
|
||||||
# Use my_safe_kill.exe
|
# Use my_safe_kill.exe
|
||||||
$safe_kill= my_find_bin(".", "lib/My/SafeProcess", "my_safe_kill");
|
$safe_kill= my_find_bin($bindir, "lib/My/SafeProcess", "my_safe_kill");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
# Use my_safe_process
|
# Use my_safe_process
|
||||||
my $exe= my_find_bin(".", ["lib/My/SafeProcess", "My/SafeProcess"],
|
my $exe= my_find_bin($bindir, ["lib/My/SafeProcess", "My/SafeProcess"],
|
||||||
"my_safe_process");
|
"my_safe_process");
|
||||||
push(@safe_process_cmd, $exe);
|
push(@safe_process_cmd, $exe);
|
||||||
}
|
}
|
||||||
|
@ -13,5 +13,15 @@
|
|||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
ADD_EXECUTABLE(my_safe_process safe_process_win.cc)
|
IF (WIN32)
|
||||||
ADD_EXECUTABLE(my_safe_kill safe_kill_win.cc)
|
ADD_EXECUTABLE(my_safe_process safe_process_win.cc)
|
||||||
|
ADD_EXECUTABLE(my_safe_kill safe_kill_win.cc)
|
||||||
|
ELSE()
|
||||||
|
ADD_EXECUTABLE(my_safe_process safe_process.cc)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
INSTALL(TARGETS my_safe_process DESTINATION "mysql-test/lib/My/SafeProcess")
|
||||||
|
IF(WIN32)
|
||||||
|
INSTALL(TARGETS my_safe_kill DESTINATION "mysql-test/lib/My/SafeProcess")
|
||||||
|
ENDIF()
|
||||||
|
INSTALL(FILES safe_process.pl Base.pm DESTINATION "mysql-test/lib/My/SafeProcess")
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
int main(int argc, const char** argv )
|
int main(int argc, const char** argv )
|
||||||
{
|
{
|
||||||
|
@ -57,6 +57,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <tlhelp32.h>
|
#include <tlhelp32.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
static int verbose= 0;
|
static int verbose= 0;
|
||||||
static char safe_process_name[32]= {0};
|
static char safe_process_name[32]= {0};
|
||||||
@ -248,6 +249,10 @@ int main(int argc, const char** argv )
|
|||||||
Make all processes associated with the job terminate when the
|
Make all processes associated with the job terminate when the
|
||||||
last handle to the job is closed.
|
last handle to the job is closed.
|
||||||
*/
|
*/
|
||||||
|
#ifndef JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE
|
||||||
|
#define JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE 0x00002000
|
||||||
|
#endif
|
||||||
|
|
||||||
jeli.BasicLimitInformation.LimitFlags = JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE;
|
jeli.BasicLimitInformation.LimitFlags = JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE;
|
||||||
if (SetInformationJobObject(job_handle, JobObjectExtendedLimitInformation,
|
if (SetInformationJobObject(job_handle, JobObjectExtendedLimitInformation,
|
||||||
&jeli, sizeof(jeli)) == 0)
|
&jeli, sizeof(jeli)) == 0)
|
||||||
|
5
mysql-test/mtr.out-of-source
Normal file
5
mysql-test/mtr.out-of-source
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
# Call mtr in out-of-source build
|
||||||
|
$ENV{MTR_BINDIR} = "@CMAKE_BINARY_DIR@";
|
||||||
|
chdir("@CMAKE_SOURCE_DIR@/mysql-test");
|
||||||
|
exit(system($^X, "@CMAKE_SOURCE_DIR@/mysql-test/mysql-test-run.pl", @ARGV) >> 8);
|
@ -94,6 +94,7 @@ $SIG{INT}= sub { mtr_error("Got ^C signal"); };
|
|||||||
our $mysql_version_id;
|
our $mysql_version_id;
|
||||||
our $glob_mysql_test_dir;
|
our $glob_mysql_test_dir;
|
||||||
our $basedir;
|
our $basedir;
|
||||||
|
our $bindir;
|
||||||
|
|
||||||
our $path_charsetsdir;
|
our $path_charsetsdir;
|
||||||
our $path_client_bindir;
|
our $path_client_bindir;
|
||||||
@ -943,7 +944,11 @@ sub command_line_setup {
|
|||||||
{
|
{
|
||||||
$basedir= dirname($basedir);
|
$basedir= dirname($basedir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Respect MTR_BINDIR variable, which is typically set in to the
|
||||||
|
# build directory in out-of-source builds.
|
||||||
|
$bindir=$ENV{MTR_BINDIR}||$basedir;
|
||||||
|
|
||||||
# Look for the client binaries directory
|
# Look for the client binaries directory
|
||||||
if ($path_client_bindir)
|
if ($path_client_bindir)
|
||||||
{
|
{
|
||||||
@ -952,21 +957,21 @@ sub command_line_setup {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$path_client_bindir= mtr_path_exists("$basedir/client_release",
|
$path_client_bindir= mtr_path_exists("$bindir/client_release",
|
||||||
"$basedir/client_debug",
|
"$bindir/client_debug",
|
||||||
vs_config_dirs('client', ''),
|
vs_config_dirs('client', ''),
|
||||||
"$basedir/client",
|
"$bindir/client",
|
||||||
"$basedir/bin");
|
"$bindir/bin");
|
||||||
}
|
}
|
||||||
|
|
||||||
# Look for language files and charsetsdir, use same share
|
# Look for language files and charsetsdir, use same share
|
||||||
$path_language= mtr_path_exists("$basedir/share/mysql",
|
$path_language= mtr_path_exists("$bindir/share/mysql",
|
||||||
"$basedir/sql/share",
|
"$bindir/sql/share",
|
||||||
"$basedir/share");
|
"$bindir/share");
|
||||||
|
|
||||||
|
|
||||||
my $path_share= $path_language;
|
my $path_share= $path_language;
|
||||||
$path_charsetsdir= mtr_path_exists("$path_share/charsets");
|
$path_charsetsdir = mtr_path_exists("$basedir/share/mysql/charsets",
|
||||||
|
"$basedir/sql/share/charsets",
|
||||||
|
"$basedir/share/charsets");
|
||||||
|
|
||||||
if (using_extern())
|
if (using_extern())
|
||||||
{
|
{
|
||||||
@ -1104,7 +1109,14 @@ sub command_line_setup {
|
|||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
# Set the "var/" directory, the base for everything else
|
# Set the "var/" directory, the base for everything else
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
$default_vardir= "$glob_mysql_test_dir/var";
|
if(defined $ENV{MTR_BINDIR})
|
||||||
|
{
|
||||||
|
$default_vardir= "$ENV{MTR_BINDIR}/mysql-test/var";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$default_vardir= "$glob_mysql_test_dir/var";
|
||||||
|
}
|
||||||
if ( ! $opt_vardir )
|
if ( ! $opt_vardir )
|
||||||
{
|
{
|
||||||
$opt_vardir= $default_vardir;
|
$opt_vardir= $default_vardir;
|
||||||
@ -1558,7 +1570,8 @@ sub collect_mysqld_features_from_running_server ()
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub find_mysqld {
|
sub find_mysqld {
|
||||||
my ($mysqld_basedir)= @_;
|
|
||||||
|
my ($mysqld_basedir)= $ENV{MTR_BINDIR}|| @_;
|
||||||
|
|
||||||
my @mysqld_names= ("mysqld", "mysqld-max-nt", "mysqld-max",
|
my @mysqld_names= ("mysqld", "mysqld-max-nt", "mysqld-max",
|
||||||
"mysqld-nt");
|
"mysqld-nt");
|
||||||
@ -1644,7 +1657,7 @@ sub client_debug_arg($$) {
|
|||||||
|
|
||||||
sub mysql_fix_arguments () {
|
sub mysql_fix_arguments () {
|
||||||
|
|
||||||
return "" if ( IS_WINDOWS );
|
return "" ;
|
||||||
|
|
||||||
my $exe=
|
my $exe=
|
||||||
mtr_script_exists("$basedir/scripts/mysql_fix_privilege_tables",
|
mtr_script_exists("$basedir/scripts/mysql_fix_privilege_tables",
|
||||||
@ -1744,6 +1757,30 @@ sub mysql_client_test_arguments(){
|
|||||||
# Set environment to be used by childs of this process for
|
# Set environment to be used by childs of this process for
|
||||||
# things that are constant during the whole lifetime of mysql-test-run
|
# things that are constant during the whole lifetime of mysql-test-run
|
||||||
#
|
#
|
||||||
|
|
||||||
|
sub find_plugin($$)
|
||||||
|
{
|
||||||
|
my ($plugin, $location) = @_;
|
||||||
|
my $plugin_filename;
|
||||||
|
|
||||||
|
if (IS_WINDOWS)
|
||||||
|
{
|
||||||
|
$plugin_filename = $plugin.".dll";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$plugin_filename = $plugin.".so";
|
||||||
|
}
|
||||||
|
|
||||||
|
my $lib_example_plugin=
|
||||||
|
mtr_file_exists(vs_config_dirs($location,$plugin_filename),
|
||||||
|
"$basedir/lib/plugin/".$plugin_filename,
|
||||||
|
"$basedir/$location/.libs/".$plugin_filename,
|
||||||
|
"$basedir/lib/mysql/plugin/".$plugin_filename,
|
||||||
|
);
|
||||||
|
return $lib_example_plugin;
|
||||||
|
}
|
||||||
|
|
||||||
sub environment_setup {
|
sub environment_setup {
|
||||||
|
|
||||||
umask(022);
|
umask(022);
|
||||||
@ -1782,9 +1819,18 @@ sub environment_setup {
|
|||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
# Add the path where mysqld will find udf_example.so
|
# Add the path where mysqld will find udf_example.so
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
|
my $udf_example_filename;
|
||||||
|
if (IS_WINDOWS)
|
||||||
|
{
|
||||||
|
$udf_example_filename = "udf_example.dll";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$udf_example_filename = "udf_example.so";
|
||||||
|
}
|
||||||
my $lib_udf_example=
|
my $lib_udf_example=
|
||||||
mtr_file_exists(vs_config_dirs('sql', 'udf_example.dll'),
|
mtr_file_exists(vs_config_dirs('sql', $udf_example_filename),
|
||||||
"$basedir/sql/.libs/udf_example.so",);
|
"$basedir/sql/.libs/$udf_example_filename",);
|
||||||
|
|
||||||
if ( $lib_udf_example )
|
if ( $lib_udf_example )
|
||||||
{
|
{
|
||||||
@ -1800,60 +1846,46 @@ sub environment_setup {
|
|||||||
# Add the path where mysqld will find ha_example.so
|
# Add the path where mysqld will find ha_example.so
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
if ($mysql_version_id >= 50100) {
|
if ($mysql_version_id >= 50100) {
|
||||||
my $plugin_filename;
|
my ($lib_example_plugin) = find_plugin("ha_example", "storage/example");
|
||||||
if (IS_WINDOWS)
|
|
||||||
{
|
if($lib_example_plugin)
|
||||||
$plugin_filename = "ha_example.dll";
|
{
|
||||||
}
|
$ENV{'EXAMPLE_PLUGIN'}=
|
||||||
else
|
($lib_example_plugin ? basename($lib_example_plugin) : "");
|
||||||
{
|
$ENV{'EXAMPLE_PLUGIN_OPT'}= "--plugin-dir=".
|
||||||
$plugin_filename = "ha_example.so";
|
|
||||||
}
|
|
||||||
my $lib_example_plugin=
|
|
||||||
mtr_file_exists(vs_config_dirs('storage/example',$plugin_filename),
|
|
||||||
"$basedir/storage/example/.libs/".$plugin_filename,
|
|
||||||
"$basedir/lib/mysql/plugin/".$plugin_filename);
|
|
||||||
$ENV{'EXAMPLE_PLUGIN'}=
|
|
||||||
($lib_example_plugin ? basename($lib_example_plugin) : "");
|
|
||||||
$ENV{'EXAMPLE_PLUGIN_OPT'}= "--plugin-dir=".
|
|
||||||
($lib_example_plugin ? dirname($lib_example_plugin) : "");
|
($lib_example_plugin ? dirname($lib_example_plugin) : "");
|
||||||
|
|
||||||
$ENV{'HA_EXAMPLE_SO'}="'".$plugin_filename."'";
|
$ENV{'HA_EXAMPLE_SO'}="'".basename($lib_example_plugin)."'";
|
||||||
$ENV{'EXAMPLE_PLUGIN_LOAD'}="--plugin_load=EXAMPLE=".$plugin_filename;
|
$ENV{'EXAMPLE_PLUGIN_LOAD'}="--plugin_load=EXAMPLE=".basename($lib_example_plugin);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
# Some ".opt" files use some of these variables, so they must be defined
|
# Some ".opt" files use some of these variables, so they must be defined
|
||||||
$ENV{'EXAMPLE_PLUGIN'}= "";
|
$ENV{'EXAMPLE_PLUGIN'}= "";
|
||||||
$ENV{'EXAMPLE_PLUGIN_OPT'}= "";
|
$ENV{'EXAMPLE_PLUGIN_OPT'}= "";
|
||||||
$ENV{'HA_EXAMPLE_SO'}= "";
|
$ENV{'HA_EXAMPLE_SO'}= "";
|
||||||
$ENV{'EXAMPLE_PLUGIN_LOAD'}= "";
|
$ENV{'EXAMPLE_PLUGIN_LOAD'}= "";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
# Add the path where mysqld will find semisync plugins
|
# Add the path where mysqld will find semisync plugins
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
if (!$opt_embedded_server) {
|
if (!$opt_embedded_server) {
|
||||||
my $semisync_master_filename;
|
my $semisync_lib_prefix;
|
||||||
my $semisync_slave_filename;
|
|
||||||
if (IS_WINDOWS)
|
if (IS_WINDOWS)
|
||||||
{
|
{
|
||||||
$semisync_master_filename = "semisync_master.dll";
|
$semisync_lib_prefix = "";
|
||||||
$semisync_slave_filename = "semisync_slave.dll";
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$semisync_master_filename = "libsemisync_master.so";
|
$semisync_lib_prefix= "lib";
|
||||||
$semisync_slave_filename = "libsemisync_slave.so";
|
|
||||||
}
|
}
|
||||||
my $lib_semisync_master_plugin=
|
|
||||||
mtr_file_exists(vs_config_dirs('plugin/semisync',$semisync_master_filename),
|
my ($lib_semisync_master_plugin) = find_plugin($semisync_lib_prefix."semisync_master", "plugin/semisync");
|
||||||
"$basedir/plugin/semisync/.libs/" . $semisync_master_filename,
|
my ($lib_semisync_slave_plugin) = find_plugin($semisync_lib_prefix."semisync_slave", "plugin/semisync");
|
||||||
"$basedir/lib/mysql/plugin/" . $semisync_master_filename);
|
|
||||||
my $lib_semisync_slave_plugin=
|
|
||||||
mtr_file_exists(vs_config_dirs('plugin/semisync',$semisync_slave_filename),
|
|
||||||
"$basedir/plugin/semisync/.libs/" . $semisync_slave_filename,
|
|
||||||
"$basedir/lib/mysql/plugin/" . $semisync_slave_filename);
|
|
||||||
if ($lib_semisync_master_plugin && $lib_semisync_slave_plugin)
|
if ($lib_semisync_master_plugin && $lib_semisync_slave_plugin)
|
||||||
{
|
{
|
||||||
$ENV{'SEMISYNC_MASTER_PLUGIN'}= basename($lib_semisync_master_plugin);
|
$ENV{'SEMISYNC_MASTER_PLUGIN'}= basename($lib_semisync_master_plugin);
|
||||||
@ -1871,10 +1903,10 @@ sub environment_setup {
|
|||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
# Add the path where mysqld will find mypluglib.so
|
# Add the path where mysqld will find mypluglib.so
|
||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
my $lib_simple_parser=
|
|
||||||
mtr_file_exists(vs_config_dirs('plugin/fulltext', 'mypluglib.dll'),
|
|
||||||
"$basedir/plugin/fulltext/.libs/mypluglib.so",);
|
|
||||||
|
|
||||||
|
my ($lib_simple_parser) = find_plugin("mypluglib", "plugin/fulltext");
|
||||||
|
|
||||||
|
$ENV{'MYPLUGLIB_SO'}="'".basename($lib_simple_parser)."'";
|
||||||
$ENV{'SIMPLE_PARSER'}=
|
$ENV{'SIMPLE_PARSER'}=
|
||||||
($lib_simple_parser ? basename($lib_simple_parser) : "");
|
($lib_simple_parser ? basename($lib_simple_parser) : "");
|
||||||
$ENV{'SIMPLE_PARSER_OPT'}= "--plugin-dir=".
|
$ENV{'SIMPLE_PARSER_OPT'}= "--plugin-dir=".
|
||||||
@ -2303,18 +2335,15 @@ sub vs_config_dirs ($$) {
|
|||||||
my ($path_part, $exe) = @_;
|
my ($path_part, $exe) = @_;
|
||||||
|
|
||||||
$exe = "" if not defined $exe;
|
$exe = "" if not defined $exe;
|
||||||
|
|
||||||
# Don't look in these dirs when not on windows
|
|
||||||
return () unless IS_WINDOWS;
|
|
||||||
|
|
||||||
if ($opt_vs_config)
|
if ($opt_vs_config)
|
||||||
{
|
{
|
||||||
return ("$basedir/$path_part/$opt_vs_config/$exe");
|
return ("$bindir/$path_part/$opt_vs_config/$exe");
|
||||||
}
|
}
|
||||||
|
|
||||||
return ("$basedir/$path_part/release/$exe",
|
return ("$bindir/$path_part/Release/$exe",
|
||||||
"$basedir/$path_part/relwithdebinfo/$exe",
|
"$bindir/$path_part/RelWithDebinfo/$exe",
|
||||||
"$basedir/$path_part/debug/$exe");
|
"$bindir/$path_part/Debug/$exe",
|
||||||
|
"$bindir/$path_part/$exe");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,7 +3,8 @@
|
|||||||
#
|
#
|
||||||
# BUG#39746 - Debug flag breaks struct definition (server crash)
|
# BUG#39746 - Debug flag breaks struct definition (server crash)
|
||||||
#
|
#
|
||||||
INSTALL PLUGIN simple_parser SONAME 'mypluglib.so';
|
--replace_regex /\.dll/.so/
|
||||||
|
eval INSTALL PLUGIN simple_parser SONAME $MYPLUGLIB_SO;
|
||||||
CREATE TABLE t1(a TEXT, b TEXT, FULLTEXT(a) WITH PARSER simple_parser);
|
CREATE TABLE t1(a TEXT, b TEXT, FULLTEXT(a) WITH PARSER simple_parser);
|
||||||
ALTER TABLE t1 ADD FULLTEXT(b) WITH PARSER simple_parser;
|
ALTER TABLE t1 ADD FULLTEXT(b) WITH PARSER simple_parser;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
@ -13,15 +13,9 @@
|
|||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
# Only the server link with this library, the client libraries and the client
|
|
||||||
# executables all link with recompiles of source found in the "mysys" directory.
|
|
||||||
# So we only need to create one version of this library, with the "static"
|
|
||||||
# Thread Local Storage model.
|
|
||||||
#
|
|
||||||
# Exception is the embedded server that needs this library compiled with
|
|
||||||
# dynamic TLS, i.e. define USE_TLS
|
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/zlib ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/mysys)
|
|
||||||
|
INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/mysys)
|
||||||
|
|
||||||
SET(MYSYS_SOURCES array.c charset-def.c charset.c checksum.c default.c default_modify.c
|
SET(MYSYS_SOURCES array.c charset-def.c charset.c checksum.c default.c default_modify.c
|
||||||
errors.c hash.c list.c md5.c mf_brkhant.c mf_cache.c mf_dirname.c mf_fn_ext.c
|
errors.c hash.c list.c md5.c mf_brkhant.c mf_cache.c mf_dirname.c mf_fn_ext.c
|
||||||
@ -30,17 +24,39 @@ SET(MYSYS_SOURCES array.c charset-def.c charset.c checksum.c default.c default_
|
|||||||
mf_radix.c mf_same.c mf_sort.c mf_soundex.c mf_arr_appstr.c mf_tempdir.c
|
mf_radix.c mf_same.c mf_sort.c mf_soundex.c mf_arr_appstr.c mf_tempdir.c
|
||||||
mf_tempfile.c mf_unixpath.c mf_wcomp.c mf_wfile.c mulalloc.c my_access.c
|
mf_tempfile.c mf_unixpath.c mf_wcomp.c mf_wfile.c mulalloc.c my_access.c
|
||||||
my_aes.c my_alarm.c my_alloc.c my_append.c my_bit.c my_bitmap.c my_chsize.c
|
my_aes.c my_alarm.c my_alloc.c my_append.c my_bit.c my_bitmap.c my_chsize.c
|
||||||
my_clock.c my_compress.c my_conio.c my_copy.c my_crc32.c my_create.c my_delete.c
|
my_clock.c my_compress.c my_copy.c my_crc32.c my_create.c my_delete.c
|
||||||
my_div.c my_error.c my_file.c my_fopen.c my_fstream.c my_gethostbyname.c
|
my_div.c my_error.c my_file.c my_fopen.c my_fstream.c my_gethostbyname.c
|
||||||
my_gethwaddr.c my_getopt.c my_getsystime.c my_getwd.c my_handler.c my_init.c
|
my_gethwaddr.c my_getopt.c my_getsystime.c my_getwd.c my_handler.c my_init.c
|
||||||
my_lib.c my_lock.c my_lockmem.c my_malloc.c my_messnc.c
|
my_lib.c my_lock.c my_lockmem.c my_malloc.c my_messnc.c
|
||||||
my_mkdir.c my_mmap.c my_net.c my_once.c my_open.c my_pread.c my_pthread.c
|
my_mkdir.c my_mmap.c my_net.c my_once.c my_open.c my_pread.c my_pthread.c
|
||||||
my_quick.c my_read.c my_realloc.c my_redel.c my_rename.c my_seek.c my_sleep.c
|
my_quick.c my_read.c my_realloc.c my_redel.c my_rename.c my_seek.c my_sleep.c
|
||||||
my_static.c my_symlink.c my_symlink2.c my_sync.c my_thr_init.c my_wincond.c
|
my_static.c my_symlink.c my_symlink2.c my_sync.c my_thr_init.c
|
||||||
my_winerr.c my_winfile.c my_windac.c my_winthread.c my_write.c ptr_cmp.c queues.c stacktrace.c
|
my_write.c ptr_cmp.c queues.c stacktrace.c
|
||||||
rijndael.c safemalloc.c sha1.c string.c thr_alarm.c thr_lock.c thr_mutex.c
|
rijndael.c safemalloc.c sha1.c string.c thr_alarm.c thr_lock.c thr_mutex.c
|
||||||
thr_rwlock.c tree.c typelib.c my_vle.c base64.c my_memmem.c my_getpagesize.c)
|
thr_rwlock.c tree.c typelib.c my_vle.c base64.c my_memmem.c my_getpagesize.c)
|
||||||
|
|
||||||
IF(NOT SOURCE_SUBLIBS)
|
IF (WIN32)
|
||||||
ADD_LIBRARY(mysys ${MYSYS_SOURCES})
|
SET (MYSYS_SOURCES ${MYSYS_SOURCES} my_winthread.c my_wincond.c my_winerr.c my_winfile.c my_windac.c my_conio.c)
|
||||||
ENDIF(NOT SOURCE_SUBLIBS)
|
ENDIF()
|
||||||
|
|
||||||
|
IF(CMAKE_COMPILER_IS_GNUCC AND NOT HAVE_CXX_NEW)
|
||||||
|
# gcc as C++ compiler does not have new/delete
|
||||||
|
SET(MYSYS_SOURCES ${MYSYS_SOURCES} my_new.cc)
|
||||||
|
ADD_DEFINITIONS( -DUSE_MYSYS_NEW)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(HAVE_LARGE_PAGES)
|
||||||
|
SET(MYSYS_SOURCES ${MYSYS_SOURCES} my_largepage.c)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(UNIX)
|
||||||
|
# some workarounds
|
||||||
|
SET(MYSYS_SOURCES ${MYSYS_SOURCES} my_port.c)
|
||||||
|
# Some stuff not ported to windows
|
||||||
|
SET(MYSYS_SOURCES ${MYSYS_SOURCES} my_atomic.c)
|
||||||
|
SET(MYSYS_SOURCES ${MYSYS_SOURCES} my_getncpus.c)
|
||||||
|
ENDIF()
|
||||||
|
USE_ABSOLUTE_FILENAMES(MYSYS_SOURCES)
|
||||||
|
ADD_LIBRARY(mysys ${MYSYS_SOURCES})
|
||||||
|
TARGET_LINK_LIBRARIES(mysys dbug strings ${ZLIB_LIBRARY})
|
||||||
|
DTRACE_INSTRUMENT(mysys)
|
||||||
|
@ -39,14 +39,11 @@ File my_create(const char *FileName, int CreateFlags, int access_flags,
|
|||||||
DBUG_ENTER("my_create");
|
DBUG_ENTER("my_create");
|
||||||
DBUG_PRINT("my",("Name: '%s' CreateFlags: %d AccessFlags: %d MyFlags: %d",
|
DBUG_PRINT("my",("Name: '%s' CreateFlags: %d AccessFlags: %d MyFlags: %d",
|
||||||
FileName, CreateFlags, access_flags, MyFlags));
|
FileName, CreateFlags, access_flags, MyFlags));
|
||||||
|
#if defined(_WIN32)
|
||||||
#if !defined(NO_OPEN_3)
|
|
||||||
fd= open((char *) FileName, access_flags | O_CREAT,
|
|
||||||
CreateFlags ? CreateFlags : my_umask);
|
|
||||||
#elif defined(_WIN32)
|
|
||||||
fd= my_win_open(FileName, access_flags | O_CREAT);
|
fd= my_win_open(FileName, access_flags | O_CREAT);
|
||||||
#else
|
#else
|
||||||
fd= open(FileName, access_flags);
|
fd= open((char *) FileName, access_flags | O_CREAT,
|
||||||
|
CreateFlags ? CreateFlags : my_umask);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ((MyFlags & MY_SYNC_DIR) && (fd >=0) &&
|
if ((MyFlags & MY_SYNC_DIR) && (fd >=0) &&
|
||||||
|
@ -150,7 +150,10 @@ ulonglong my_micro_time()
|
|||||||
Value in microseconds from some undefined point in time
|
Value in microseconds from some undefined point in time
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define DELTA_FOR_SECONDS LL(500000000) /* Half a second */
|
#define DELTA_FOR_SECONDS 500000000LL /* Half a second */
|
||||||
|
|
||||||
|
/* Difference between GetSystemTimeAsFileTime() and now() */
|
||||||
|
#define OFFSET_TO_EPOCH 116444736000000000ULL
|
||||||
|
|
||||||
ulonglong my_micro_time_and_time(time_t *time_arg)
|
ulonglong my_micro_time_and_time(time_t *time_arg)
|
||||||
{
|
{
|
||||||
|
@ -129,4 +129,22 @@ error_return:
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int pthread_cancel(pthread_t thread)
|
||||||
|
{
|
||||||
|
|
||||||
|
HANDLE handle= 0;
|
||||||
|
BOOL ok= FALSE;
|
||||||
|
|
||||||
|
handle= OpenThread(THREAD_TERMINATE, FALSE, thread);
|
||||||
|
if (handle)
|
||||||
|
{
|
||||||
|
ok= TerminateThread(handle,0);
|
||||||
|
CloseHandle(handle);
|
||||||
|
}
|
||||||
|
if (ok)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
errno= EINVAL;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -44,6 +44,7 @@ extern pthread_mutex_t THR_LOCK_charset, THR_LOCK_time;
|
|||||||
void my_error_unregister_all(void);
|
void my_error_unregister_all(void);
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
|
#include <sys/stat.h>
|
||||||
/* my_winfile.c exports, should not be used outside mysys */
|
/* my_winfile.c exports, should not be used outside mysys */
|
||||||
extern File my_win_open(const char *path, int oflag);
|
extern File my_win_open(const char *path, int oflag);
|
||||||
extern int my_win_close(File fd);
|
extern int my_win_close(File fd);
|
||||||
@ -59,8 +60,8 @@ extern FILE* my_win_fopen(const char *filename, const char *type);
|
|||||||
extern File my_win_fclose(FILE *file);
|
extern File my_win_fclose(FILE *file);
|
||||||
extern File my_win_fileno(FILE *file);
|
extern File my_win_fileno(FILE *file);
|
||||||
extern FILE* my_win_fdopen(File Filedes, const char *type);
|
extern FILE* my_win_fdopen(File Filedes, const char *type);
|
||||||
extern int my_win_stat(const char *path, struct _stat64 *buf);
|
extern int my_win_stat(const char *path, struct _stati64 *buf);
|
||||||
extern int my_win_fstat(File fd, struct _stat64 *buf);
|
extern int my_win_fstat(File fd, struct _stati64 *buf);
|
||||||
extern int my_win_fsync(File fd);
|
extern int my_win_fsync(File fd);
|
||||||
extern File my_win_dup(File fd);
|
extern File my_win_dup(File fd);
|
||||||
extern File my_win_sopen(const char *path, int oflag, int shflag, int perm);
|
extern File my_win_sopen(const char *path, int oflag, int shflag, int perm);
|
||||||
|
18
plugin/daemon_example/CMakeLists.txt
Normal file
18
plugin/daemon_example/CMakeLists.txt
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
SET(DAEMON_EXAMPLE_PLUGIN_DYNAMIC daemon_example)
|
||||||
|
SET(DAEMON_EXAMPLE_SOURCES daemon_example.cc)
|
||||||
|
MYSQL_PLUGIN(DAEMON_EXAMPLE)
|
@ -38,6 +38,7 @@ noinst_LIBRARIES = @plugin_daemon_example_static_target@
|
|||||||
libdaemon_example_a_CXXFLAGS = $(AM_CFLAGS)
|
libdaemon_example_a_CXXFLAGS = $(AM_CFLAGS)
|
||||||
libdaemon_example_a_CFLAGS = $(AM_CFLAGS)
|
libdaemon_example_a_CFLAGS = $(AM_CFLAGS)
|
||||||
libdaemon_example_a_SOURCES= daemon_example.cc
|
libdaemon_example_a_SOURCES= daemon_example.cc
|
||||||
|
EXTRA_DIST = CMakeLists.txt
|
||||||
|
|
||||||
# Don't update the files from bitkeeper
|
# Don't update the files from bitkeeper
|
||||||
%::SCCS/s.%
|
%::SCCS/s.%
|
||||||
|
18
plugin/fulltext/CMakeLists.txt
Normal file
18
plugin/fulltext/CMakeLists.txt
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
SET(FTEXAMPLE_PLUGIN_DYNAMIC mypluglib)
|
||||||
|
SET(FTEXAMPLE_SOURCES plugin_example.c)
|
||||||
|
MYSQL_PLUGIN(FTEXAMPLE)
|
@ -22,6 +22,7 @@ pkgplugin_LTLIBRARIES= mypluglib.la
|
|||||||
mypluglib_la_SOURCES= plugin_example.c
|
mypluglib_la_SOURCES= plugin_example.c
|
||||||
mypluglib_la_LDFLAGS= -module -rpath $(pkgplugindir)
|
mypluglib_la_LDFLAGS= -module -rpath $(pkgplugindir)
|
||||||
mypluglib_la_CFLAGS= -DMYSQL_DYNAMIC_PLUGIN
|
mypluglib_la_CFLAGS= -DMYSQL_DYNAMIC_PLUGIN
|
||||||
|
EXTRA_DIST= CMakeLists.txt
|
||||||
|
|
||||||
# Don't update the files from bitkeeper
|
# Don't update the files from bitkeeper
|
||||||
%::SCCS/s.%
|
%::SCCS/s.%
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2006 MySQL AB
|
# Copyright (C) 2009 Sun Microsystems,Inc
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -11,25 +11,22 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02
|
||||||
|
|
||||||
# This is CMakeLists.txt for semi-sync replication plugins
|
IF(WIN32)
|
||||||
|
SET(LIBPREFIX "")
|
||||||
|
ELSE()
|
||||||
|
SET(LIBPREFIX "lib")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
|
SET(SEMISYNC_MASTER_SOURCES semisync.cc semisync_master.cc semisync_master_plugin.cc
|
||||||
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
|
semisync.h semisync_master.h)
|
||||||
|
|
||||||
# Add common include directories
|
SET(SEMISYNC_MASTER_PLUGIN_DYNAMIC ${LIBPREFIX}semisync_master)
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/zlib
|
MYSQL_PLUGIN(SEMISYNC_MASTER)
|
||||||
${CMAKE_SOURCE_DIR}/sql
|
|
||||||
${CMAKE_SOURCE_DIR}/regex
|
|
||||||
${CMAKE_SOURCE_DIR}/extra/yassl/include)
|
|
||||||
|
|
||||||
SET(SEMISYNC_MASTER_SOURCES semisync.cc semisync_master.cc semisync_master_plugin.cc)
|
SET(SEMISYNC_SLAVE_SOURCES semisync.cc semisync_slave.cc semisync_slave_plugin.cc
|
||||||
SET(SEMISYNC_SLAVE_SOURCES semisync.cc semisync_slave.cc semisync_slave_plugin.cc)
|
semisync.h semisync_slave.h )
|
||||||
|
SET(SEMISYNC_SLAVE_PLUGIN_DYNAMIC ${LIBPREFIX}semisync_slave)
|
||||||
|
MYSQL_PLUGIN(SEMISYNC_SLAVE)
|
||||||
|
|
||||||
ADD_DEFINITIONS(-DMYSQL_DYNAMIC_PLUGIN)
|
|
||||||
ADD_LIBRARY(semisync_master SHARED ${SEMISYNC_MASTER_SOURCES})
|
|
||||||
TARGET_LINK_LIBRARIES(semisync_master mysqld)
|
|
||||||
ADD_LIBRARY(semisync_slave SHARED ${SEMISYNC_SLAVE_SOURCES})
|
|
||||||
TARGET_LINK_LIBRARIES(semisync_slave mysqld)
|
|
||||||
MESSAGE("build SEMISYNC as DLL")
|
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
|
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
|
||||||
|
|
||||||
SET(REGEX_SOURCES regcomp.c regerror.c regexec.c regfree.c reginit.c)
|
SET(REGEX_SOURCES regcomp.c regerror.c regexec.c regfree.c reginit.c)
|
||||||
|
USE_ABSOLUTE_FILENAMES(REGEX_SOURCES)
|
||||||
|
ADD_LIBRARY(regex ${REGEX_SOURCES})
|
||||||
|
|
||||||
IF(NOT SOURCE_SUBLIBS)
|
|
||||||
ADD_LIBRARY(regex ${REGEX_SOURCES})
|
|
||||||
ENDIF(NOT SOURCE_SUBLIBS)
|
|
||||||
|
@ -83,9 +83,7 @@ typedef long sopno;
|
|||||||
* a string of multi-character elements, and decide the size of the
|
* a string of multi-character elements, and decide the size of the
|
||||||
* vectors at run time.
|
* vectors at run time.
|
||||||
*/
|
*/
|
||||||
#ifdef __WIN__
|
|
||||||
typedef unsigned char uch ;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uch *ptr; /* -> uch [csetsize] */
|
uch *ptr; /* -> uch [csetsize] */
|
||||||
|
@ -13,65 +13,257 @@
|
|||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
# Build mysql_fix_privilege_tables.sql
|
IF(UNIX)
|
||||||
ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_SOURCE_DIR}/scripts/mysql_fix_privilege_tables.sql
|
# FIND_PROC and CHECK_PID are used by mysqld_safe
|
||||||
COMMAND copy /b
|
IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||||
mysql_system_tables.sql + mysql_system_tables_fix.sql
|
SET (FIND_PROC
|
||||||
mysql_fix_privilege_tables.sql
|
"ps wwwp $PID | grep -v \" grep\" | grep -v mysqld_safe | grep -- \"$MYSQLD\" > /dev/null")
|
||||||
DEPENDS
|
ENDIF()
|
||||||
${PROJECT_SOURCE_DIR}/scripts/mysql_system_tables.sql
|
IF(NOT FIND_PROC AND CMAKE_SYSTEM_NAME MATCHES "SunOS")
|
||||||
${PROJECT_SOURCE_DIR}/scripts/mysql_system_tables_fix.sql)
|
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)
|
||||||
|
|
||||||
|
|
||||||
# Build comp_sql - used for embedding SQL in C or C++ programs
|
# Build comp_sql - used for embedding SQL in C or C++ programs
|
||||||
ADD_EXECUTABLE(comp_sql comp_sql.c)
|
IF(NOT CMAKE_CROSSCOMPILING)
|
||||||
TARGET_LINK_LIBRARIES(comp_sql dbug mysys strings)
|
ADD_EXECUTABLE(comp_sql comp_sql.c)
|
||||||
|
TARGET_LINK_LIBRARIES(comp_sql)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
# Use comp_sql to build mysql_fix_privilege_tables_sql.c
|
SET(FIX_PRIVS_IN
|
||||||
GET_TARGET_PROPERTY(COMP_SQL_EXE comp_sql LOCATION)
|
${CMAKE_CURRENT_SOURCE_DIR}/mysql_system_tables.sql
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/mysql_system_tables_fix.sql
|
||||||
|
)
|
||||||
|
SET(FIX_PRIVILEGES_SQL
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/mysql_fix_privilege_tables.sql
|
||||||
|
)
|
||||||
|
|
||||||
ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_SOURCE_DIR}/scripts/mysql_fix_privilege_tables_sql.c
|
# Build mysql_fix_privilege_tables.sql (concatenate 2 sql scripts)
|
||||||
COMMAND ${COMP_SQL_EXE}
|
ADD_CUSTOM_COMMAND(
|
||||||
mysql_fix_privilege_tables
|
OUTPUT ${FIX_PRIVILEGES_SQL}
|
||||||
mysql_fix_privilege_tables.sql
|
COMMAND ${CMAKE_COMMAND} "-DIN=${FIX_PRIVS_IN}" "-DOUT=${FIX_PRIVILEGES_SQL}"
|
||||||
mysql_fix_privilege_tables_sql.c
|
-P "${CMAKE_SOURCE_DIR}/cmake/cat.cmake"
|
||||||
DEPENDS comp_sql ${PROJECT_SOURCE_DIR}/scripts/mysql_fix_privilege_tables.sql)
|
VERBATIM
|
||||||
|
DEPENDS ${FIX_PRIVS_IN}
|
||||||
|
)
|
||||||
|
|
||||||
# Add dummy target for the above to be built
|
# Build mysql_fix_privilege_tables.c
|
||||||
|
ADD_CUSTOM_COMMAND(
|
||||||
|
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/mysql_fix_privilege_tables_sql.c
|
||||||
|
COMMAND comp_sql
|
||||||
|
mysql_fix_privilege_tables
|
||||||
|
mysql_fix_privilege_tables.sql
|
||||||
|
mysql_fix_privilege_tables_sql.c
|
||||||
|
DEPENDS comp_sql ${CMAKE_CURRENT_BINARY_DIR}/mysql_fix_privilege_tables.sql
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
# Add target for the above to be built
|
||||||
ADD_CUSTOM_TARGET(GenFixPrivs
|
ADD_CUSTOM_TARGET(GenFixPrivs
|
||||||
ALL
|
ALL
|
||||||
DEPENDS ${PROJECT_SOURCE_DIR}/scripts/mysql_fix_privilege_tables_sql.c)
|
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/mysql_fix_privilege_tables_sql.c
|
||||||
|
)
|
||||||
|
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
# Replace some variables @foo@ in the .in/.sh file, and write the new script
|
# Replace some variables @foo@ in the .in/.sh file, and write the new script
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
|
|
||||||
SET(CFLAGS "-D_WINDOWS ${CMAKE_C_FLAGS_RELWITHDEBINFO}")
|
SET(CFLAGS "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
|
||||||
SET(prefix "${CMAKE_INSTALL_PREFIX}/MySQL Server ${MYSQL_BASE_VERSION}")
|
SET(CXXFLAGS "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
|
||||||
SET(sysconfdir ${prefix})
|
SET(LDFLAGS "${CMAKE_SHARED_LIBRARY_LINK_FLAGS}")
|
||||||
SET(bindir ${prefix}/bin)
|
|
||||||
SET(libexecdir ${prefix}/bin)
|
|
||||||
SET(scriptdir ${prefix}/bin)
|
|
||||||
SET(datadir ${prefix}/share)
|
|
||||||
SET(pkgdatadir ${prefix}/share)
|
|
||||||
SET(localstatedir ${prefix}/data)
|
|
||||||
|
|
||||||
CONFIGURE_FILE(mysql_config.pl.in
|
IF(WIN32)
|
||||||
scripts/mysql_config.pl ESCAPE_QUOTES @ONLY)
|
SET(prefix "${CMAKE_INSTALL_PREFIX}/MySQL Server ${MYSQL_BASE_VERSION}")
|
||||||
|
ELSE()
|
||||||
|
set(prefix "${CMAKE_INSTALL_PREFIX}/mysql")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
CONFIGURE_FILE(mysql_convert_table_format.sh
|
SET(sysconfdir ${prefix})
|
||||||
scripts/mysql_convert_table_format.pl ESCAPE_QUOTES @ONLY)
|
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)
|
||||||
|
|
||||||
CONFIGURE_FILE(mysql_install_db.pl.in
|
# Use cmake variables to inspect dependencies for
|
||||||
scripts/mysql_install_db.pl ESCAPE_QUOTES @ONLY)
|
# mysqlclient library
|
||||||
|
SET(CLIENT_LIBS "")
|
||||||
|
SET(LIBS "")
|
||||||
|
FOREACH(lib ${mysqlclient_LIB_DEPENDS})
|
||||||
|
# Filter out general, it is CMake hint
|
||||||
|
# not real
|
||||||
|
IF(NOT lib STREQUAL "general" AND NOT CLIENT_LIBS MATCHES "-l${lib} ")
|
||||||
|
SET(CLIENT_LIBS "${CLIENT_LIBS}-l${lib} " )
|
||||||
|
ENDIF()
|
||||||
|
ENDFOREACH()
|
||||||
|
FOREACH(lib ${mysqlserver_LIB_DEPENDS})
|
||||||
|
IF(NOT lib STREQUAL "general" AND NOT LIBS MATCHES "-l${lib} ")
|
||||||
|
SET(LIBS "${LIBS}-l${lib} " )
|
||||||
|
ENDIF()
|
||||||
|
ENDFOREACH()
|
||||||
|
IF(MSVC)
|
||||||
|
STRING(REPLACE "-l" "" CLIENT_LIBS "${CLIENT_LIBS}")
|
||||||
|
STRING(REPLACE "-l" "" LIBS "${LIBS}" )
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
CONFIGURE_FILE(mysql_secure_installation.pl.in
|
SET(NON_THREADED_LIBS ${CLIENT_LIBS})
|
||||||
scripts/mysql_secure_installation.pl ESCAPE_QUOTES @ONLY)
|
|
||||||
|
|
||||||
CONFIGURE_FILE(mysqld_multi.sh
|
IF(WIN32)
|
||||||
scripts/mysqld_multi.pl ESCAPE_QUOTES @ONLY)
|
# On Windows, some .sh and some .pl.in files are configured
|
||||||
|
# The resulting files will have .pl extension (those are perl scripts)
|
||||||
|
|
||||||
CONFIGURE_FILE(mysqldumpslow.sh
|
# Input files with pl.in extension
|
||||||
scripts/mysqldumpslow.pl ESCAPE_QUOTES @ONLY)
|
SET(PLIN_FILES mysql_config mysql_secure_installation)
|
||||||
|
# Input files with .sh extension
|
||||||
|
SET(SH_FILES mysql_convert_table_format mysqld_multi)
|
||||||
|
|
||||||
CONFIGURE_FILE(mysqlhotcopy.sh
|
FOREACH(file ${PLIN_FILES})
|
||||||
scripts/mysqlhotcopy.pl ESCAPE_QUOTES @ONLY)
|
CONFIGURE_FILE(${file}.pl.in
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/${file}.pl ESCAPE_QUOTES @ONLY)
|
||||||
|
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${file}.pl DESTINATION scripts)
|
||||||
|
ENDFOREACH()
|
||||||
|
|
||||||
|
FOREACH(file ${SH_FILES})
|
||||||
|
CONFIGURE_FILE(${file}.sh
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/${file}.pl ESCAPE_QUOTES @ONLY)
|
||||||
|
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${file}.pl DESTINATION scripts)
|
||||||
|
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()
|
||||||
|
|
||||||
|
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${file} DESTINATION bin
|
||||||
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
|
||||||
|
GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||||
|
ENDFOREACH()
|
||||||
|
|
||||||
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysqld_safe.sh
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/mysqld_safe @ONLY)
|
||||||
|
|
||||||
|
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mysqld_safe DESTINATION bin
|
||||||
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
|
||||||
|
GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||||
|
|
||||||
|
# For some reason, mysqld_safe needs to be also in scripts directory
|
||||||
|
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mysql_install_db
|
||||||
|
DESTINATION scripts
|
||||||
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
|
||||||
|
GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
||||||
|
)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
INSTALL(FILES mysql_test_data_timezone.sql DESTINATION share)
|
||||||
|
|
||||||
|
IF(UNIX)
|
||||||
|
FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/make_binary_distribution
|
||||||
|
"cd ${CMAKE_BINARY_DIR} && ${CMAKE_CPACK_COMMAND} -G TGZ --config CPackConfig.cmake" )
|
||||||
|
EXECUTE_PROCESS(
|
||||||
|
COMMAND chmod +x ${CMAKE_CURRENT_BINARY_DIR}/make_binary_distribution
|
||||||
|
)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
# Install libgcc as mylibgcc.a
|
||||||
|
IF(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
|
IF(NOT LIBGCC_LOCATION)
|
||||||
|
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})
|
||||||
|
SET(LIBGCC_LOCATION "${LIBGCC_LOCATION}" CACHE INTERNAL
|
||||||
|
"location of libgcc" )
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(LIBGCC_LOCATION)
|
||||||
|
INSTALL (CODE "CONFIGURE_FILE (${LIBGCC_LOCATION}
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/libmygcc.a COPYONLY)")
|
||||||
|
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libmygcc.a DESTINATION lib
|
||||||
|
OPTIONAL)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
|
||||||
|
INSTALL (FILES
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/mysql_system_tables.sql
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/mysql_system_tables_data.sql
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/fill_help_tables.sql
|
||||||
|
DESTINATION share
|
||||||
|
)
|
||||||
|
|
||||||
|
# TCMalloc hacks
|
||||||
|
IF($ENV{MALLOC_LIB})
|
||||||
|
SET(MALLOC_LIB $ENV{MALLOC_LIB} CACHE STRING "malloc library")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(MALLOC_LIB)
|
||||||
|
INSTALL(FILES ${MALLOC_LIB} DESTINATION lib OPTIONAL)
|
||||||
|
ENDIF()
|
||||||
|
51
sql-bench/CMakeLists.txt
Normal file
51
sql-bench/CMakeLists.txt
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
# Install sql-bench files
|
||||||
|
FILE(GLOB all_files
|
||||||
|
${CMAKE_SOURCE_DIR}/sql-bench/*
|
||||||
|
${CMAKE_SOURCE_DIR}/sql-bench/Data/ATIS/*
|
||||||
|
${CMAKE_SOURCE_DIR}/sql-bench/Data/Wisconsin/*
|
||||||
|
${CMAKE_SOURCE_DIR}/sql-bench/Comments/*
|
||||||
|
${CMAKE_SOURCE_DIR}/sql-bench/limits/*
|
||||||
|
)
|
||||||
|
|
||||||
|
GET_FILENAME_COMPONENT(basedir ${CMAKE_SOURCE_DIR} ABSOLUTE)
|
||||||
|
FOREACH(file ${all_files})
|
||||||
|
IF(NOT IS_DIRECTORY ${file} AND NOT ${file} MATCHES "Make" )
|
||||||
|
FILE(RELATIVE_PATH relpath ${basedir} ${file})
|
||||||
|
SET(target_relpath ${relpath})
|
||||||
|
GET_FILENAME_COMPONENT(ext ${file} EXT)
|
||||||
|
GET_FILENAME_COMPONENT(dir ${relpath} PATH)
|
||||||
|
IF(ext MATCHES ".sh$")
|
||||||
|
# Those are perl files actually
|
||||||
|
STRING(REPLACE ".sh" "" target_relpath ${target_relpath} )
|
||||||
|
IF(WIN32)
|
||||||
|
IF(NOT ext MATCHES ".pl")
|
||||||
|
SET(target_relpath "${target_relpath}.pl")
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
SET(target "${CMAKE_BINARY_DIR}/${target_relpath}")
|
||||||
|
CONFIGURE_FILE(${file} ${target} COPYONLY)
|
||||||
|
IF (ext MATCHES ".bat")
|
||||||
|
IF(WIN32)
|
||||||
|
INSTALL(FILES ${target} DESTINATION ${dir})
|
||||||
|
ENDIF()
|
||||||
|
ELSE()
|
||||||
|
INSTALL(FILES ${target} DESTINATION ${dir})
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
ENDFOREACH()
|
@ -37,7 +37,7 @@ EXTRA_SCRIPTS = test-ATIS.sh test-connect.sh test-create.sh \
|
|||||||
graph-compare-results.sh innotest1.sh innotest1a.sh \
|
graph-compare-results.sh innotest1.sh innotest1a.sh \
|
||||||
innotest1b.sh innotest2.sh innotest2a.sh innotest2b.sh \
|
innotest1b.sh innotest2.sh innotest2a.sh innotest2b.sh \
|
||||||
bench-count-distinct.sh
|
bench-count-distinct.sh
|
||||||
EXTRA_DIST = $(EXTRA_SCRIPTS)
|
EXTRA_DIST = $(EXTRA_SCRIPTS) CMakeLists.txt
|
||||||
|
|
||||||
dist-hook:
|
dist-hook:
|
||||||
mkdir -p $(distdir)/Data/ATIS $(distdir)/Data/Wisconsin \
|
mkdir -p $(distdir)/Data/ATIS $(distdir)/Data/Wisconsin \
|
||||||
|
@ -12,32 +12,36 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
INCLUDE("${PROJECT_SOURCE_DIR}/win/mysql_manifest.cmake")
|
|
||||||
|
|
||||||
SET(CMAKE_CXX_FLAGS_DEBUG
|
IF(MSVC)
|
||||||
"${CMAKE_CXX_FLAGS_DEBUG} -DUSE_SYMDIR /Zi")
|
#Innodb plugin needs linker-generated map file to locate server exports
|
||||||
SET(CMAKE_C_FLAGS_DEBUG
|
#see bug#42001
|
||||||
"${CMAKE_C_FLAGS_DEBUG} -DUSE_SYMDIR /Zi")
|
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MAP /MAPINFO:EXPORTS")
|
||||||
SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /MAP /MAPINFO:EXPORTS")
|
ENDIF(MSVC)
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
|
INCLUDE_DIRECTORIES(
|
||||||
${CMAKE_SOURCE_DIR}/extra/yassl/include
|
${CMAKE_SOURCE_DIR}/include
|
||||||
${CMAKE_SOURCE_DIR}/sql
|
${CMAKE_SOURCE_DIR}/sql
|
||||||
${CMAKE_SOURCE_DIR}/regex
|
${CMAKE_SOURCE_DIR}/regex
|
||||||
${CMAKE_SOURCE_DIR}/zlib
|
${ZLIB_INCLUDE_DIR}
|
||||||
|
${SSL_INCLUDE_DIRS}
|
||||||
|
${CMAKE_BINARY_DIR}/sql
|
||||||
)
|
)
|
||||||
|
|
||||||
SET_SOURCE_FILES_PROPERTIES(${CMAKE_SOURCE_DIR}/sql/sql_yacc.h
|
SET(GEN_SOURCES
|
||||||
${CMAKE_SOURCE_DIR}/sql/sql_yacc.cc
|
${CMAKE_BINARY_DIR}/sql/sql_yacc.h
|
||||||
${CMAKE_SOURCE_DIR}/include/mysql_version.h
|
${CMAKE_BINARY_DIR}/sql/sql_yacc.cc
|
||||||
${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc
|
${CMAKE_BINARY_DIR}/sql/sql_builtin.cc
|
||||||
${CMAKE_SOURCE_DIR}/sql/lex_hash.h
|
${CMAKE_BINARY_DIR}/sql/lex_hash.h
|
||||||
${PROJECT_SOURCE_DIR}/include/mysqld_error.h
|
)
|
||||||
${PROJECT_SOURCE_DIR}/include/mysqld_ername.h
|
|
||||||
${PROJECT_SOURCE_DIR}/include/sql_state.h
|
SET_SOURCE_FILES_PROPERTIES(${GEN_SOURCES} PROPERTIES GENERATED 1)
|
||||||
PROPERTIES GENERATED 1)
|
|
||||||
|
ADD_DEFINITIONS(-DMYSQL_SERVER -DHAVE_EVENT_SCHEDULER)
|
||||||
|
IF(SSL_DEFINES)
|
||||||
|
ADD_DEFINITIONS(${SSL_DEFINES})
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
ADD_DEFINITIONS(-DMYSQL_SERVER -D_CONSOLE -DHAVE_DLOPEN -DHAVE_EVENT_SCHEDULER)
|
|
||||||
|
|
||||||
|
|
||||||
SET (SQL_SOURCE
|
SET (SQL_SOURCE
|
||||||
@ -54,7 +58,7 @@ SET (SQL_SOURCE
|
|||||||
log_event_old.cc rpl_record_old.cc
|
log_event_old.cc rpl_record_old.cc
|
||||||
message.h mf_iocache.cc my_decimal.cc ../sql-common/my_time.c
|
message.h mf_iocache.cc my_decimal.cc ../sql-common/my_time.c
|
||||||
mysqld.cc net_serv.cc
|
mysqld.cc net_serv.cc
|
||||||
nt_servc.cc nt_servc.h opt_range.cc opt_range.h opt_sum.cc
|
opt_range.cc opt_range.h opt_sum.cc
|
||||||
../sql-common/pack.c parse_file.cc password.c procedure.cc
|
../sql-common/pack.c parse_file.cc password.c procedure.cc
|
||||||
protocol.cc records.cc repl_failsafe.cc rpl_filter.cc set_var.cc
|
protocol.cc records.cc repl_failsafe.cc rpl_filter.cc set_var.cc
|
||||||
slave.cc sp.cc sp_cache.cc sp_head.cc sp_pcontext.cc
|
slave.cc sp.cc sp_cache.cc sp_head.cc sp_pcontext.cc
|
||||||
@ -77,79 +81,169 @@ SET (SQL_SOURCE
|
|||||||
sql_connect.cc scheduler.cc
|
sql_connect.cc scheduler.cc
|
||||||
sql_profile.cc event_parse_data.cc
|
sql_profile.cc event_parse_data.cc
|
||||||
sql_signal.cc rpl_handler.cc
|
sql_signal.cc rpl_handler.cc
|
||||||
${PROJECT_SOURCE_DIR}/sql/sql_yacc.cc
|
${GEN_SOURCES}
|
||||||
${PROJECT_SOURCE_DIR}/sql/sql_yacc.h
|
${MYSYS_LIBWRAP_SOURCE})
|
||||||
${PROJECT_SOURCE_DIR}/include/mysqld_error.h
|
|
||||||
${PROJECT_SOURCE_DIR}/include/mysqld_ername.h
|
|
||||||
${PROJECT_SOURCE_DIR}/include/sql_state.h
|
|
||||||
${PROJECT_SOURCE_DIR}/include/mysql_version.h
|
|
||||||
${PROJECT_SOURCE_DIR}/sql/sql_builtin.cc
|
|
||||||
${PROJECT_SOURCE_DIR}/sql/lex_hash.h)
|
|
||||||
ADD_LIBRARY(sql ${SQL_SOURCE})
|
|
||||||
|
|
||||||
IF (NOT EXISTS cmake_dummy.cc)
|
|
||||||
FILE (WRITE cmake_dummy.cc "")
|
|
||||||
ENDIF (NOT EXISTS cmake_dummy.cc)
|
|
||||||
ADD_EXECUTABLE(mysqld cmake_dummy.cc)
|
|
||||||
|
|
||||||
SET_TARGET_PROPERTIES(mysqld PROPERTIES OUTPUT_NAME mysqld${MYSQLD_EXE_SUFFIX})
|
|
||||||
SET_TARGET_PROPERTIES(mysqld PROPERTIES ENABLE_EXPORTS TRUE)
|
|
||||||
|
|
||||||
SET (MYSQLD_CORE_LIBS mysys zlib dbug strings yassl taocrypt vio regex sql)
|
|
||||||
TARGET_LINK_LIBRARIES(mysqld ${MYSQLD_CORE_LIBS} ${MYSQLD_STATIC_ENGINE_LIBS})
|
|
||||||
|
|
||||||
|
|
||||||
IF(MSVC AND NOT WITHOUT_DYNAMIC_PLUGINS)
|
SET (MYSQLD_CORE_LIBS mysys ${ZLIB_LIBRARY} ${SSL_LIBRARIES} vio regex )
|
||||||
# Set module definition file. Also use non-incremental linker,
|
IF(WIN32)
|
||||||
# incremental appears to crash from time to time,if used with /DEF option
|
SET(SQL_SOURCE ${SQL_SOURCE} nt_servc.cc nt_servc.h)
|
||||||
SET_TARGET_PROPERTIES(mysqld PROPERTIES LINK_FLAGS "/DEF:mysqld.def /INCREMENTAL:NO")
|
ENDIF()
|
||||||
|
IF(MSVC)
|
||||||
|
ADD_LIBRARY(sql ${SQL_SOURCE})
|
||||||
|
ADD_EXECUTABLE(mysqld mysqld_dummy.cc)
|
||||||
|
ADD_CUSTOM_COMMAND(
|
||||||
|
OUTPUT mysqld_dummy.cc
|
||||||
|
COMMAND cmake ARGS -E touch mysqld_dummy.cc
|
||||||
|
VERBATIM)
|
||||||
|
SET(MYSQLD_CORE_LIBS ${MYSQLD_CORE_LIBS} sql)
|
||||||
|
|
||||||
|
ELSE()
|
||||||
|
ADD_EXECUTABLE(mysqld ${SQL_SOURCE})
|
||||||
|
DTRACE_INSTRUMENT(mysqld)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
FOREACH (CORELIB ${MYSQLD_CORE_LIBS})
|
IF(NOT WITHOUT_DYNAMIC_PLUGINS)
|
||||||
GET_TARGET_PROPERTY(LOC ${CORELIB} LOCATION)
|
SET_TARGET_PROPERTIES(mysqld PROPERTIES ENABLE_EXPORTS TRUE)
|
||||||
FILE(TO_NATIVE_PATH ${LOC} LOC)
|
IF (MINGW OR CYGWIN)
|
||||||
SET (LIB_LOCATIONS ${LIB_LOCATIONS} ${LOC})
|
SET_TARGET_PROPERTIES(mysqld PROPERTIES LINK_FLAGS "-Wl,--export-all-symbols")
|
||||||
ENDFOREACH (CORELIB ${MYSQLD_CORE_LIBS})
|
ENDIF()
|
||||||
|
IF(MSVC)
|
||||||
|
# Set module definition file. Also use non-incremental linker,
|
||||||
|
# incremental appears to crash from time to time,if used with /DEF option
|
||||||
|
SET_TARGET_PROPERTIES(mysqld PROPERTIES LINK_FLAGS "/DEF:mysqld.def /INCREMENTAL:NO")
|
||||||
|
|
||||||
|
FOREACH (CORELIB ${MYSQLD_CORE_LIBS} dbug strings)
|
||||||
|
GET_TARGET_PROPERTY(LOC ${CORELIB} LOCATION)
|
||||||
|
FILE(TO_NATIVE_PATH ${LOC} LOC)
|
||||||
|
SET (LIB_LOCATIONS ${LIB_LOCATIONS} ${LOC})
|
||||||
|
ENDFOREACH (CORELIB ${MYSQLD_CORE_LIBS})
|
||||||
|
|
||||||
ADD_CUSTOM_COMMAND(TARGET mysqld PRE_LINK
|
ADD_CUSTOM_COMMAND(TARGET mysqld PRE_LINK
|
||||||
COMMAND cscript ARGS //nologo ${PROJECT_SOURCE_DIR}/win/create_def_file.js
|
COMMAND echo ${PLATFORM} && cscript ARGS //nologo ${PROJECT_SOURCE_DIR}/win/create_def_file.js
|
||||||
${PLATFORM} ${LIB_LOCATIONS} > mysqld.def
|
${PLATFORM} ${LIB_LOCATIONS} > mysqld.def
|
||||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/sql)
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
ENDIF(MSVC AND NOT WITHOUT_DYNAMIC_PLUGINS)
|
ADD_DEPENDENCIES(sql GenError)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
ADD_DEPENDENCIES(sql GenError)
|
SET_TARGET_PROPERTIES(mysqld PROPERTIES ENABLE_EXPORTS TRUE)
|
||||||
|
SET_TARGET_PROPERTIES(mysqld PROPERTIES OUTPUT_NAME mysqld${MYSQLD_EXE_SUFFIX})
|
||||||
|
TARGET_LINK_LIBRARIES(mysqld ${MYSQLD_STATIC_PLUGIN_LIBS} ${MYSQLD_CORE_LIBS} ${LIBWRAP_LIBRARY})
|
||||||
|
INSTALL(TARGETS mysqld DESTINATION bin)
|
||||||
|
INSTALL_DEBUG_SYMBOLS(mysqld)
|
||||||
|
|
||||||
|
|
||||||
# Sql Parser custom command
|
FIND_PROGRAM(BISON_EXECUTABLE bison DOC "path to the bison executable")
|
||||||
ADD_CUSTOM_COMMAND(
|
MARK_AS_ADVANCED(BISON_EXECUTABLE "")
|
||||||
OUTPUT ${PROJECT_SOURCE_DIR}/sql/sql_yacc.h
|
|
||||||
${PROJECT_SOURCE_DIR}/sql/sql_yacc.cc
|
|
||||||
COMMAND bison ARGS -y -p MYSQL --defines=sql_yacc.h
|
|
||||||
--output=sql_yacc.cc sql_yacc.yy
|
|
||||||
DEPENDS ${PROJECT_SOURCE_DIR}/sql/sql_yacc.yy)
|
|
||||||
|
|
||||||
|
|
||||||
|
# Handle out-of-source build from source package with possibly broken
|
||||||
|
# bison. Copy bison output to from source to build directory, if not already
|
||||||
|
# there
|
||||||
|
IF (NOT ${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/sql_yacc.cc)
|
||||||
|
IF(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/sql_yacc.cc)
|
||||||
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/sql_yacc.cc
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/sql_yacc.cc COPYONLY)
|
||||||
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/sql_yacc.h
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/sql_yacc.h COPYONLY)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
|
||||||
|
INCLUDE(${CMAKE_SOURCE_DIR}/cmake/bison.cmake)
|
||||||
|
RUN_BISON(
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/sql_yacc.yy
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/sql_yacc.cc
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/sql_yacc.h
|
||||||
|
)
|
||||||
|
|
||||||
# Gen_lex_hash
|
# Gen_lex_hash
|
||||||
ADD_EXECUTABLE(gen_lex_hash gen_lex_hash.cc)
|
ADD_EXECUTABLE(gen_lex_hash gen_lex_hash.cc)
|
||||||
TARGET_LINK_LIBRARIES(gen_lex_hash dbug mysqlclient)
|
TARGET_LINK_LIBRARIES(gen_lex_hash mysys)
|
||||||
GET_TARGET_PROPERTY(GEN_LEX_HASH_EXE gen_lex_hash LOCATION)
|
|
||||||
ADD_CUSTOM_COMMAND(
|
ADD_CUSTOM_COMMAND(
|
||||||
OUTPUT ${PROJECT_SOURCE_DIR}/sql/lex_hash.h
|
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_hash.h
|
||||||
COMMAND ${GEN_LEX_HASH_EXE} ARGS > lex_hash.h
|
COMMAND gen_lex_hash ARGS > lex_hash.h
|
||||||
DEPENDS ${GEN_LEX_HASH_EXE})
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/gen_lex_hash.cc)
|
||||||
|
|
||||||
|
ADD_CUSTOM_TARGET(
|
||||||
|
GenServerSource
|
||||||
|
DEPENDS ${GEN_SOURCES}
|
||||||
|
)
|
||||||
|
|
||||||
ADD_CUSTOM_TARGET(
|
#Need this only for embedded
|
||||||
GenServerSource ALL
|
SET_TARGET_PROPERTIES(GenServerSource PROPERTIES EXCLUDE_FROM_ALL TRUE)
|
||||||
DEPENDS ${PROJECT_SOURCE_DIR}/sql/sql_yacc.h
|
|
||||||
${PROJECT_SOURCE_DIR}/sql/sql_yacc.cc
|
|
||||||
${PROJECT_SOURCE_DIR}/sql/message.h
|
|
||||||
${PROJECT_SOURCE_DIR}/sql/message.rc
|
|
||||||
${PROJECT_SOURCE_DIR}/sql/lex_hash.h)
|
|
||||||
|
|
||||||
ADD_DEPENDENCIES(mysqld GenServerSource)
|
IF(WIN32 OR HAVE_DLOPEN)
|
||||||
|
ADD_LIBRARY(udf_example MODULE udf_example.c)
|
||||||
|
SET_TARGET_PROPERTIES(udf_example PROPERTIES PREFIX "")
|
||||||
|
# udf_example depends on strings
|
||||||
|
IF(WIN32)
|
||||||
|
IF(MSVC)
|
||||||
|
SET_TARGET_PROPERTIES(udf_example PROPERTIES LINK_FLAGS "/DEF:${CMAKE_CURRENT_SOURCE_DIR}/udf_example.def")
|
||||||
|
ENDIF()
|
||||||
|
TARGET_LINK_LIBRARIES(udf_example strings)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
# Remove the auto-generated files as part of 'Clean Solution'
|
FOREACH(tool glibtoolize libtoolize aclocal autoconf autoheader automake gtar
|
||||||
SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES
|
tar bzr)
|
||||||
"lex_hash.h;sql_yacc.h;sql_yacc.cc;mysqld.def")
|
STRING(TOUPPER ${tool} TOOL)
|
||||||
|
FIND_PROGRAM(${TOOL}_EXECUTABLE ${tool} DOC "path to the executable")
|
||||||
|
MARK_AS_ADVANCED(${TOOL}_EXECUTABLE)
|
||||||
|
ENDFOREACH()
|
||||||
|
|
||||||
ADD_LIBRARY(udf_example MODULE udf_example.c udf_example.def)
|
CONFIGURE_FILE(
|
||||||
ADD_DEPENDENCIES(udf_example strings GenError)
|
${CMAKE_SOURCE_DIR}/cmake/make_dist.cmake.in ${CMAKE_BINARY_DIR}/make_dist.cmake @ONLY)
|
||||||
TARGET_LINK_LIBRARIES(udf_example strings)
|
|
||||||
|
ADD_CUSTOM_TARGET(dist
|
||||||
|
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}/make_dist.cmake
|
||||||
|
DEPENDS ${CMAKE_BINARY_DIR}/sql/sql_yacc.cc ${CMAKE_BINARY_DIR}/sql/sql_yacc.h
|
||||||
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# We need to create empty directories (data/test) the installation.
|
||||||
|
# This does not work with current CPack due to http://www.cmake.org/Bug/view.php?id=8767
|
||||||
|
# Avoid completely empty directories and install dummy file instead.
|
||||||
|
|
||||||
|
SET(DUMMY_FILE ${CMAKE_CURRENT_BINARY_DIR}/.empty )
|
||||||
|
FILE(WRITE ${DUMMY_FILE} "")
|
||||||
|
INSTALL(FILES ${DUMMY_FILE} DESTINATION data/test)
|
||||||
|
|
||||||
|
# Install initial database on windows
|
||||||
|
IF(NOT CMAKE_CROSSCOMPILING)
|
||||||
|
GET_TARGET_PROPERTY(MYSQLD_EXECUTABLE mysqld LOCATION)
|
||||||
|
ENDIF()
|
||||||
|
IF(WIN32 AND MYSQLD_EXECUTABLE)
|
||||||
|
CONFIGURE_FILE(
|
||||||
|
${CMAKE_SOURCE_DIR}/cmake/create_initial_db.cmake.in
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/create_initial_db.cmake
|
||||||
|
@ONLY
|
||||||
|
)
|
||||||
|
|
||||||
|
MAKE_DIRECTORY(${CMAKE_CURRENT_BINARY_DIR}/data)
|
||||||
|
ADD_CUSTOM_COMMAND(
|
||||||
|
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/data/mysql/user.frm
|
||||||
|
COMMAND ${CMAKE_COMMAND}
|
||||||
|
-DCONFIG=${CMAKE_CFG_INTDIR}
|
||||||
|
-P ${CMAKE_CURRENT_BINARY_DIR}/create_initial_db.cmake
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/data
|
||||||
|
DEPENDS mysqld
|
||||||
|
)
|
||||||
|
ADD_CUSTOM_TARGET(initial_database
|
||||||
|
ALL
|
||||||
|
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/data/mysql/user.frm
|
||||||
|
)
|
||||||
|
INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/data/mysql DESTINATION data)
|
||||||
|
ELSE()
|
||||||
|
# Not windows or cross compiling, just install an empty directory
|
||||||
|
INSTALL(FILES ${DUMMY_FILE} DESTINATION data/mysql)
|
||||||
|
ENDIF()
|
@ -10,6 +10,7 @@
|
|||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <process.h>
|
#include <process.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
#include "nt_servc.h"
|
#include "nt_servc.h"
|
||||||
|
|
||||||
|
|
||||||
|
52
sql/share/CMakeLists.txt
Normal file
52
sql/share/CMakeLists.txt
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
SET (dirs
|
||||||
|
danish
|
||||||
|
german
|
||||||
|
slovak
|
||||||
|
dutch
|
||||||
|
greek
|
||||||
|
norwegian
|
||||||
|
spanish
|
||||||
|
english
|
||||||
|
hungarian
|
||||||
|
norwegian-ny
|
||||||
|
swedish
|
||||||
|
italian
|
||||||
|
polish
|
||||||
|
ukrainian
|
||||||
|
japanese
|
||||||
|
portuguese
|
||||||
|
romanian
|
||||||
|
estonian
|
||||||
|
korean
|
||||||
|
russian
|
||||||
|
czech
|
||||||
|
french
|
||||||
|
serbian
|
||||||
|
)
|
||||||
|
|
||||||
|
SET(files
|
||||||
|
errmsg-utf8.txt
|
||||||
|
)
|
||||||
|
|
||||||
|
FOREACH (dir ${dirs})
|
||||||
|
INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${dir}
|
||||||
|
DESTINATION share)
|
||||||
|
ENDFOREACH()
|
||||||
|
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/charsets DESTINATION share)
|
||||||
|
|
||||||
|
INSTALL(FILES ${files} DESTINATION share)
|
@ -15,8 +15,9 @@
|
|||||||
|
|
||||||
## Process this file with automake to create Makefile.in
|
## Process this file with automake to create Makefile.in
|
||||||
|
|
||||||
EXTRA_DIST= errmsg-utf8.txt
|
EXTRA_DIST= errmsg-utf8.txt \
|
||||||
|
CMakeLists.txt
|
||||||
|
|
||||||
dist-hook:
|
dist-hook:
|
||||||
for dir in charsets @AVAILABLE_LANGUAGES@; do \
|
for dir in charsets @AVAILABLE_LANGUAGES@; do \
|
||||||
test -d $(distdir)/$$dir || mkdir $(distdir)/$$dir; \
|
test -d $(distdir)/$$dir || mkdir $(distdir)/$$dir; \
|
||||||
|
@ -17,7 +17,12 @@
|
|||||||
|
|
||||||
typedef struct st_mysql_plugin builtin_plugin[];
|
typedef struct st_mysql_plugin builtin_plugin[];
|
||||||
|
|
||||||
extern builtin_plugin
|
#if defined(_MSC_VER)
|
||||||
|
extern "C"
|
||||||
|
#else
|
||||||
|
extern
|
||||||
|
#endif
|
||||||
|
builtin_plugin
|
||||||
builtin_binlog_plugin@mysql_plugin_defs@;
|
builtin_binlog_plugin@mysql_plugin_defs@;
|
||||||
|
|
||||||
struct st_mysql_plugin *mysqld_builtins[]=
|
struct st_mysql_plugin *mysqld_builtins[]=
|
||||||
|
@ -1960,7 +1960,7 @@ public:
|
|||||||
void add_changed_table(const char *key, long key_length);
|
void add_changed_table(const char *key, long key_length);
|
||||||
CHANGED_TABLE_LIST * changed_table_dup(const char *key, long key_length);
|
CHANGED_TABLE_LIST * changed_table_dup(const char *key, long key_length);
|
||||||
int send_explain_fields(select_result *result);
|
int send_explain_fields(select_result *result);
|
||||||
#ifndef EMBEDDED_LIBRARY
|
|
||||||
/**
|
/**
|
||||||
Clear the current error, if any.
|
Clear the current error, if any.
|
||||||
We do not clear is_fatal_error or is_fatal_sub_stmt_error since we
|
We do not clear is_fatal_error or is_fatal_sub_stmt_error since we
|
||||||
@ -1976,9 +1976,9 @@ public:
|
|||||||
is_slave_error= 0;
|
is_slave_error= 0;
|
||||||
DBUG_VOID_RETURN;
|
DBUG_VOID_RETURN;
|
||||||
}
|
}
|
||||||
|
#ifndef EMBEDDED_LIBRARY
|
||||||
inline bool vio_ok() const { return net.vio != 0; }
|
inline bool vio_ok() const { return net.vio != 0; }
|
||||||
#else
|
#else
|
||||||
void clear_error();
|
|
||||||
inline bool vio_ok() const { return true; }
|
inline bool vio_ok() const { return true; }
|
||||||
#endif
|
#endif
|
||||||
/**
|
/**
|
||||||
|
@ -18,7 +18,6 @@
|
|||||||
AUTOMAKE_OPTIONS = foreign
|
AUTOMAKE_OPTIONS = foreign
|
||||||
|
|
||||||
# These are built from source in the Docs directory
|
# These are built from source in the Docs directory
|
||||||
EXTRA_DIST = mysql_storage_engine.cmake
|
|
||||||
SUBDIRS = @mysql_se_dirs@
|
SUBDIRS = @mysql_se_dirs@
|
||||||
DIST_SUBDIRS = @mysql_se_distdirs@
|
DIST_SUBDIRS = @mysql_se_distdirs@
|
||||||
|
|
||||||
|
@ -13,6 +13,14 @@
|
|||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
INCLUDE("${PROJECT_SOURCE_DIR}/storage/mysql_storage_engine.cmake")
|
SET(ARCHIVE_PLUGIN_STATIC "archive")
|
||||||
|
SET(ARCHIVE_PLUGIN_DYNAMIC "ha_archive")
|
||||||
|
|
||||||
SET(ARCHIVE_SOURCES azio.c ha_archive.cc ha_archive.h)
|
SET(ARCHIVE_SOURCES azio.c ha_archive.cc ha_archive.h)
|
||||||
MYSQL_STORAGE_ENGINE(ARCHIVE)
|
MYSQL_STORAGE_ENGINE(ARCHIVE)
|
||||||
|
IF(NOT WITH_ARCHIVE_STORAGE_ENGINE AND NOT WITHOUT_ARCHIVE_STORAGE_ENGINE
|
||||||
|
AND NOT WITH_ZLIB STREQUAL "bundled")
|
||||||
|
TARGET_LINK_LIBRARIES(archive ${ZLIB_LIBRARY})
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
|
||||||
|
@ -13,7 +13,8 @@
|
|||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
INCLUDE("${PROJECT_SOURCE_DIR}/storage/mysql_storage_engine.cmake")
|
SET(BLACKHOLE_PLUGIN_STATIC "blackhole")
|
||||||
SET(BLACKHOLE_SOURCES ha_blackhole.cc ha_blackhole.h)
|
SET(BLACKHOLE_PLUGIN_DYNAMIC "ha_blackhole")
|
||||||
|
|
||||||
|
SET(BLACKHOLE_SOURCES ha_blackhole.cc ha_blackhole.h)
|
||||||
MYSQL_STORAGE_ENGINE(BLACKHOLE)
|
MYSQL_STORAGE_ENGINE(BLACKHOLE)
|
||||||
|
@ -13,7 +13,8 @@
|
|||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
SET(CSV_PLUGIN_STATIC "csv")
|
||||||
|
SET(CSV_PLUGIN_MANDATORY TRUE)
|
||||||
|
|
||||||
INCLUDE("${PROJECT_SOURCE_DIR}/storage/mysql_storage_engine.cmake")
|
|
||||||
SET(CSV_SOURCES ha_tina.cc ha_tina.h transparent_file.cc transparent_file.h)
|
SET(CSV_SOURCES ha_tina.cc ha_tina.h transparent_file.cc transparent_file.h)
|
||||||
MYSQL_STORAGE_ENGINE(CSV)
|
MYSQL_STORAGE_ENGINE(CSV)
|
@ -13,6 +13,6 @@
|
|||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
INCLUDE("${PROJECT_SOURCE_DIR}/storage/mysql_storage_engine.cmake")
|
SET(EXAMPLE_PLUGIN_DYNAMIC "ha_example")
|
||||||
SET(EXAMPLE_SOURCES ha_example.cc)
|
SET(EXAMPLE_SOURCES ha_example.cc)
|
||||||
MYSQL_STORAGE_ENGINE(EXAMPLE)
|
MYSQL_STORAGE_ENGINE(EXAMPLE)
|
||||||
|
@ -13,6 +13,12 @@
|
|||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
INCLUDE("${PROJECT_SOURCE_DIR}/storage/mysql_storage_engine.cmake")
|
SET(FEDERATED_PLUGIN_STATIC "federated")
|
||||||
|
SET(FEDERATED_PLUGIN_DYNAMIC "ha_federated")
|
||||||
SET(FEDERATED_SOURCES ha_federated.cc)
|
SET(FEDERATED_SOURCES ha_federated.cc)
|
||||||
|
IF(NOT WITH_FEDERATED AND NOT WITH_FEDERATED_STORAGE_ENGINE)
|
||||||
|
# Bug#45488- federated uses symbols that are not used anywhere in
|
||||||
|
# mysqld and are optimized away by the linker.
|
||||||
|
SET(FEDERATED_SOURCES ${FEDERATED_SOURCES} ${CMAKE_SOURCE_DIR}/mysys/string.c)
|
||||||
|
ENDIF()
|
||||||
MYSQL_STORAGE_ENGINE(FEDERATED)
|
MYSQL_STORAGE_ENGINE(FEDERATED)
|
||||||
|
@ -13,8 +13,9 @@
|
|||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
SET(HEAP_PLUGIN_STATIC "heap")
|
||||||
|
SET(HEAP_PLUGIN_MANDATORY TRUE)
|
||||||
|
|
||||||
INCLUDE("${PROJECT_SOURCE_DIR}/storage/mysql_storage_engine.cmake")
|
|
||||||
SET(HEAP_SOURCES _check.c _rectest.c hp_block.c hp_clear.c hp_close.c hp_create.c
|
SET(HEAP_SOURCES _check.c _rectest.c hp_block.c hp_clear.c hp_close.c hp_create.c
|
||||||
ha_heap.cc
|
ha_heap.cc
|
||||||
hp_delete.c hp_extra.c hp_hash.c hp_info.c hp_open.c hp_panic.c
|
hp_delete.c hp_extra.c hp_hash.c hp_info.c hp_open.c hp_panic.c
|
||||||
|
@ -13,13 +13,28 @@
|
|||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
|
SET(IBMDB2I_PLUGIN_DYNAMIC "ha_ibmdb2i")
|
||||||
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
|
CHECK_INCLUDE_FILES(qlgusr.h HAVE_PASE_ENVIRONMENT)
|
||||||
|
IF(HAVE_PASE_ENVIRONMENT)
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/sql
|
INCLUDE_DIRECTORIES(
|
||||||
${CMAKE_SOURCE_DIR}/regex
|
${CMAKE_SOURCE_DIR}/include
|
||||||
${CMAKE_SOURCE_DIR}/extra/yassl/include)
|
${CMAKE_BINARY_DIR}/include
|
||||||
ADD_LIBRARY(ibmdb2i ha_ibmdb2i.cc db2i_ileBridge.cc db2i_conversion.cc
|
${CMAKE_SOURCE_DIR}/regex
|
||||||
|
${CMAKE_SOURCE_DIR}/sql
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
/afs/rchland.ibm.com/lande/shadow/dev2000/osxpf/v5r4m0f.xpf/cur/cmvc/base.pgm/my.xpf/apis
|
||||||
|
/afs/rchland.ibm.com/lande/shadow/dev2000/osxpf/v5r4m0.xpf/bld/cmvc/base.pgm/lg.xpf
|
||||||
|
/afs/rchland.ibm.com/lande/shadow/dev2000/osxpf/v5r4m0.xpf/bld/cmvc/base.pgm/tq.xpf
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
SET (IBMDB2I_SOURCES ha_ibmdb2i.cc db2i_ileBridge.cc db2i_conversion.cc
|
||||||
db2i_blobCollection.cc db2i_file.cc db2i_charsetSupport.cc
|
db2i_blobCollection.cc db2i_file.cc db2i_charsetSupport.cc
|
||||||
db2i_collationSupport.cc db2i_errors.cc db2i_constraints.cc
|
db2i_collationSupport.cc db2i_errors.cc db2i_constraints.cc
|
||||||
db2i_rir.cc db2i_sqlStatementStream.cc db2i_ioBuffers.cc db2i_myconv.cc)
|
db2i_rir.cc db2i_sqlStatementStream.cc db2i_ioBuffers.cc db2i_myconv.cc)
|
||||||
|
|
||||||
|
SET(IBMDB2I_LIBS iconv)
|
||||||
|
MYSQL_STORAGE_ENGINE(IBMDB2I)
|
||||||
|
|
||||||
|
ENDIF(HAVE_PASE_ENVIRONMENT)
|
||||||
|
@ -15,40 +15,127 @@
|
|||||||
|
|
||||||
# This is the CMakeLists for InnoDB Plugin
|
# This is the CMakeLists for InnoDB Plugin
|
||||||
|
|
||||||
|
INCLUDE(CheckFunctionExists)
|
||||||
|
INCLUDE(CheckCSourceCompiles)
|
||||||
|
INCLUDE(CheckCSourceRuns)
|
||||||
|
|
||||||
# TODO: remove the two FLAGS_DEBUG settings when merging into
|
# OS tests
|
||||||
# 6.0-based trees, like is already the case for other engines in
|
IF(UNIX)
|
||||||
# those trees.
|
IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
|
ADD_DEFINITIONS("-DUNIV_LINUX")
|
||||||
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
|
ELSEIF(CMAKE_SYSTEM_NAME MATCHES "HP*")
|
||||||
|
ADD_DEFINITIONS("-DUNIV_HPUX -DUNIV_MUST_NOT_INLINE")
|
||||||
|
ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "AIX")
|
||||||
|
ADD_DEFINITIONS("-DUNIV_AIX -DUNIX_MUST_NOT_INLINE")
|
||||||
|
ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
|
||||||
|
ADD_DEFINITIONS("-DUNIV_SOLARIS")
|
||||||
|
ELSE()
|
||||||
|
ADD_DEFINITIONS("-DUNIV_MUST_NOT_INLINE")
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
# Starting at 5.1.38, MySQL CMake files are simplified. But the plugin
|
# Solaris atomics
|
||||||
# CMakeLists.txt still needs to work with previous versions of MySQL.
|
IF(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
|
||||||
IF (MYSQL_VERSION_ID GREATER "50137")
|
CHECK_FUNCTION_EXISTS(atomic_cas_ulong HAVE_ATOMIC_CAS_ULONG)
|
||||||
INCLUDE("${PROJECT_SOURCE_DIR}/storage/mysql_storage_engine.cmake")
|
CHECK_FUNCTION_EXISTS(atomic_cas_32 HAVE_ATOMIC_CAS_32)
|
||||||
ENDIF (MYSQL_VERSION_ID GREATER "50137")
|
CHECK_FUNCTION_EXISTS(atomic_cas_64 HAVE_ATOMIC_CAS_64)
|
||||||
|
CHECK_FUNCTION_EXISTS(atomic_add_long HAVE_ATOMIC_ADD_LONG)
|
||||||
|
IF(HAVE_ATOMIC_CAS_ULONG AND HAVE_ATOMIC_CAS_32 AND
|
||||||
|
HAVE_ATOMIC_CAS_64 AND HAVE_ATOMIC_ADD_LONG)
|
||||||
|
SET(HAVE_SOLARIS_ATOMICS 1)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(HAVE_GCC_ATOMIC_BUILTINS)
|
||||||
|
CHECK_C_SOURCE_COMPILES("
|
||||||
|
#include <pthread.h>
|
||||||
|
#include <string.h>
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
pthread_t x1;
|
||||||
|
pthread_t x2;
|
||||||
|
pthread_t x3;
|
||||||
|
__sync_bool_compare_and_swap(&x1, x2, x3);
|
||||||
|
return 0;
|
||||||
|
}" HAVE_ATOMIC_PTHREAD_T_GCC
|
||||||
|
)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(NOT HAVE_ATOMIC_PTHREAD_T_GCC AND HAVE_SOLARIS_ATOMICS)
|
||||||
|
CHECK_C_SOURCE_COMPILES("
|
||||||
|
#include <pthread.h>
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
pthread_t x = 0;
|
||||||
|
return(0);
|
||||||
|
}" HAVE_ATOMIC_PTHREAD_T_SOLARIS
|
||||||
|
)
|
||||||
|
IF(HAVE_ATOMIC_PTHREAD_T_SOLARIS)
|
||||||
|
SET(CMAKE_EXTRA_INCLUDE_FILES pthread.h)
|
||||||
|
CHECK_TYPE_SIZE(pthread_t SIZEOF_PTHREAD_T)
|
||||||
|
SET(CMAKE_EXTRA_INCLUDE_FILES)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(NOT CMAKE_CROSSCOMPILING)
|
||||||
|
STRING(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} processor)
|
||||||
|
IF(NOT WIN32 AND processor MATCHES "86" OR processor MATCHES "amd64"
|
||||||
|
OR processor MATCHES "x64")
|
||||||
|
# Check for x86 PAUSE instruction
|
||||||
|
# We have to actually try running the test program, because of a bug
|
||||||
|
# in Solaris on x86_64, where it wrongly reports that PAUSE is not
|
||||||
|
# supported when trying to run an application. See
|
||||||
|
# http://bugs.opensolaris.org/bugdatabase/printableBug.do?bug_id=6478684
|
||||||
|
CHECK_C_SOURCE_RUNS("
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
__asm__ __volatile__ (\"pause\");
|
||||||
|
return 0;
|
||||||
|
}" IB_HAVE_PAUSE_INSTRUCTION)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(HAVE_ATOMIC_PTHREAD_T_SOLARIS OR HAVE_ATOMIC_PTHREAD_T_GCC)
|
||||||
|
ADD_DEFINITIONS(-DHAVE_ATOMIC_PTHREAD_T=1)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(HAVE_SOLARIS_ATOMICS)
|
||||||
|
ADD_DEFINITIONS(-DHAVE_SOLARIS_ATOMICS=1)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(IB_HAVE_PAUSE_INSTRUCTIONS)
|
||||||
|
ADD_DEFINITIONS(-DIB_HAVE_PAUSE_INSTRUCTIONS=1)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(SIZEOF_PTHREAD_T)
|
||||||
|
ADD_DEFINITIONS(-DSIZEOF_PTHREAD_T=${SIZEOF_PTHREAD_T})
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(MSVC)
|
||||||
|
ADD_DEFINITIONS(-DHAVE_WINDOWS_ATOMICS -DIB_HAVE_PAUSE_INSTRUCTION)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
IF (CMAKE_SIZEOF_VOID_P MATCHES 8)
|
|
||||||
SET(WIN64 TRUE)
|
|
||||||
ENDIF (CMAKE_SIZEOF_VOID_P MATCHES 8)
|
|
||||||
|
|
||||||
# Include directories under innobase
|
# Include directories under innobase
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/storage/innobase/include
|
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/storage/innobase/include
|
||||||
${CMAKE_SOURCE_DIR}/storage/innobase/handler)
|
${CMAKE_SOURCE_DIR}/storage/innobase/handler)
|
||||||
|
|
||||||
# Include directories under mysql
|
# Sun Studio bug with -xO2
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
|
IF(CMAKE_C_COMPILER_ID MATCHES "SunPro"
|
||||||
${CMAKE_SOURCE_DIR}/sql
|
AND CMAKE_C_FLAGS_RELEASE MATCHES "O2"
|
||||||
${CMAKE_SOURCE_DIR}/regex
|
AND NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||||
${CMAKE_SOURCE_DIR}/zlib
|
# Sun Studio 12 crashes with -xO2 flag, but not with higher optimization
|
||||||
${CMAKE_SOURCE_DIR}/extra/yassl/include)
|
# -xO3
|
||||||
|
SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/rem/rem0rec.c
|
||||||
|
PROPERTIES COMPILE_FLAGS -xO3)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
# Removing compiler optimizations for innodb/mem/* files on 64-bit Windows
|
# Removing compiler optimizations for innodb/mem/* files on 64-bit Windows
|
||||||
# due to 64-bit compiler error, See MySQL Bug #19424, #36366, #34297
|
# due to 64-bit compiler error, See MySQL Bug #19424, #36366, #34297
|
||||||
IF (MSVC AND $(WIN64))
|
IF (MSVC AND CMAKE_SIZEOF_VOIDP EQUAL 8)
|
||||||
SET_SOURCE_FILES_PROPERTIES(mem/mem0mem.c mem/mem0pool.c
|
SET_SOURCE_FILES_PROPERTIES(mem/mem0mem.c mem/mem0pool.c
|
||||||
PROPERTIES COMPILE_FLAGS -Od)
|
PROPERTIES COMPILE_FLAGS -Od)
|
||||||
ENDIF (MSVC AND $(WIN64))
|
ENDIF()
|
||||||
|
|
||||||
SET(INNOBASE_SOURCES btr/btr0btr.c btr/btr0cur.c btr/btr0pcur.c btr/btr0sea.c
|
SET(INNOBASE_SOURCES btr/btr0btr.c btr/btr0cur.c btr/btr0pcur.c btr/btr0sea.c
|
||||||
buf/buf0buddy.c buf/buf0buf.c buf/buf0flu.c buf/buf0lru.c buf/buf0rea.c
|
buf/buf0buddy.c buf/buf0buf.c buf/buf0flu.c buf/buf0lru.c buf/buf0rea.c
|
||||||
@ -83,20 +170,42 @@ SET(INNOBASE_SOURCES btr/btr0btr.c btr/btr0cur.c btr/btr0pcur.c btr/btr0sea.c
|
|||||||
usr/usr0sess.c
|
usr/usr0sess.c
|
||||||
ut/ut0byte.c ut/ut0dbg.c ut/ut0mem.c ut/ut0rnd.c ut/ut0ut.c ut/ut0vec.c
|
ut/ut0byte.c ut/ut0dbg.c ut/ut0mem.c ut/ut0rnd.c ut/ut0ut.c ut/ut0vec.c
|
||||||
ut/ut0list.c ut/ut0wqueue.c)
|
ut/ut0list.c ut/ut0wqueue.c)
|
||||||
ADD_DEFINITIONS(-DHAVE_WINDOWS_ATOMICS -DIB_HAVE_PAUSE_INSTRUCTION)
|
|
||||||
|
|
||||||
IF (MYSQL_VERSION_ID GREATER "50137")
|
IF(WITH_INNODB)
|
||||||
|
# Legacy option
|
||||||
|
SET(WITH_INNOBASE_STORAGE_ENGINE TRUE)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
SET(INNOBASE_PLUGIN_STATIC "innobase")
|
||||||
|
SET(INNOBASE_PLUGIN_DYNAMIC "ha_innodb")
|
||||||
|
|
||||||
|
# Innobase depends on zlib. If server links with system
|
||||||
|
# zlib shared library, and innobase builds as shared library,
|
||||||
|
# innobase need to link with it too, to avoid unresolved symbols.
|
||||||
|
IF(ZLIB_FOUND AND NOT WITH_ZLIB STREQUAL "bundled")
|
||||||
|
SET(INNOBASE_LIBS ${ZLIB_LIBRARY})
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
#The plugin's CMakeLists.txt still needs to work with previous versions of MySQL.
|
||||||
|
IF(EXISTS ${SOURCE_DIR}/storage/mysql_storage_engine.cmake)
|
||||||
|
# Old plugin support on Windows only,
|
||||||
|
# use tricks to force ha_innodb.dll name for DLL
|
||||||
|
INCLUDE(${SOURCE_DIR}/storage/mysql_storage_engine.cmake)
|
||||||
MYSQL_STORAGE_ENGINE(INNOBASE)
|
MYSQL_STORAGE_ENGINE(INNOBASE)
|
||||||
# Use ha_innodb for plugin name, if plugin is built
|
|
||||||
GET_TARGET_PROPERTY(LIB_LOCATION ha_innobase LOCATION)
|
GET_TARGET_PROPERTY(LIB_LOCATION ha_innobase LOCATION)
|
||||||
IF(LIB_LOCATION)
|
IF(LIB_LOCATION)
|
||||||
SET_TARGET_PROPERTIES(ha_innobase PROPERTIES OUTPUT_NAME ha_innodb)
|
SET_TARGET_PROPERTIES(ha_innobase PROPERTIES OUTPUT_NAME ha_innodb)
|
||||||
ENDIF(LIB_LOCATION)
|
ENDIF()
|
||||||
ELSE (MYSQL_VERSION_ID GREATER "50137")
|
ELSEIF (MYSQL_VERSION_ID LESS "50137")
|
||||||
|
# Windows only, no plugin support
|
||||||
IF (NOT SOURCE_SUBLIBS)
|
IF (NOT SOURCE_SUBLIBS)
|
||||||
ADD_DEFINITIONS(-D_WIN32 -DMYSQL_SERVER)
|
ADD_DEFINITIONS(-DMYSQL_SERVER)
|
||||||
ADD_LIBRARY(innobase STATIC ${INNOBASE_SOURCES})
|
ADD_LIBRARY(innobase STATIC ${INNOBASE_SOURCES})
|
||||||
# Require mysqld_error.h, which is built as part of the GenError
|
# Require mysqld_error.h, which is built as part of the GenError
|
||||||
ADD_DEPENDENCIES(innobase GenError)
|
ADD_DEPENDENCIES(innobase GenError)
|
||||||
ENDIF (NOT SOURCE_SUBLIBS)
|
ENDIF()
|
||||||
ENDIF (MYSQL_VERSION_ID GREATER "50137")
|
ELSE()
|
||||||
|
# New plugin support, cross-platform , name for shared library
|
||||||
|
# is given in INNOBASE_PLUGIN_STATIC and INNOBASE_PLUGIN_DYNAMIC
|
||||||
|
MYSQL_STORAGE_ENGINE(INNOBASE)
|
||||||
|
ENDIF()
|
||||||
|
@ -907,7 +907,7 @@ page_get_data_size(
|
|||||||
|
|
||||||
/************************************************************//**
|
/************************************************************//**
|
||||||
Allocates a block of memory from the free list of an index page. */
|
Allocates a block of memory from the free list of an index page. */
|
||||||
UNIV_INTERN
|
UNIV_INLINE
|
||||||
void
|
void
|
||||||
page_mem_alloc_free(
|
page_mem_alloc_free(
|
||||||
/*================*/
|
/*================*/
|
||||||
|
@ -12,9 +12,9 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
INCLUDE("${PROJECT_SOURCE_DIR}/storage/mysql_storage_engine.cmake")
|
|
||||||
INCLUDE("${PROJECT_SOURCE_DIR}/win/mysql_manifest.cmake")
|
|
||||||
|
|
||||||
|
SET(MYISAM_PLUGIN_STATIC "myisam")
|
||||||
|
SET(MYISAM_PLUGIN_MANDATORY TRUE)
|
||||||
|
|
||||||
SET(MYISAM_SOURCES ft_boolean_search.c ft_nlq_search.c ft_parser.c ft_static.c ft_stem.c
|
SET(MYISAM_SOURCES ft_boolean_search.c ft_nlq_search.c ft_parser.c ft_static.c ft_stem.c
|
||||||
ha_myisam.cc
|
ha_myisam.cc
|
||||||
@ -30,26 +30,38 @@ SET(MYISAM_SOURCES ft_boolean_search.c ft_nlq_search.c ft_parser.c ft_static.c
|
|||||||
|
|
||||||
MYSQL_STORAGE_ENGINE(MYISAM)
|
MYSQL_STORAGE_ENGINE(MYISAM)
|
||||||
|
|
||||||
IF(NOT SOURCE_SUBLIBS)
|
ADD_EXECUTABLE(myisam_ftdump myisam_ftdump.c)
|
||||||
ADD_EXECUTABLE(myisam_ftdump myisam_ftdump.c)
|
TARGET_LINK_LIBRARIES(myisam_ftdump myisam mysys)
|
||||||
TARGET_LINK_LIBRARIES(myisam_ftdump myisam mysys dbug strings zlib)
|
|
||||||
|
|
||||||
ADD_EXECUTABLE(myisamchk myisamchk.c)
|
ADD_EXECUTABLE(myisamchk myisamchk.c)
|
||||||
TARGET_LINK_LIBRARIES(myisamchk myisam mysys dbug strings zlib)
|
TARGET_LINK_LIBRARIES(myisamchk myisam mysys)
|
||||||
|
|
||||||
ADD_EXECUTABLE(myisamlog myisamlog.c)
|
ADD_EXECUTABLE(myisamlog myisamlog.c)
|
||||||
TARGET_LINK_LIBRARIES(myisamlog myisam mysys dbug strings zlib)
|
TARGET_LINK_LIBRARIES(myisamlog myisam mysys)
|
||||||
|
|
||||||
ADD_EXECUTABLE(myisampack myisampack.c)
|
ADD_EXECUTABLE(myisampack myisampack.c)
|
||||||
TARGET_LINK_LIBRARIES(myisampack myisam mysys dbug strings zlib)
|
|
||||||
|
|
||||||
|
TARGET_LINK_LIBRARIES(myisampack myisam mysys)
|
||||||
|
|
||||||
|
IF(WITH_UNIT_TESTS AND FALSE)
|
||||||
|
ADD_EXECUTABLE(mi_test1 mi_test1.c)
|
||||||
|
TARGET_LINK_LIBRARIES(mi_test1 myisam mysys)
|
||||||
|
|
||||||
|
ADD_EXECUTABLE(mi_test2 mi_test2.c)
|
||||||
|
TARGET_LINK_LIBRARIES(mi_test2 myisam mysys)
|
||||||
|
|
||||||
|
ADD_EXECUTABLE(mi_test3 mi_test3.c)
|
||||||
|
TARGET_LINK_LIBRARIES(mi_test3 myisam mysys)
|
||||||
|
|
||||||
|
ADD_EXECUTABLE(sp_test sp_test.c)
|
||||||
|
TARGET_LINK_LIBRARIES(sp_test myisam mysys)
|
||||||
|
|
||||||
|
ADD_EXECUTABLE(rt_test rt_test.c)
|
||||||
|
TARGET_LINK_LIBRARIES(rt_test myisam mysys)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF (MSVC)
|
||||||
SET_TARGET_PROPERTIES(myisamchk myisampack PROPERTIES LINK_FLAGS "setargv.obj")
|
SET_TARGET_PROPERTIES(myisamchk myisampack PROPERTIES LINK_FLAGS "setargv.obj")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
IF(EMBED_MANIFESTS)
|
INSTALL(TARGETS myisamchk myisamlog myisampack myisam_ftdump DESTINATION bin)
|
||||||
MYSQL_EMBED_MANIFEST("myisam_ftdump" "asInvoker")
|
|
||||||
MYSQL_EMBED_MANIFEST("myisamchk" "asInvoker")
|
|
||||||
MYSQL_EMBED_MANIFEST("myisamlog" "asInvoker")
|
|
||||||
MYSQL_EMBED_MANIFEST("myisampack" "asInvoker")
|
|
||||||
ENDIF(EMBED_MANIFESTS)
|
|
||||||
|
|
||||||
ENDIF(NOT SOURCE_SUBLIBS)
|
|
||||||
|
@ -13,7 +13,8 @@
|
|||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
INCLUDE("${PROJECT_SOURCE_DIR}/storage/mysql_storage_engine.cmake")
|
SET(MYISAMMRG_PLUGIN_STATIC "myisammrg")
|
||||||
|
SET(MYISAMMRG_PLUGIN_MANDATORY 1)
|
||||||
|
|
||||||
SET(MYISAMMRG_SOURCES myrg_close.c myrg_create.c myrg_delete.c myrg_extra.c myrg_info.c
|
SET(MYISAMMRG_SOURCES myrg_close.c myrg_create.c myrg_delete.c myrg_extra.c myrg_info.c
|
||||||
ha_myisammrg.cc
|
ha_myisammrg.cc
|
||||||
|
@ -1,44 +0,0 @@
|
|||||||
# MYSQL_STORAGE_ENGINE Macro creates a project to build storage engine
|
|
||||||
# library.
|
|
||||||
#
|
|
||||||
# Parameters:
|
|
||||||
# engine - storage engine name.
|
|
||||||
# variable ENGINE_BUILD_TYPE should be set to "STATIC" or "DYNAMIC"
|
|
||||||
# Remarks:
|
|
||||||
# ${engine}_SOURCES variable containing source files to produce the library must set before
|
|
||||||
# calling this macro
|
|
||||||
# ${engine}_LIBS variable containing extra libraries to link with may be set
|
|
||||||
|
|
||||||
|
|
||||||
MACRO(MYSQL_STORAGE_ENGINE engine)
|
|
||||||
IF(NOT SOURCE_SUBLIBS)
|
|
||||||
# Add common include directories
|
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/zlib
|
|
||||||
${CMAKE_SOURCE_DIR}/sql
|
|
||||||
${CMAKE_SOURCE_DIR}/regex
|
|
||||||
${CMAKE_SOURCE_DIR}/extra/yassl/include)
|
|
||||||
STRING(TOUPPER ${engine} engine)
|
|
||||||
STRING(TOLOWER ${engine} libname)
|
|
||||||
IF(${ENGINE_BUILD_TYPE} STREQUAL "STATIC")
|
|
||||||
ADD_DEFINITIONS(-DWITH_${engine}_STORAGE_ENGINE -DMYSQL_SERVER)
|
|
||||||
#Create static library. The name of the library is <storage_engine>.lib
|
|
||||||
ADD_LIBRARY(${libname} ${${engine}_SOURCES})
|
|
||||||
ADD_DEPENDENCIES(${libname} GenError)
|
|
||||||
IF(${engine}_LIBS)
|
|
||||||
TARGET_LINK_LIBRARIES(${libname} ${${engine}_LIBS})
|
|
||||||
ENDIF(${engine}_LIBS)
|
|
||||||
MESSAGE("build ${engine} as static library")
|
|
||||||
ELSEIF(${ENGINE_BUILD_TYPE} STREQUAL "DYNAMIC")
|
|
||||||
ADD_DEFINITIONS(-DMYSQL_DYNAMIC_PLUGIN)
|
|
||||||
#Create a DLL.The name of the dll is ha_<storage_engine>.dll
|
|
||||||
#The dll is linked to the mysqld executable
|
|
||||||
SET(dyn_libname ha_${libname})
|
|
||||||
ADD_LIBRARY(${dyn_libname} SHARED ${${engine}_SOURCES})
|
|
||||||
TARGET_LINK_LIBRARIES (${dyn_libname} mysqlservices mysqld)
|
|
||||||
IF(${engine}_LIBS)
|
|
||||||
TARGET_LINK_LIBRARIES(${dyn_libname} ${${engine}_LIBS})
|
|
||||||
ENDIF(${engine}_LIBS)
|
|
||||||
MESSAGE("build ${engine} as DLL")
|
|
||||||
ENDIF(${ENGINE_BUILD_TYPE} STREQUAL "STATIC")
|
|
||||||
ENDIF(NOT SOURCE_SUBLIBS)
|
|
||||||
ENDMACRO(MYSQL_STORAGE_ENGINE)
|
|
@ -22,8 +22,8 @@ SET(STRINGS_SOURCES bchange.c bcmp.c bfill.c bmove512.c bmove_upp.c ctype-big5.c
|
|||||||
is_prefix.c llstr.c longlong2str.c my_strtoll10.c my_vsnprintf.c r_strinstr.c
|
is_prefix.c llstr.c longlong2str.c my_strtoll10.c my_vsnprintf.c r_strinstr.c
|
||||||
str2int.c str_alloc.c strcend.c strend.c strfill.c strmake.c strmov.c strnmov.c
|
str2int.c str_alloc.c strcend.c strend.c strfill.c strmake.c strmov.c strnmov.c
|
||||||
strtod.c strtol.c strtoll.c strtoul.c strtoull.c strxmov.c strxnmov.c xml.c
|
strtod.c strtol.c strtoll.c strtoul.c strtoull.c strxmov.c strxnmov.c xml.c
|
||||||
my_strchr.c strcont.c strinstr.c strnlen.c)
|
my_strchr.c strcont.c strinstr.c strnlen.c strappend.c)
|
||||||
|
|
||||||
|
USE_ABSOLUTE_FILENAMES(STRINGS_SOURCES)
|
||||||
|
ADD_LIBRARY(strings ${STRINGS_SOURCES})
|
||||||
|
|
||||||
IF(NOT SOURCE_SUBLIBS)
|
|
||||||
ADD_LIBRARY(strings ${STRINGS_SOURCES})
|
|
||||||
ENDIF(NOT SOURCE_SUBLIBS)
|
|
||||||
|
61
support-files/CMakeLists.txt
Normal file
61
support-files/CMakeLists.txt
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; version 2 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
IF(WIN32)
|
||||||
|
SET(localstatedir "C:\\mysql\\data")
|
||||||
|
SET(install_destination .)
|
||||||
|
SET(ini_file_extension "ini")
|
||||||
|
ELSE()
|
||||||
|
SET(localstatedir "/usr/local/mysql/data")
|
||||||
|
SET(prefix "/usr/local")
|
||||||
|
SET(libexedir "/usr/local/mysql/bin")
|
||||||
|
SET(bindir "/usr/local/mysql/bin" )
|
||||||
|
SET(sbindir "/usr/local/mysql/bin")
|
||||||
|
SET(datadir "/usr/local/mysql/data")
|
||||||
|
SET(CC ${CMAKE_C_COMPILER})
|
||||||
|
SET(CXX ${CMAKE_CXX_COMPILER})
|
||||||
|
SET(CFLAGS ${CMAKE_C_COMPILE_FLAGS})
|
||||||
|
SET(CXXFLAGS ${CMAKE_COMPILE_CXX_FLAGS})
|
||||||
|
SET(MYSQLD_USER "mysql")
|
||||||
|
SET(install_destination "support-files")
|
||||||
|
SET(ini_file_extension "cnf")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
FOREACH(inifile my-huge my-innodb-heavy-4G my-large my-medium my-small)
|
||||||
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${inifile}.cnf.sh
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/${inifile}.${ini_file_extension} @ONLY)
|
||||||
|
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${inifile}.${ini_file_extension} DESTINATION ${install_destination})
|
||||||
|
|
||||||
|
ENDFOREACH()
|
||||||
|
|
||||||
|
IF(UNIX)
|
||||||
|
FILE(GLOB ndb_ini_files ${CMAKE_CURRENT_SOURCE_DIR}/*.ini)
|
||||||
|
INSTALL(FILES ${ndb_ini_files} DESTINATION ${install_destination})
|
||||||
|
|
||||||
|
FOREACH(script mysql.server mysqld_multi.server mysql-log-rotate)
|
||||||
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${script}.sh
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/${script} @ONLY )
|
||||||
|
|
||||||
|
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${script} DESTINATION support-files
|
||||||
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||||
|
ENDFOREACH()
|
||||||
|
INSTALL(FILES magic DESTINATION support-files)
|
||||||
|
INSTALL(FILES mysql.m4 DESTINATION share/aclocal)
|
||||||
|
CONFIGURE_FILE(MySQL-shared-compat.spec.sh ${CMAKE_CURRENT_BINARY_DIR}/MySQL-shared-compat.spec @ONLY)
|
||||||
|
CONFIGURE_FILE(mysql.spec.sh ${CMAKE_CURRENT_BINARY_DIR}/mysql.spec @ONLY)
|
||||||
|
CONFIGURE_FILE(mysql.spec.sh ${CMAKE_CURRENT_BINARY_DIR}/mysql.${VERSION}.spec @ONLY)
|
||||||
|
CONFIGURE_FILE(MySQL-shared-compat.spec.sh ${CMAKE_CURRENT_BINARY_DIR}/MySQL-shared-compat.spec @ONLY)
|
||||||
|
ENDIF()
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user