summaryrefslogtreecommitdiff
path: root/libmysqld
diff options
context:
space:
mode:
authorunknown <iggy@amd64.(none)>2007-08-03 14:43:12 -0400
committerunknown <iggy@amd64.(none)>2007-08-03 14:43:12 -0400
commitc6c57ed783eabf5d9c99a3c1fd4f5ea5518c069c (patch)
tree743ce671890386580cfb5fe72e9393a21c9f567f /libmysqld
parent6f88aa45dbc129751890421b13e8c4e13b8bd888 (diff)
downloadmariadb-git-c6c57ed783eabf5d9c99a3c1fd4f5ea5518c069c.tar.gz
Bug#29903 The CMake build method does not produce the embedded library.
- Changes to correct and test Windows embedded build. BitKeeper/etc/ignore: Bug#29903 The CMake build method does not produce the embedded library. - Ignore auto-generated Windows embedded resources. CMakeLists.txt: Bug#29903 The CMake build method does not produce the embedded library. - Hardcode CSV for all configurations. - Add client directory for gen_lex_hash dependency. client/CMakeLists.txt: Bug#29903 The CMake build method does not produce the embedded library. - Build the mysqlclient library and echo for the embedded solution. client/client_priv.h: Bug#29903 The CMake build method does not produce the embedded library. - Defined new option. client/mysql.cc: Bug#29903 The CMake build method does not produce the embedded library. - Add server-arg command line parameter libmysqld/CMakeLists.txt: Bug#29903 The CMake build method does not produce the embedded library. - Added auto generated resources; sql_yacc.cc, sql_yacc.h, message.rc message.h and lex_hash.h. - Link csv library to libmsyqld. libmysqld/Makefile.am: Bug#29903 The CMake build method does not produce the embedded library. - Include CMakeLists.txt in dist. libmysqld/examples/CMakeLists.txt: Bug#29903 The CMake build method does not produce the embedded library. - Follow existing naming convention. libmysqld/examples/Makefile.am: Bug#29903 The CMake build method does not produce the embedded library. - Include CMakeLists.txt in dist. mysql-test/mysql-test-run.pl: Bug#29903 The CMake build method does not produce the embedded library. - Move embedded option block earlier in the script. - Added the path to the libmysqld.dll to Windows path. win/README: Bug#29903 The CMake build method does not produce the embedded library. - Add instructions for building/testing the embedded library.
Diffstat (limited to 'libmysqld')
-rw-r--r--libmysqld/CMakeLists.txt63
-rw-r--r--libmysqld/Makefile.am2
-rw-r--r--libmysqld/examples/CMakeLists.txt6
-rw-r--r--libmysqld/examples/Makefile.am1
4 files changed, 62 insertions, 10 deletions
diff --git a/libmysqld/CMakeLists.txt b/libmysqld/CMakeLists.txt
index dd42bafcfe0..3a6873112f3 100644
--- a/libmysqld/CMakeLists.txt
+++ b/libmysqld/CMakeLists.txt
@@ -25,16 +25,20 @@ ADD_DEFINITIONS(-DUSE_TLS -DMYSQL_SERVER)
ADD_DEFINITIONS(-DUSING_CMAKE)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
- ${CMAKE_SOURCE_DIR}/libmysqld
- ${CMAKE_SOURCE_DIR}/libmysql
+ ${CMAKE_SOURCE_DIR}/libmysqld
+ ${CMAKE_SOURCE_DIR}/libmysql
${CMAKE_SOURCE_DIR}/sql
${CMAKE_SOURCE_DIR}/regex
${CMAKE_SOURCE_DIR}/extra/yassl/include
${CMAKE_SOURCE_DIR}/zlib
)
-SET_SOURCE_FILES_PROPERTIES(${PROJECT_SOURCE_DIR}/sql/sql_yacc.cc
- ${PROJECT_SOURCE_DIR}/sql/sql_yacc.h
+SET_SOURCE_FILES_PROPERTIES(sql_yacc.cc
+ sql_yacc.h
+ message.h
+ message.rc
+ ${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc
+ lex_hash.h
PROPERTIES GENERATED 1)
ADD_LIBRARY(mysqldemb emb_qcache.cc libmysqld.c lib_sql.cc
@@ -80,10 +84,54 @@ ADD_LIBRARY(mysqldemb emb_qcache.cc libmysqld.c lib_sql.cc
../sql/scheduler.cc
../vio/vio.c ../vio/viosocket.c ../vio/viossl.c
../vio/viosslfactories.c
- ${PROJECT_SOURCE_DIR}/sql/sql_yacc.cc
- ${PROJECT_SOURCE_DIR}/sql/sql_yacc.h)
+ sql_yacc.cc
+ sql_yacc.h
+ message.h
+ message.rc
+ lex_hash.h)
ADD_DEPENDENCIES(mysqldemb GenError)
+# Sql Parser custom command
+ADD_CUSTOM_COMMAND(
+ SOURCE ${PROJECT_SOURCE_DIR}/sql/sql_yacc.yy
+ OUTPUT sql_yacc.cc
+ COMMAND bison.exe
+ ARGS -y -p MYSQL --defines=sql_yacc.h
+ --output=sql_yacc.cc ${PROJECT_SOURCE_DIR}/sql/sql_yacc.yy
+ DEPENDS ${PROJECT_SOURCE_DIR}/sql/sql_yacc.yy
+)
+
+ADD_CUSTOM_COMMAND(
+ OUTPUT sql_yacc.h
+ COMMAND echo
+ DEPENDS ${PROJECT_SOURCE_DIR}/sql/sql_yacc.cc
+)
+
+# Windows message file
+ADD_CUSTOM_COMMAND(
+ SOURCE ${CMAKE_SOURCE_DIR}/sql/message.mc
+ OUTPUT message.rc message.h
+ COMMAND mc
+ ARGS ${CMAKE_SOURCE_DIR}/sql/message.mc
+ DEPENDS ${CMAKE_SOURCE_DIR}/sql/message.mc
+)
+
+# Gen_lex_hash
+ADD_EXECUTABLE(gen_lex_hash ../sql/gen_lex_hash.cc)
+TARGET_LINK_LIBRARIES(gen_lex_hash dbug mysqlclient wsock32)
+GET_TARGET_PROPERTY(GEN_LEX_HASH_EXE gen_lex_hash LOCATION)
+ADD_CUSTOM_COMMAND(
+ OUTPUT lex_hash.h
+ COMMAND ${GEN_LEX_HASH_EXE} ARGS > lex_hash.h
+ DEPENDS ${GEN_LEX_HASH_EXE}
+)
+
+# Remove the auto-generated files as part of 'Clean Solution'
+SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES
+ "lex_hash.h;message.rc;message.h;sql_yacc.h;sql_yacc.cc")
+
+ADD_DEPENDENCIES(mysqldemb gen_lex_hash)
+
# Seems we cannot make a library without at least one source file. So use a
# dummy empty file
FILE(WRITE cmake_dummy.c " ")
@@ -120,3 +168,6 @@ ENDIF(WITH_ARCHIVE_STORAGE_ENGINE)
IF(WITH_BLACKHOLE_STORAGE_ENGINE)
TARGET_LINK_LIBRARIES(libmysqld blackhole)
ENDIF(WITH_BLACKHOLE_STORAGE_ENGINE)
+IF(WITH_CSV_STORAGE_ENGINE)
+ TARGET_LINK_LIBRARIES(libmysqld csv)
+ENDIF(WITH_CSV_STORAGE_ENGINE)
diff --git a/libmysqld/Makefile.am b/libmysqld/Makefile.am
index 024b85eed8e..6ecce474b50 100644
--- a/libmysqld/Makefile.am
+++ b/libmysqld/Makefile.am
@@ -22,7 +22,7 @@ MYSQLSHAREdir = $(pkgdatadir)
MYSQLBASEdir= $(prefix)
MYSQLLIBdir= $(libdir)
-EXTRA_DIST = libmysqld.def
+EXTRA_DIST = libmysqld.def CMakeLists.txt
DEFS = -DEMBEDDED_LIBRARY -DMYSQL_SERVER \
-DDEFAULT_MYSQL_HOME="\"$(MYSQLBASEdir)\"" \
-DDATADIR="\"$(MYSQLDATAdir)\"" \
diff --git a/libmysqld/examples/CMakeLists.txt b/libmysqld/examples/CMakeLists.txt
index 59fa390399d..13956fe0a10 100644
--- a/libmysqld/examples/CMakeLists.txt
+++ b/libmysqld/examples/CMakeLists.txt
@@ -23,11 +23,11 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
# Currently does not work with DBUG, there are missing symbols reported.
ADD_DEFINITIONS(-DDBUG_OFF)
ADD_DEFINITIONS(-DUSE_TLS)
-ADD_EXECUTABLE(test_libmysqld ../../client/completion_hash.cc
+ADD_EXECUTABLE(mysql_embedded ../../client/completion_hash.cc
../../client/mysql.cc ../../client/readline.cc
../../client/sql_string.cc)
-TARGET_LINK_LIBRARIES(test_libmysqld mysys yassl taocrypt zlib dbug regex strings wsock32)
-ADD_DEPENDENCIES(test_libmysqld libmysqld)
+TARGET_LINK_LIBRARIES(mysql_embedded mysys yassl taocrypt zlib dbug regex strings wsock32)
+ADD_DEPENDENCIES(mysql_embedded libmysqld)
ADD_EXECUTABLE(mysqltest_embedded ../../client/mysqltest.c)
TARGET_LINK_LIBRARIES(mysqltest_embedded mysys yassl taocrypt zlib dbug regex strings wsock32)
diff --git a/libmysqld/examples/Makefile.am b/libmysqld/examples/Makefile.am
index ec5bbbb86e5..4a91724afee 100644
--- a/libmysqld/examples/Makefile.am
+++ b/libmysqld/examples/Makefile.am
@@ -19,6 +19,7 @@ client_sources = $(mysqltest_embedded_SOURCES) $(mysql_SOURCES)
tests_sources = $(mysql_client_test_embedded_SOURCES)
BUILT_SOURCES = link_sources
CLEANFILES = $(client_sources) $(tests_sources) $(BUILT_SOURCES)
+EXTRA_DIST = CMakeLists.txt
link_sources:
for f in $(client_sources); do \