262 lines
11 KiB
CMake
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}")
|