summaryrefslogtreecommitdiff
path: root/storage/xtradb/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'storage/xtradb/CMakeLists.txt')
-rw-r--r--storage/xtradb/CMakeLists.txt530
1 files changed, 0 insertions, 530 deletions
diff --git a/storage/xtradb/CMakeLists.txt b/storage/xtradb/CMakeLists.txt
deleted file mode 100644
index bed5946541c..00000000000
--- a/storage/xtradb/CMakeLists.txt
+++ /dev/null
@@ -1,530 +0,0 @@
-# Copyright (c) 2006, 2017, Oracle and/or its affiliates. All rights reserved.
-#
-# 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-1335 USA
-
-# This is the CMakeLists for XtraDB
-RETURN() # until upgraded to 5.7 XtraDB doesn't compile at all
-
-INCLUDE(CheckFunctionExists)
-INCLUDE(CheckCSourceCompiles)
-INCLUDE(CheckCSourceRuns)
-INCLUDE(lz4)
-INCLUDE(lzo)
-INCLUDE(lzma)
-INCLUDE(bzip2)
-INCLUDE(snappy)
-INCLUDE(numa)
-
-MYSQL_CHECK_LZ4()
-MYSQL_CHECK_LZO()
-MYSQL_CHECK_LZMA()
-MYSQL_CHECK_BZIP2()
-MYSQL_CHECK_SNAPPY()
-MYSQL_CHECK_NUMA()
-
-IF(CMAKE_CROSSCOMPILING)
- # Use CHECK_C_SOURCE_COMPILES instead of CHECK_C_SOURCE_RUNS when
- # cross-compiling. Not as precise, but usually good enough.
- # This only make sense for atomic tests in this file, this trick doesn't
- # work in a general case.
- MACRO(CHECK_C_SOURCE SOURCE VAR)
- CHECK_C_SOURCE_COMPILES("${SOURCE}" "${VAR}")
- ENDMACRO()
-ELSE()
- MACRO(CHECK_C_SOURCE SOURCE VAR)
- CHECK_C_SOURCE_RUNS("${SOURCE}" "${VAR}")
- ENDMACRO()
-ENDIF()
-
-# OS tests
-IF(UNIX)
-
- IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
- CHECK_INCLUDE_FILES (libaio.h HAVE_LIBAIO_H)
- IF (XTRADB_PREFER_STATIC_LIBAIO)
- SET(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
- ENDIF()
- FIND_LIBRARY(AIO_LIBRARY aio)
- MARK_AS_ADVANCED(AIO_LIBRARY)
- IF(AIO_LIBRARY)
- CHECK_LIBRARY_EXISTS(${AIO_LIBRARY} io_queue_init "" HAVE_LIBAIO)
- IF(HAVE_LIBAIO AND HAVE_LIBAIO_H)
- ADD_DEFINITIONS(-DLINUX_NATIVE_AIO=1)
- ENDIF()
- LINK_LIBRARIES(${AIO_LIBRARY})
- ENDIF()
- ADD_DEFINITIONS("-DUNIV_LINUX -D_GNU_SOURCE=1")
- ELSEIF(CMAKE_SYSTEM_NAME MATCHES "HP*")
- ADD_DEFINITIONS("-DUNIV_HPUX")
- ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "AIX")
- ADD_DEFINITIONS("-DUNIV_AIX")
- ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
- ADD_DEFINITIONS("-DUNIV_SOLARIS")
- ENDIF()
-ENDIF()
-
-IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
-# After: WL#5825 Using C++ Standard Library with MySQL code
-# we no longer use -fno-exceptions
-# SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions")
-ENDIF()
-
-# Enable InnoDB's UNIV_DEBUG and UNIV_SYNC_DEBUG in debug builds
-SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DUNIV_DEBUG -DUNIV_SYNC_DEBUG")
-
-# Add -Wconversion if compiling with GCC
-## As of Mar 15 2011 this flag causes 3573+ warnings. If you are reading this
-## please fix them and enable the following code:
-#IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
-#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wconversion")
-#ENDIF()
-
-CHECK_FUNCTION_EXISTS(sched_getcpu HAVE_SCHED_GETCPU)
-IF(HAVE_SCHED_GETCPU)
- ADD_DEFINITIONS(-DHAVE_SCHED_GETCPU)
-ENDIF()
-
-MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-class-memaccess")
-
-IF(NOT MSVC)
-
- # either define HAVE_IB_GCC_ATOMIC_BUILTINS or not
- # workaround for old gcc on x86, gcc atomic ops only work under -march=i686
- IF(CMAKE_SYSTEM_PROCESSOR STREQUAL "i686" AND CMAKE_COMPILER_IS_GNUCC AND
- CMAKE_C_COMPILER_VERSION VERSION_LESS "4.4.0")
- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=i686")
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=i686")
- ENDIF()
- CHECK_C_SOURCE(
- "
- int main()
- {
- long x;
- long y;
- long res;
-
- x = 10;
- y = 123;
- res = __sync_bool_compare_and_swap(&x, x, y);
- if (!res || x != y) {
- return(1);
- }
-
- x = 10;
- y = 123;
- res = __sync_bool_compare_and_swap(&x, x + 1, y);
- if (res || x != 10) {
- return(1);
- }
- x = 10;
- y = 123;
- res = __sync_add_and_fetch(&x, y);
- if (res != 123 + 10 || x != 123 + 10) {
- return(1);
- }
- return(0);
- }"
- HAVE_IB_GCC_ATOMIC_BUILTINS
- )
- CHECK_C_SOURCE(
- "
- int main()
- {
- long res;
- char c;
-
- c = 10;
- res = __sync_lock_test_and_set(&c, 123);
- if (res != 10 || c != 123) {
- return(1);
- }
- return(0);
- }"
- HAVE_IB_GCC_ATOMIC_BUILTINS_BYTE
- )
- CHECK_C_SOURCE(
- "#include<stdint.h>
- int main()
- {
- int64_t x,y,res;
-
- x = 10;
- y = 123;
- res = __sync_sub_and_fetch(&y, x);
- if (res != y || y != 113) {
- return(1);
- }
- res = __sync_add_and_fetch(&y, x);
- if (res != y || y != 123) {
- return(1);
- }
- return(0);
- }"
- HAVE_IB_GCC_ATOMIC_BUILTINS_64
- )
- CHECK_C_SOURCE(
- "#include<stdint.h>
- int main()
- {
- __sync_synchronize();
- return(0);
- }"
- HAVE_IB_GCC_SYNC_SYNCHRONISE
- )
- CHECK_C_SOURCE(
- "#include<stdint.h>
- int main()
- {
- __atomic_thread_fence(__ATOMIC_ACQUIRE);
- __atomic_thread_fence(__ATOMIC_RELEASE);
- return(0);
- }"
- HAVE_IB_GCC_ATOMIC_THREAD_FENCE
- )
- CHECK_C_SOURCE(
- "#include<stdint.h>
- int main()
- {
- unsigned char c;
-
- __atomic_test_and_set(&c, __ATOMIC_ACQUIRE);
- __atomic_clear(&c, __ATOMIC_RELEASE);
- return(0);
- }"
- HAVE_IB_GCC_ATOMIC_TEST_AND_SET
- )
-
-IF(HAVE_IB_GCC_ATOMIC_BUILTINS)
- ADD_DEFINITIONS(-DHAVE_IB_GCC_ATOMIC_BUILTINS=1)
- SET(XTRADB_OK 1)
-ENDIF()
-
-IF(HAVE_IB_GCC_ATOMIC_BUILTINS_BYTE)
- ADD_DEFINITIONS(-DHAVE_IB_GCC_ATOMIC_BUILTINS_BYTE=1)
-ENDIF()
-
-IF(HAVE_IB_GCC_ATOMIC_BUILTINS_64)
- ADD_DEFINITIONS(-DHAVE_IB_GCC_ATOMIC_BUILTINS_64=1)
-ENDIF()
-
-IF(HAVE_IB_GCC_SYNC_SYNCHRONISE)
- ADD_DEFINITIONS(-DHAVE_IB_GCC_SYNC_SYNCHRONISE=1)
-ENDIF()
-
-IF(HAVE_IB_GCC_ATOMIC_THREAD_FENCE)
- ADD_DEFINITIONS(-DHAVE_IB_GCC_ATOMIC_THREAD_FENCE=1)
-ENDIF()
-
-IF(HAVE_IB_GCC_ATOMIC_TEST_AND_SET)
- ADD_DEFINITIONS(-DHAVE_IB_GCC_ATOMIC_TEST_AND_SET=1)
-ENDIF()
-
-# either define HAVE_IB_ATOMIC_PTHREAD_T_GCC or not
-CHECK_C_SOURCE(
-"
-#include <pthread.h>
-#include <string.h>
-
-int main() {
- pthread_t x1;
- pthread_t x2;
- pthread_t x3;
-
- memset(&x1, 0x0, sizeof(x1));
- memset(&x2, 0x0, sizeof(x2));
- memset(&x3, 0x0, sizeof(x3));
-
- __sync_bool_compare_and_swap(&x1, x2, x3);
-
- return(0);
-}"
-HAVE_IB_ATOMIC_PTHREAD_T_GCC)
-
-IF(HAVE_IB_ATOMIC_PTHREAD_T_GCC)
- ADD_DEFINITIONS(-DHAVE_IB_ATOMIC_PTHREAD_T_GCC=1)
-ENDIF()
-
-CHECK_CXX_SOURCE_COMPILES("struct t1{ int a; char *b; }; struct t1 c= { .a=1, .b=0 }; main() { }" HAVE_C99_INITIALIZERS)
-IF(HAVE_C99_INITIALIZERS)
- ADD_DEFINITIONS(-DHAVE_C99_INITIALIZERS)
-ENDIF()
-
-ENDIF(NOT MSVC)
-
-CHECK_FUNCTION_EXISTS(vasprintf HAVE_VASPRINTF)
-
-# Solaris atomics
-IF(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
- CHECK_FUNCTION_EXISTS(atomic_cas_ulong HAVE_ATOMIC_CAS_ULONG)
- CHECK_FUNCTION_EXISTS(atomic_cas_32 HAVE_ATOMIC_CAS_32)
- CHECK_FUNCTION_EXISTS(atomic_cas_64 HAVE_ATOMIC_CAS_64)
- CHECK_FUNCTION_EXISTS(atomic_add_long_nv HAVE_ATOMIC_ADD_LONG_NV)
- CHECK_FUNCTION_EXISTS(atomic_swap_uchar HAVE_ATOMIC_SWAP_UCHAR)
- IF(HAVE_ATOMIC_CAS_ULONG AND
- HAVE_ATOMIC_CAS_32 AND
- HAVE_ATOMIC_CAS_64 AND
- HAVE_ATOMIC_ADD_LONG_NV AND
- HAVE_ATOMIC_SWAP_UCHAR)
- SET(HAVE_IB_SOLARIS_ATOMICS 1)
- ENDIF()
-
- IF(HAVE_IB_SOLARIS_ATOMICS)
- ADD_DEFINITIONS(-DHAVE_IB_SOLARIS_ATOMICS=1)
- SET(XTRADB_OK 1)
- ENDIF()
-
- # either define HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS or not
- CHECK_C_SOURCE_COMPILES(
- " #include <pthread.h>
- #include <string.h>
-
- int main(int argc, char** argv) {
- pthread_t x1;
- pthread_t x2;
- pthread_t x3;
-
- memset(&x1, 0x0, sizeof(x1));
- memset(&x2, 0x0, sizeof(x2));
- memset(&x3, 0x0, sizeof(x3));
-
- if (sizeof(pthread_t) == 4) {
-
- atomic_cas_32(&x1, x2, x3);
-
- } else if (sizeof(pthread_t) == 8) {
-
- atomic_cas_64(&x1, x2, x3);
-
- } else {
-
- return(1);
- }
-
- return(0);
- }
- " HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS)
- CHECK_C_SOURCE_COMPILES(
- "#include <mbarrier.h>
- int main() {
- __machine_r_barrier();
- __machine_w_barrier();
- return(0);
- }"
- HAVE_IB_MACHINE_BARRIER_SOLARIS)
-
- IF(HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS)
- ADD_DEFINITIONS(-DHAVE_IB_ATOMIC_PTHREAD_T_SOLARIS=1)
- ENDIF()
- IF(HAVE_IB_MACHINE_BARRIER_SOLARIS)
- ADD_DEFINITIONS(-DHAVE_IB_MACHINE_BARRIER_SOLARIS=1)
- ENDIF()
-ENDIF()
-
-
-IF(UNIX)
-# this is needed to know which one of atomic_cas_32() or atomic_cas_64()
-# to use in the source
-SET(CMAKE_EXTRA_INCLUDE_FILES pthread.h)
-CHECK_TYPE_SIZE(pthread_t SIZEOF_PTHREAD_T)
-SET(CMAKE_EXTRA_INCLUDE_FILES)
-ENDIF()
-
-IF(SIZEOF_PTHREAD_T)
- ADD_DEFINITIONS(-DSIZEOF_PTHREAD_T=${SIZEOF_PTHREAD_T})
-ENDIF()
-
-IF(MSVC)
- ADD_DEFINITIONS(-DHAVE_WINDOWS_ATOMICS)
- ADD_DEFINITIONS(-DHAVE_WINDOWS_MM_FENCE)
- SET(XTRADB_OK 1)
-ENDIF()
-
-
-# Include directories under xtradb
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/storage/xtradb/include
- ${CMAKE_SOURCE_DIR}/storage/xtradb/handler)
-
-# Sun Studio bug with -xO2
-IF(CMAKE_CXX_COMPILER_ID MATCHES "SunPro"
- AND CMAKE_CXX_FLAGS_RELEASE MATCHES "O2"
- AND NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
- # Sun Studio 12 crashes with -xO2 flag, but not with higher optimization
- # -xO3
- SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/rem/rem0rec.cc
- PROPERTIES COMPILE_FLAGS -xO3)
-ENDIF()
-
-# Removing compiler optimizations for innodb/mem/* files on 64-bit Windows
-# due to 64-bit compiler error, See MySQL Bug #19424, #36366, #34297
-IF (MSVC AND CMAKE_SIZEOF_VOID_P EQUAL 8)
- SET_SOURCE_FILES_PROPERTIES(mem/mem0mem.cc mem/mem0pool.cc
- PROPERTIES COMPILE_FLAGS -Od)
-ENDIF()
-
-SET(INNOBASE_SOURCES
- api/api0api.cc
- api/api0misc.cc
- btr/btr0btr.cc
- btr/btr0cur.cc
- btr/btr0pcur.cc
- btr/btr0scrub.cc
- btr/btr0sea.cc
- btr/btr0defragment.cc
- buf/buf0buddy.cc
- buf/buf0buf.cc
- buf/buf0dblwr.cc
- buf/buf0checksum.cc
- buf/buf0dump.cc
- buf/buf0flu.cc
- buf/buf0lru.cc
- buf/buf0rea.cc
- buf/buf0mtflu.cc
- data/data0data.cc
- data/data0type.cc
- dict/dict0boot.cc
- dict/dict0crea.cc
- dict/dict0dict.cc
- dict/dict0load.cc
- dict/dict0mem.cc
- dict/dict0stats.cc
- dict/dict0stats_bg.cc
- dyn/dyn0dyn.cc
- eval/eval0eval.cc
- eval/eval0proc.cc
- fil/fil0fil.cc
- fil/fil0pagecompress.cc
- fil/fil0crypt.cc
- fsp/fsp0fsp.cc
- fut/fut0fut.cc
- fut/fut0lst.cc
- ha/ha0ha.cc
- ha/ha0storage.cc
- ha/hash0hash.cc
- fts/fts0fts.cc
- fts/fts0ast.cc
- fts/fts0blex.cc
- fts/fts0config.cc
- fts/fts0opt.cc
- fts/fts0pars.cc
- fts/fts0que.cc
- fts/fts0sql.cc
- fts/fts0tlex.cc
- handler/ha_innodb.cc
- handler/handler0alter.cc
- handler/i_s.cc
- handler/xtradb_i_s.cc
- ibuf/ibuf0ibuf.cc
- lock/lock0iter.cc
- lock/lock0lock.cc
- lock/lock0wait.cc
- log/log0log.cc
- log/log0online.cc
- log/log0recv.cc
- log/log0crypt.cc
- mach/mach0data.cc
- mem/mem0mem.cc
- mem/mem0pool.cc
- mtr/mtr0log.cc
- mtr/mtr0mtr.cc
- os/os0file.cc
- os/os0proc.cc
- os/os0sync.cc
- os/os0thread.cc
- os/os0stacktrace.cc
- page/page0cur.cc
- page/page0page.cc
- page/page0zip.cc
- pars/lexyy.cc
- pars/pars0grm.cc
- pars/pars0opt.cc
- pars/pars0pars.cc
- pars/pars0sym.cc
- que/que0que.cc
- read/read0read.cc
- rem/rem0cmp.cc
- rem/rem0rec.cc
- row/row0ext.cc
- row/row0ftsort.cc
- row/row0import.cc
- row/row0ins.cc
- row/row0merge.cc
- row/row0mysql.cc
- row/row0log.cc
- row/row0purge.cc
- row/row0row.cc
- row/row0sel.cc
- row/row0uins.cc
- row/row0umod.cc
- row/row0undo.cc
- row/row0upd.cc
- row/row0quiesce.cc
- row/row0vers.cc
- srv/srv0conc.cc
- srv/srv0mon.cc
- srv/srv0srv.cc
- srv/srv0start.cc
- sync/sync0arr.cc
- sync/sync0rw.cc
- sync/sync0sync.cc
- trx/trx0i_s.cc
- trx/trx0purge.cc
- trx/trx0rec.cc
- trx/trx0roll.cc
- trx/trx0rseg.cc
- trx/trx0sys.cc
- trx/trx0trx.cc
- trx/trx0undo.cc
- usr/usr0sess.cc
- ut/ut0bh.cc
- ut/ut0byte.cc
- ut/ut0crc32.cc
- ut/ut0dbg.cc
- ut/ut0list.cc
- ut/ut0mem.cc
- ut/ut0rbt.cc
- ut/ut0rnd.cc
- ut/ut0ut.cc
- ut/ut0vec.cc
- ut/ut0wqueue.cc)
-
-IF(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64le")
- enable_language(ASM)
- LIST(APPEND INNOBASE_SOURCES
- ut/crc32_power8/crc32.S
- ut/crc32_power8/crc32_wrapper.c
- )
-ENDIF()
-
-UNSET(NUMA_LIBRARY)
-IF(HAVE_LIBNUMA)
- SET(NUMA_LIBRARY "numa")
-ENDIF()
-
-MYSQL_ADD_PLUGIN(xtradb ${INNOBASE_SOURCES} STORAGE_ENGINE
- DEFAULT
- RECOMPILE_FOR_EMBEDDED
- LINK_LIBRARIES
- ${ZLIB_LIBRARY}
- ${CRC32_VPMSUM_LIBRARY}
- ${NUMA_LIBRARY}
- ${LINKER_SCRIPT})
-
-IF(TARGET xtradb)
- IF(NOT XTRADB_OK)
- MESSAGE(FATAL_ERROR "Percona XtraDB is not supported on this platform")
- ENDIF()
- ADD_DEPENDENCIES(xtradb GenError)
-ENDIF()
-
-ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/extra/mariabackup ${CMAKE_BINARY_DIR}/extra/mariabackup)