1# 2# Copyright (C) 2013-2016 MariaDB Corporation AB 3# 4# Redistribution and use is allowed according to the terms of the New 5# BSD license. 6# For details see the COPYING-CMAKE-SCRIPTS file. 7# 8 9# 10# This file contains settings for the following layouts: 11# 12# - RPM 13# Built with default prefix=/usr 14# 15# 16# The following va+riables are used and can be overwritten 17# 18# INSTALL_LAYOUT installation layout (DEFAULT = standard for tar.gz and zip packages 19# RPM packages 20# 21# INSTALL_BINDIR location of binaries (mariadb_config) 22# INSTALL_LIBDIR location of libraries 23# INSTALL_PLUGINDIR location of plugins 24 25IF(NOT INSTALL_LAYOUT) 26 SET(INSTALL_LAYOUT "DEFAULT") 27ENDIF() 28 29SET(INSTALL_LAYOUT ${INSTALL_LAYOUT} CACHE 30 STRING "Installation layout. Currently supported options are DEFAULT (tar.gz and zip), RPM and DEB") 31 32# On Windows we only provide zip and .msi. Latter one uses a different packager. 33IF(UNIX) 34 IF(INSTALL_LAYOUT MATCHES "RPM") 35 SET(libmariadb_prefix "/usr") 36 ELSEIF(INSTALL_LAYOUT MATCHES "DEFAULT|DEB") 37 SET(libmariadb_prefix ${CMAKE_INSTALL_PREFIX}) 38 ENDIF() 39ENDIF() 40 41IF(CMAKE_DEFAULT_PREFIX_INITIALIZED_BY_DEFAULT) 42 SET(CMAKE_DEFAULT_PREFIX ${libmariadb_prefix} CACHE PATH "Installation prefix" FORCE) 43ENDIF() 44 45# check if the specified installation layout is valid 46SET(VALID_INSTALL_LAYOUTS "DEFAULT" "RPM" "DEB") 47LIST(FIND VALID_INSTALL_LAYOUTS "${INSTALL_LAYOUT}" layout_no) 48IF(layout_no EQUAL -1) 49 MESSAGE(FATAL_ERROR "Invalid installation layout ${INSTALL_LAYOUT}. Please specify one of the following layouts: ${VALID_INSTALL_LAYOUTS}") 50ENDIF() 51 52 53 54# 55# Todo: We don't generate man pages yet, will fix it 56# later (webhelp to man transformation) 57# 58 59# 60# DEFAULT layout 61# 62 63SET(INSTALL_BINDIR_DEFAULT "bin") 64SET(INSTALL_LIBDIR_DEFAULT "lib/mariadb") 65SET(INSTALL_PCDIR_DEFAULT "lib/pkgconfig") 66SET(INSTALL_INCLUDEDIR_DEFAULT "include/mariadb") 67SET(INSTALL_DOCDIR_DEFAULT "docs") 68IF(NOT IS_SUBPROJECT) 69 SET(INSTALL_PLUGINDIR_DEFAULT "lib/mariadb/plugin") 70ELSE() 71ENDIF() 72SET(LIBMARIADB_STATIC_DEFAULT "mariadbclient") 73# 74# RPM layout 75# 76SET(INSTALL_BINDIR_RPM "bin") 77IF((CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64le" OR CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "s390x") AND CMAKE_SIZEOF_VOID_P EQUAL 8) 78 SET(INSTALL_LIBDIR_RPM "lib64/mariadb") 79 SET(INSTALL_PCDIR_RPM "lib64/pkgconfig") 80 SET(INSTALL_PLUGINDIR_RPM "lib64/mariadb/plugin") 81ELSE() 82 SET(INSTALL_LIBDIR_RPM "lib/mariadb") 83 SET(INSTALL_PCDIR_RPM "lib/pkgconfig") 84 SET(INSTALL_PLUGINDIR_RPM "lib/mariadb/plugin") 85ENDIF() 86SET(INSTALL_INCLUDEDIR_RPM "include") 87SET(INSTALL_DOCDIR_RPM "docs") 88SET(LIBMARIADB_STATIC_RPM "mariadbclient") 89 90# 91# DEB layout 92# 93SET(INSTALL_BINDIR_DEB "bin") 94SET(INSTALL_LIBDIR_DEB "lib/${CMAKE_LIBRARY_ARCHITECTURE}") 95SET(INSTALL_PCDIR_DEB "lib/${CMAKE_LIBRARY_ARCHITECTURE}/pkgconfig") 96SET(INSTALL_PLUGINDIR_DEB "${INSTALL_LIBDIR_DEB}/libmariadb${CPACK_PACKAGE_VERSION_MAJOR}/plugin") 97SET(INSTALL_INCLUDEDIR_DEB "include/mariadb") 98SET(LIBMARIADB_STATIC_DEB "mariadb") 99 100IF(INSTALL_LAYOUT MATCHES "DEB") 101 SET(INSTALL_PLUGINDIR_CLIENT ${INSTALL_PLUGINDIR_DEB}) 102ENDIF() 103 104 105# 106# Overwrite defaults 107# 108IF(INSTALL_LIBDIR) 109 SET(INSTALL_LIBDIR_${INSTALL_LAYOUT} ${INSTALL_LIBDIR}) 110ENDIF() 111 112IF(INSTALL_PCDIR) 113 SET(INSTALL_PCDIR_${INSTALL_LAYOUT} ${INSTALL_PCDIR}) 114ENDIF() 115 116IF(INSTALL_PLUGINDIR) 117 SET(INSTALL_PLUGINDIR_${INSTALL_LAYOUT} ${INSTALL_PLUGINDIR}) 118ENDIF() 119 120# Extra INSTALL_PLUGINDIR_CLIENT that overrides any INSTALL_PLUGINDIR override 121IF(INSTALL_PLUGINDIR_CLIENT) 122 SET(INSTALL_PLUGINDIR_${INSTALL_LAYOUT} ${INSTALL_PLUGINDIR_CLIENT}) 123ENDIF() 124 125IF(INSTALL_INCLUDEDIR) 126 SET(INSTALL_INCLUDEDIR_${INSTALL_LAYOUT} ${INSTALL_INCLUDEDIR}) 127ENDIF() 128 129IF(INSTALL_BINDIR) 130 SET(INSTALL_BINDIR_${INSTALL_LAYOUT} ${INSTALL_BINDIR}) 131ENDIF() 132 133IF(NOT INSTALL_PREFIXDIR) 134 SET(INSTALL_PREFIXDIR_${INSTALL_LAYOUT} ${libmariadb_prefix}) 135ELSE() 136 SET(INSTALL_PREFIXDIR_${INSTALL_LAYOUT} ${INSTALL_PREFIXDIR}) 137ENDIF() 138 139IF(DEFINED INSTALL_SUFFIXDIR) 140 SET(INSTALL_SUFFIXDIR_${INSTALL_LAYOUT} ${INSTALL_SUFFIXDIR}) 141ENDIF() 142 143FOREACH(dir "BIN" "LIB" "PC" "INCLUDE" "DOCS" "PLUGIN") 144 SET(INSTALL_${dir}DIR ${INSTALL_${dir}DIR_${INSTALL_LAYOUT}}) 145 MARK_AS_ADVANCED(INSTALL_${dir}DIR) 146 MESSAGE1(INSTALL_${dir}DIR "MariaDB Connector C: INSTALL_${dir}DIR=${INSTALL_${dir}DIR}") 147ENDFOREACH() 148 149SET(LIBMARIADB_STATIC_NAME ${LIBMARIADB_STATIC_${INSTALL_LAYOUT}}) 150MARK_AS_ADVANCED(LIBMARIADB_STATIC_NAME) 151 152MESSAGE1(LIBMARIADB_STATIC_NAME "MariaDB Connector C: LIBMARIADB_STATIC_NAME ${LIBMARIADB_STATIC_NAME}") 153