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