summaryrefslogtreecommitdiffstats
path: root/cmake/wsrep.cmake
blob: 368ae61d1d3e32c93890a4b453ccc8c0169750c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# Copyright (c) 2011, Codership Oy <info@codership.com>.
# Copyright (c) 2013, Monty Program 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-1335  USA 

#
# Galera library does not compile with windows
#
IF (NOT WITHOUT_SERVER)
IF(UNIX)
  SET(with_wsrep_default ON)
ELSE()
  SET(with_wsrep_default OFF)
ENDIF()

OPTION(WITH_WSREP "WSREP replication API (to use, e.g. Galera Replication library)" ${with_wsrep_default})
OPTION(WITH_WSREP_ALL
  "Build all components of WSREP (unit tests, sample programs)"
  OFF)

IF(WITH_WSREP)
  # Set the patch version
  SET(WSREP_PATCH_VERSION "22")

  IF(NOT EXISTS "${CMAKE_SOURCE_DIR}/wsrep-lib/wsrep-API/v26/wsrep_api.h")
    MESSAGE(FATAL_ERROR "No MariaDB wsrep-API code! Run
    ${GIT_EXECUTABLE} submodule update --init --recursive
Then restart the build.
")
  ENDIF()
  # Obtain wsrep API version
  FILE(STRINGS "${CMAKE_SOURCE_DIR}/wsrep-lib/wsrep-API/v26/wsrep_api.h" WSREP_API_VERSION
       LIMIT_COUNT 1 REGEX "WSREP_INTERFACE_VERSION")
  STRING(REGEX MATCH "([0-9]+)" WSREP_API_VERSION "${WSREP_API_VERSION}")

  SET(WSREP_VERSION "${WSREP_API_VERSION}.${WSREP_PATCH_VERSION}"
      CACHE INTERNAL "WSREP version")

  SET(WSREP_PROC_INFO ${WITH_WSREP})

  SET(WSREP_PATCH_VERSION "wsrep_${WSREP_VERSION}")
  if (NOT WITH_WSREP_ALL)
    SET(WSREP_LIB_WITH_UNIT_TESTS OFF CACHE BOOL
      "Disable unit tests for wsrep-lib")
    SET(WSREP_LIB_WITH_DBSIM OFF CACHE BOOL
      "Disable building dbsim for wsrep-lib")
  endif()
  INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/wsrep-lib/include)
  INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/wsrep-lib/wsrep-API/v26)

  SET(old_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})
  SET(BUILD_SHARED_LIBS OFF)
  ADD_SUBDIRECTORY(wsrep-lib)
  SET(BUILD_SHARED_LIBS ${old_BUILD_SHARED_LIBS})
ENDIF()
IF (NOT WIN32)
  ADD_FEATURE_INFO(WSREP WITH_WSREP "WSREP replication API (to use, e.g. Galera Replication library)")
ENDIF()
ENDIF(NOT WITHOUT_SERVER)