mxwcore-wotlk/deps/mysqllite/CMakeLists.txt

262 lines
11 KiB
CMake

# Copyright (C) 2006 MySQL AB
# Copyright (C)
#
# This file is free software; as a special exception the author gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# Include the platform-specific file.
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/os/Windows.cmake)
# Add macros
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/character_sets.cmake)
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/mysql_version.cmake)
# Advanced options (mostly useless, but usually still in config.h, so they need to be set...)
set(CYBOZU OFF)
set(BACKUP_TEST OFF)
set(ENABLED_LOCAL_INFILE ON)
set(WITH_FAST_MUTEXES OFF)
# Handle useful options - hardcode to ON/OFF
set(ENABLED_PROFILING OFF)
set_directory_properties(PROPERTIES COMPILE_DEFINITIONS $<$<CONFIG:Debug>:ENABLED_DEBUG_SYNC)
# Set DBUG_OFF and other optional release-only flags for non-debug project types
foreach(BUILD_TYPE RELEASE RELWITHDEBINFO MINSIZEREL)
set_directory_properties(PROPERTIES COMPILE_DEFINITIONS_<CONFIG> DBUG_OFF)
if(WITH_FAST_MUTEXES)
set_directory_properties(PROPERTIES COMPILE_DEFINITIONS_<CONFIG> "MY_PTHREAD_FASTMUTEX=1")
endif()
endforeach()
# Set commonly used variables
set(DEFAULT_MYSQL_HOME "C:/Program Files/MySQL/MySQL Server ${MYSQL_BASE_VERSION}" )
set(SHAREDIR share)
set(DEFAULT_BASEDIR "${DEFAULT_MYSQL_HOME}")
set(MYSQL_DATADIR "${DEFAULT_MYSQL_HOME}/data")
set(DEFAULT_CHARSET_HOME "${DEFAULT_MYSQL_HOME}")
set(PLUGINDIR "${DEFAULT_MYSQL_HOME}/lib/plugin")
set(COMPILATION_COMMENT "Source distribution lite for AzerothCore")
# Run platform tests
include(${CMAKE_CURRENT_SOURCE_DIR}/configure.cmake)
# Use system openssl.
add_definitions(-DHAVE_OPENSSL)
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_BINARY_DIR}
${OPENSSL_INCLUDE_DIR}
${CMAKE_SOURCE_DIR}/deps/zlib
${CMAKE_CURRENT_SOURCE_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}/include/internal
${CMAKE_CURRENT_SOURCE_DIR}/dbug
${CMAKE_CURRENT_SOURCE_DIR}/strings
${CMAKE_CURRENT_SOURCE_DIR}/mysys
${CMAKE_CURRENT_SOURCE_DIR}/libmysql
)
set(DBUG_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/dbug/dbug.c
)
set(STRINGS_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/strings/bchange.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/bmove_upp.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-big5.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-bin.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-cp932.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-czech.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-euc_kr.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-extra.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-gb2312.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-gbk.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-latin1.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-mb.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-simple.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-tis620.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-uca.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-ucs2.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-utf8.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-win1250ch.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/decimal.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/dtoa.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/int2str.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/is_prefix.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/llstr.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/longlong2str.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/my_strtoll10.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/my_vsnprintf.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/str2int.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/str_alloc.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/strcend.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/strend.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/strfill.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/strmake.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/strmov.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/strnmov.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/strxmov.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/strxnmov.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/xml.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/my_strchr.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/strcont.c
${CMAKE_CURRENT_SOURCE_DIR}/strings/strappend.c
)
if(NOT HAVE_STRNLEN)
# OSX does not have strnlen
set(STRINGS_SOURCES ${STRINGS_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/strings/strnlen.c)
endif()
set(VIO_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/vio/vio.c
${CMAKE_CURRENT_SOURCE_DIR}/vio/viosocket.c
${CMAKE_CURRENT_SOURCE_DIR}/vio/viossl.c
${CMAKE_CURRENT_SOURCE_DIR}/vio/viosslfactories.c
)
set(MYSYS_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/mysys/array.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/charset-def.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/charset.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/checksum.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/default.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/errors.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/hash.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/list.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/md5.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_cache.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_dirname.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_fn_ext.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_format.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_getdate.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_iocache.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_iocache2.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_keycache.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_keycaches.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_loadpath.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_pack.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_path.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_qsort.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_qsort2.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_radix.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_same.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_sort.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_soundex.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_arr_appstr.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_tempdir.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_tempfile.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_unixpath.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_wcomp.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/mulalloc.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_access.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_aes.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_alloc.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_bit.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_bitmap.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_chsize.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_compress.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_copy.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_create.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_delete.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_div.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_error.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_file.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_fopen.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_fstream.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_gethostbyname.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_gethwaddr.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_getopt.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_getsystime.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_getwd.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_handler.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_init.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_lib.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_lock.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_malloc.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_mess.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_mkdir.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_mmap.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_once.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_open.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_pread.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_pthread.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_quick.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_read.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_redel.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_rename.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_seek.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_sleep.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_static.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_symlink.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_symlink2.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_sync.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_thr_init.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_write.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/ptr_cmp.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/queues.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/stacktrace.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/rijndael.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/sha1.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/string.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/thr_alarm.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/thr_lock.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/thr_mutex.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/thr_rwlock.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/tree.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/typelib.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/base64.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_memmem.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_getpagesize.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/lf_alloc-pin.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/lf_dynarray.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/lf_hash.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_atomic.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_getncpus.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_rdtsc.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_winthread.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_wincond.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_winerr.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_winfile.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_windac.c
${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_conio.c
)
if(HAVE_ALARM)
set(MYSYS_SOURCES ${MYSYS_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_alarm.c)
endif()
if(HAVE_LARGE_PAGES)
set(MYSYS_SOURCES ${MYSYS_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_largepage.c)
endif()
if(HAVE_MLOCK)
set(MYSYS_SOURCES ${MYSYS_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_lockmem.c)
endif()
set(CLIENT_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/libmysql/get_password.c
${CMAKE_CURRENT_SOURCE_DIR}/libmysql/libmysql.c
${CMAKE_CURRENT_SOURCE_DIR}/libmysql/errmsg.c
${CMAKE_CURRENT_SOURCE_DIR}/sql-common/client.c
${CMAKE_CURRENT_SOURCE_DIR}/sql-common/my_time.c
${CMAKE_CURRENT_SOURCE_DIR}/sql-common/client_plugin.c
${CMAKE_CURRENT_SOURCE_DIR}/sql/net_serv.cc
${CMAKE_CURRENT_SOURCE_DIR}/sql-common/pack.c
${CMAKE_CURRENT_SOURCE_DIR}/sql/password.c
)
configure_file(config.h.cmake ${CMAKE_BINARY_DIR}/my_config.h)
configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/internal/mysql_version.h.in ${CMAKE_BINARY_DIR}/mysql_version.h)
add_version_info(libmysql CLIENT_SOURCES)
add_library(libmysql SHARED ${CLIENT_SOURCES} ${DBUG_SOURCES} ${MYSYS_SOURCES} ${STRINGS_SOURCES} ${VIO_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/libmysql/libmysql_exports.def)
target_link_libraries(libmysql zlib ${OPENSSL_LIBRARIES} ${OPENSSL_EXTRA_LIBRARIES} ws2_32)
install(TARGETS libmysql RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}")