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.
This commit is contained in:
unknown 2007-08-02 12:49:27 +02:00
commit def8d6b363
8 changed files with 79 additions and 132 deletions

View file

@ -51,7 +51,7 @@ ADD_EXECUTABLE(mysqld${MYSQLD_EXE_SUFFIX}
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
ha_innodb.cc ha_federated.cc ha_berkeley.cc ha_blackhole.cc
ha_innodb.cc ha_federated.cc ha_berkeley.cc
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
@ -128,8 +128,9 @@ ADD_CUSTOM_COMMAND(
DEPENDS ${PROJECT_SOURCE_DIR}/sql/message.mc)
# Gen_lex_hash
# About "mysqlclient_notls", see note in "client/CMakeLists.txt"
ADD_EXECUTABLE(gen_lex_hash gen_lex_hash.cc)
TARGET_LINK_LIBRARIES(gen_lex_hash dbug mysqlclient wsock32)
TARGET_LINK_LIBRARIES(gen_lex_hash mysqlclient_notls wsock32)
GET_TARGET_PROPERTY(GEN_LEX_HASH_EXE gen_lex_hash LOCATION)
ADD_CUSTOM_COMMAND(
OUTPUT ${PROJECT_SOURCE_DIR}/sql/lex_hash.h