2006-12-31 01:02:27 +01:00
|
|
|
# Copyright (C) 2006 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
|
2007-04-23 15:41:24 -04:00
|
|
|
INCLUDE("${PROJECT_SOURCE_DIR}/win/mysql_manifest.cmake")
|
2006-12-31 01:02:27 +01:00
|
|
|
|
2006-08-31 19:52:42 +02:00
|
|
|
SET(CMAKE_CXX_FLAGS_DEBUG
|
|
|
|
"${CMAKE_CXX_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX -DUSE_SYMDIR /Zi")
|
|
|
|
SET(CMAKE_C_FLAGS_DEBUG
|
|
|
|
"${CMAKE_C_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX -DUSE_SYMDIR /Zi")
|
|
|
|
SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /MAP /MAPINFO:EXPORTS")
|
|
|
|
|
|
|
|
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
|
|
|
|
${CMAKE_SOURCE_DIR}/extra/yassl/include
|
|
|
|
${CMAKE_SOURCE_DIR}/sql
|
|
|
|
${CMAKE_SOURCE_DIR}/regex
|
|
|
|
${CMAKE_SOURCE_DIR}/zlib
|
|
|
|
${CMAKE_SOURCE_DIR}/bdb/build_win32
|
|
|
|
${CMAKE_SOURCE_DIR}/bdb/dbinc)
|
|
|
|
|
|
|
|
SET_SOURCE_FILES_PROPERTIES(${CMAKE_SOURCE_DIR}/sql/message.rc
|
|
|
|
${CMAKE_SOURCE_DIR}/sql/message.h
|
|
|
|
${CMAKE_SOURCE_DIR}/sql/sql_yacc.h
|
|
|
|
${CMAKE_SOURCE_DIR}/sql/sql_yacc.cc
|
|
|
|
${CMAKE_SOURCE_DIR}/include/mysql_version.h
|
|
|
|
${CMAKE_SOURCE_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
|
|
|
|
PROPERTIES GENERATED 1)
|
|
|
|
|
|
|
|
ADD_DEFINITIONS(-DHAVE_INNOBASE -DMYSQL_SERVER
|
|
|
|
-D_CONSOLE -DHAVE_DLOPEN)
|
2007-01-09 19:22:01 -07:00
|
|
|
|
|
|
|
IF(DISABLE_GRANT_OPTIONS)
|
|
|
|
ADD_DEFINITIONS(-DDISABLE_GRANT_OPTIONS)
|
|
|
|
ENDIF(DISABLE_GRANT_OPTIONS)
|
2006-08-31 19:52:42 +02:00
|
|
|
|
2007-07-18 15:42:36 +02:00
|
|
|
ADD_EXECUTABLE(mysqld${MYSQLD_EXE_SUFFIX}
|
|
|
|
../sql-common/client.c derror.cc des_key_file.cc
|
2006-08-31 19:52:42 +02:00
|
|
|
discover.cc ../libmysql/errmsg.c field.cc field_conv.cc
|
|
|
|
filesort.cc gstream.cc ha_blackhole.cc
|
|
|
|
ha_archive.cc ha_heap.cc ha_myisam.cc ha_myisammrg.cc
|
CMakeLists.txt (several), make_win_bin_dist:
Aligned client library build and use with the Unix version when it
comes to what source to include directly in the builds, and what
libraries to link with (bug#30118).
Also reviewed, corrected and made more clear when static or dynamic
Thread Local Storage is to be used. Some code duplication was removed,
and some redundant library usage were removed, reducing the risk of
incorrect TLS usage.
client/CMakeLists.txt:
- Removed code duplication by moving build of "mysqlclient" to
the "libmysql" directory
- Link clients with the new "mysqlclient_notls", to protect for
the case the clients use more than the client API, and access
thread data directly.
- Synced explicit target addition of sources with Unix.
dbug/CMakeLists.txt:
No need to set CXX flags, no C++ code
libmysql/CMakeLists.txt:
- Aligned more with Unix version when it comes to included source files
- Build both DLL and static library in this directory
- Produce separe static TLS version of the static client library, for
use when building clients in this build that might access TLS
storage directly.
mysys/CMakeLists.txt:
We only have to build the static TLS version, as no clients are
linking directly with the "mysys" library.
scripts/make_win_bin_dist:
Ajusted paths to new "mysqlclient.lib" location in source tree
sql/CMakeLists.txt:
Removed duplicate "ha_blackhole.cc" in file listing
Removed explicit link to "dbug.lib" not needed
Link with the static TLS "mysqlclient_notls"
tests/CMakeLists.txt:
Removed explicit link to "dbug", "mysys", "yassl", "taocrypt" and
"zlib" not needed.
Added explicit source addition "../mysys/my_memmem.c".
No need for setting CXX flags, no C++ code.
Use the static TLS "mysqlclient_notls" for linkage.
zlib/CMakeLists.txt:
No need for a dynamic TLS version of this library, no access to thread
storage is done from it. Also no need to define MYSQL_CLIENT, not used,
or __WIN32__ that is handled by the library header without this define.
2007-08-02 12:49:27 +02:00
|
|
|
ha_innodb.cc ha_federated.cc ha_berkeley.cc
|
2006-08-31 19:52:42 +02:00
|
|
|
handler.cc hash_filo.cc hash_filo.h
|
|
|
|
hostname.cc init.cc item.cc item_buff.cc item_cmpfunc.cc
|
|
|
|
item_create.cc item_func.cc item_geofunc.cc item_row.cc
|
|
|
|
item_strfunc.cc item_subselect.cc item_sum.cc item_timefunc.cc
|
|
|
|
item_uniq.cc key.cc log.cc lock.cc log_event.cc message.rc
|
|
|
|
message.h mf_iocache.cc my_decimal.cc ../sql-common/my_time.c
|
|
|
|
../myisammrg/myrg_rnext_same.c mysqld.cc net_serv.cc
|
|
|
|
nt_servc.cc nt_servc.h opt_range.cc opt_range.h opt_sum.cc
|
|
|
|
../sql-common/pack.c parse_file.cc password.c procedure.cc
|
|
|
|
protocol.cc records.cc repl_failsafe.cc set_var.cc
|
|
|
|
slave.cc sp.cc sp_cache.cc sp_head.cc sp_pcontext.cc
|
|
|
|
sp_rcontext.cc spatial.cc sql_acl.cc sql_analyse.cc sql_base.cc
|
|
|
|
sql_cache.cc sql_class.cc sql_client.cc sql_crypt.cc sql_crypt.h
|
|
|
|
sql_cursor.cc sql_db.cc sql_delete.cc sql_derived.cc sql_do.cc
|
|
|
|
sql_error.cc sql_handler.cc sql_help.cc sql_insert.cc sql_lex.cc
|
|
|
|
sql_list.cc sql_load.cc sql_manager.cc sql_map.cc sql_parse.cc
|
|
|
|
sql_prepare.cc sql_rename.cc
|
|
|
|
sql_repl.cc sql_select.cc sql_show.cc sql_state.c sql_string.cc
|
|
|
|
sql_table.cc sql_test.cc sql_trigger.cc sql_udf.cc sql_union.cc
|
|
|
|
sql_update.cc sql_view.cc strfunc.cc table.cc thr_malloc.cc
|
|
|
|
time.cc tztime.cc uniques.cc unireg.cc
|
|
|
|
../sql-common/my_user.c
|
|
|
|
sql_locale.cc
|
|
|
|
${PROJECT_SOURCE_DIR}/sql/sql_yacc.cc
|
|
|
|
${PROJECT_SOURCE_DIR}/sql/sql_yacc.h
|
|
|
|
${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/lex_hash.h)
|
|
|
|
|
2007-07-18 15:42:36 +02:00
|
|
|
TARGET_LINK_LIBRARIES(mysqld${MYSQLD_EXE_SUFFIX}
|
2007-08-03 21:51:37 +02:00
|
|
|
heap myisam myisammrg mysys yassl zlib debug dbug yassl
|
2006-08-31 19:52:42 +02:00
|
|
|
taocrypt strings vio regex wsock32)
|
|
|
|
|
2007-04-23 15:41:24 -04:00
|
|
|
IF(EMBED_MANIFESTS)
|
2007-05-15 10:30:11 -04:00
|
|
|
MYSQL_EMBED_MANIFEST("mysqld" "asInvoker")
|
2007-04-23 15:41:24 -04:00
|
|
|
ENDIF(EMBED_MANIFESTS)
|
|
|
|
|
2006-08-31 19:52:42 +02:00
|
|
|
IF(WITH_EXAMPLE_STORAGE_ENGINE)
|
2007-07-18 15:42:36 +02:00
|
|
|
TARGET_LINK_LIBRARIES(mysqld${MYSQLD_EXE_SUFFIX} example)
|
2006-08-31 19:52:42 +02:00
|
|
|
ENDIF(WITH_EXAMPLE_STORAGE_ENGINE)
|
|
|
|
|
|
|
|
IF(WITH_INNOBASE_STORAGE_ENGINE)
|
2007-07-18 15:42:36 +02:00
|
|
|
TARGET_LINK_LIBRARIES(mysqld${MYSQLD_EXE_SUFFIX} innobase)
|
2006-08-31 19:52:42 +02:00
|
|
|
ENDIF(WITH_INNOBASE_STORAGE_ENGINE)
|
|
|
|
|
|
|
|
IF(WITH_BERKELEY_STORAGE_ENGINE)
|
2007-07-18 15:42:36 +02:00
|
|
|
TARGET_LINK_LIBRARIES(mysqld${MYSQLD_EXE_SUFFIX} bdb)
|
2006-08-31 19:52:42 +02:00
|
|
|
ENDIF(WITH_BERKELEY_STORAGE_ENGINE)
|
|
|
|
|
|
|
|
|
2007-07-18 15:42:36 +02:00
|
|
|
ADD_DEPENDENCIES(mysqld${MYSQLD_EXE_SUFFIX} GenError)
|
2006-08-31 19:52:42 +02:00
|
|
|
|
|
|
|
# Sql Parser custom command
|
|
|
|
ADD_CUSTOM_COMMAND(
|
|
|
|
SOURCE ${PROJECT_SOURCE_DIR}/sql/sql_yacc.yy
|
|
|
|
OUTPUT ${PROJECT_SOURCE_DIR}/sql/sql_yacc.cc
|
|
|
|
COMMAND bison.exe ARGS -y -p MYSQL --defines=sql_yacc.h
|
|
|
|
--output=sql_yacc.cc sql_yacc.yy
|
|
|
|
DEPENDS ${PROJECT_SOURCE_DIR}/sql/sql_yacc.yy)
|
|
|
|
|
|
|
|
ADD_CUSTOM_COMMAND(
|
|
|
|
OUTPUT ${PROJECT_SOURCE_DIR}/sql/sql_yacc.h
|
|
|
|
COMMAND echo
|
|
|
|
DEPENDS ${PROJECT_SOURCE_DIR}/sql/sql_yacc.cc
|
|
|
|
)
|
|
|
|
|
|
|
|
# Windows message file
|
|
|
|
ADD_CUSTOM_COMMAND(
|
|
|
|
SOURCE ${PROJECT_SOURCE_DIR}/sql/message.mc
|
|
|
|
OUTPUT message.rc message.h
|
|
|
|
COMMAND mc ARGS ${PROJECT_SOURCE_DIR}/sql/message.mc
|
|
|
|
DEPENDS ${PROJECT_SOURCE_DIR}/sql/message.mc)
|
|
|
|
|
|
|
|
# Gen_lex_hash
|
CMakeLists.txt (several), make_win_bin_dist:
Aligned client library build and use with the Unix version when it
comes to what source to include directly in the builds, and what
libraries to link with (bug#30118).
Also reviewed, corrected and made more clear when static or dynamic
Thread Local Storage is to be used. Some code duplication was removed,
and some redundant library usage were removed, reducing the risk of
incorrect TLS usage.
client/CMakeLists.txt:
- Removed code duplication by moving build of "mysqlclient" to
the "libmysql" directory
- Link clients with the new "mysqlclient_notls", to protect for
the case the clients use more than the client API, and access
thread data directly.
- Synced explicit target addition of sources with Unix.
dbug/CMakeLists.txt:
No need to set CXX flags, no C++ code
libmysql/CMakeLists.txt:
- Aligned more with Unix version when it comes to included source files
- Build both DLL and static library in this directory
- Produce separe static TLS version of the static client library, for
use when building clients in this build that might access TLS
storage directly.
mysys/CMakeLists.txt:
We only have to build the static TLS version, as no clients are
linking directly with the "mysys" library.
scripts/make_win_bin_dist:
Ajusted paths to new "mysqlclient.lib" location in source tree
sql/CMakeLists.txt:
Removed duplicate "ha_blackhole.cc" in file listing
Removed explicit link to "dbug.lib" not needed
Link with the static TLS "mysqlclient_notls"
tests/CMakeLists.txt:
Removed explicit link to "dbug", "mysys", "yassl", "taocrypt" and
"zlib" not needed.
Added explicit source addition "../mysys/my_memmem.c".
No need for setting CXX flags, no C++ code.
Use the static TLS "mysqlclient_notls" for linkage.
zlib/CMakeLists.txt:
No need for a dynamic TLS version of this library, no access to thread
storage is done from it. Also no need to define MYSQL_CLIENT, not used,
or __WIN32__ that is handled by the library header without this define.
2007-08-02 12:49:27 +02:00
|
|
|
# About "mysqlclient_notls", see note in "client/CMakeLists.txt"
|
2006-08-31 19:52:42 +02:00
|
|
|
ADD_EXECUTABLE(gen_lex_hash gen_lex_hash.cc)
|
CMakeLists.txt (several), make_win_bin_dist:
Aligned client library build and use with the Unix version when it
comes to what source to include directly in the builds, and what
libraries to link with (bug#30118).
Also reviewed, corrected and made more clear when static or dynamic
Thread Local Storage is to be used. Some code duplication was removed,
and some redundant library usage were removed, reducing the risk of
incorrect TLS usage.
client/CMakeLists.txt:
- Removed code duplication by moving build of "mysqlclient" to
the "libmysql" directory
- Link clients with the new "mysqlclient_notls", to protect for
the case the clients use more than the client API, and access
thread data directly.
- Synced explicit target addition of sources with Unix.
dbug/CMakeLists.txt:
No need to set CXX flags, no C++ code
libmysql/CMakeLists.txt:
- Aligned more with Unix version when it comes to included source files
- Build both DLL and static library in this directory
- Produce separe static TLS version of the static client library, for
use when building clients in this build that might access TLS
storage directly.
mysys/CMakeLists.txt:
We only have to build the static TLS version, as no clients are
linking directly with the "mysys" library.
scripts/make_win_bin_dist:
Ajusted paths to new "mysqlclient.lib" location in source tree
sql/CMakeLists.txt:
Removed duplicate "ha_blackhole.cc" in file listing
Removed explicit link to "dbug.lib" not needed
Link with the static TLS "mysqlclient_notls"
tests/CMakeLists.txt:
Removed explicit link to "dbug", "mysys", "yassl", "taocrypt" and
"zlib" not needed.
Added explicit source addition "../mysys/my_memmem.c".
No need for setting CXX flags, no C++ code.
Use the static TLS "mysqlclient_notls" for linkage.
zlib/CMakeLists.txt:
No need for a dynamic TLS version of this library, no access to thread
storage is done from it. Also no need to define MYSQL_CLIENT, not used,
or __WIN32__ that is handled by the library header without this define.
2007-08-02 12:49:27 +02:00
|
|
|
TARGET_LINK_LIBRARIES(gen_lex_hash mysqlclient_notls wsock32)
|
2006-08-31 19:52:42 +02:00
|
|
|
GET_TARGET_PROPERTY(GEN_LEX_HASH_EXE gen_lex_hash LOCATION)
|
|
|
|
ADD_CUSTOM_COMMAND(
|
|
|
|
OUTPUT ${PROJECT_SOURCE_DIR}/sql/lex_hash.h
|
|
|
|
COMMAND ${GEN_LEX_HASH_EXE} ARGS > lex_hash.h
|
|
|
|
DEPENDS ${GEN_LEX_HASH_EXE}
|
|
|
|
)
|
2007-07-18 15:42:36 +02:00
|
|
|
ADD_DEPENDENCIES(mysqld${MYSQLD_EXE_SUFFIX} gen_lex_hash)
|
2006-09-22 14:42:43 +02:00
|
|
|
|
2007-07-27 11:54:54 -04:00
|
|
|
# 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")
|
|
|
|
|
2006-09-22 14:42:43 +02:00
|
|
|
ADD_LIBRARY(udf_example MODULE udf_example.c udf_example.def)
|
|
|
|
ADD_DEPENDENCIES(udf_example strings)
|
2007-08-29 22:29:07 +02:00
|
|
|
TARGET_LINK_LIBRARIES(udf_example strings wsock32)
|