diff options
Diffstat (limited to 'cmake/galera_external.cmake')
-rw-r--r-- | cmake/galera_external.cmake | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/cmake/galera_external.cmake b/cmake/galera_external.cmake new file mode 100644 index 00000000000..27fc17b166b --- /dev/null +++ b/cmake/galera_external.cmake @@ -0,0 +1,62 @@ +# EXT_GALERA_PATH +# a path to built galera git tree +# or a path to unpacked binary tarball + +IF(NOT EXT_GALERA_PATH) + RETURN() +ENDIF() + +IF(NOT EXISTS ${EXT_GALERA_PATH}) + MESSAGE(FATAL_ERROR "Galera dir ${EXT_GALERA_PATH} does not exist!") +ENDIF() + +SET(GALERA_PATH ${CMAKE_SOURCE_DIR}/GALERASYM) +IF(EXISTS ${GALERA_PATH}) + FILE(REMOVE ${GALERA_PATH}) +ENDIF() +EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink ${EXT_GALERA_PATH} ${GALERA_PATH}) + +FIND_LIBRARY(GALERA_LIB + NAMES galera_smm galera_enterprise_smm + PATHS ${GALERA_PATH} + NO_DEFAULT_PATH + PATH_SUFFIXES lib/galera + ) + +FIND_PROGRAM(GARBD + NAME garbd + PATHS ${GALERA_PATH} + NO_DEFAULT_PATH + PATH_SUFFIXES garb bin + ) + +IF(NOT GALERA_LIB) + MESSAGE(FATAL_ERROR "Galera library not found in ${GALERA_PATH}") +ENDIF() + +INSTALL(FILES + ${GALERA_LIB} + DESTINATION lib/galera + COMPONENT Server + ) + +GET_FILENAME_COMPONENT(LIBNAME ${GALERA_LIB} NAME) +INSTALL(CODE "EXECUTE_PROCESS(COMMAND + ${CMAKE_COMMAND} -E create_symlink + galera/${LIBNAME} libgalera_smm.so + )" + COMPONENT Server + ) + +INSTALL(FILES + libgalera_smm.so + DESTINATION lib + COMPONENT Server + ) + +INSTALL(PROGRAMS + ${GARBD} + DESTINATION bin + COMPONENT Server + ) + |