1# detect-install-dirs.cmake -- Detect install directory parameters
2# Copyright (C) 2021 Hans Kristian Rosbach
3# Licensed under the Zlib license, see LICENSE.md for details
4
5# Determine installation directory for executables
6if (DEFINED BIN_INSTALL_DIR)
7    set(BIN_INSTALL_DIR "${BIN_INSTALL_DIR}" CACHE PATH "Installation directory for executables" FORCE)
8elseif (DEFINED INSTALL_BIN_DIR)
9    set(BIN_INSTALL_DIR "${INSTALL_BIN_DIR}" CACHE PATH "Installation directory for executables" FORCE)
10elseif (DEFINED CMAKE_INSTALL_FULL_BINDIR)
11    set(BIN_INSTALL_DIR "${CMAKE_INSTALL_FULL_BINDIR}" CACHE PATH "Installation directory for executables" FORCE)
12elseif (DEFINED CMAKE_INSTALL_BINDIR)
13    set(BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}" CACHE PATH "Installation directory for executables" FORCE)
14else()
15    set(BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables")
16endif()
17
18# Determine installation directory for libraries
19if (DEFINED LIB_INSTALL_DIR)
20    set(LIB_INSTALL_DIR "${LIB_INSTALL_DIR}" CACHE PATH "Installation directory for libraries" FORCE)
21elseif (DEFINED INSTALL_LIB_DIR)
22    set(LIB_INSTALL_DIR "${INSTALL_LIB_DIR}" CACHE PATH "Installation directory for libraries" FORCE)
23elseif (DEFINED CMAKE_INSTALL_FULL_LIBDIR)
24    set(LIB_INSTALL_DIR "${CMAKE_INSTALL_FULL_LIBDIR}" CACHE PATH "Installation directory for libraries" FORCE)
25elseif (DEFINED CMAKE_INSTALL_LIBDIR)
26    set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}" CACHE PATH "Installation directory for libraries" FORCE)
27else()
28    set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries")
29endif()
30
31# Determine installation directory for include files
32if (DEFINED INC_INSTALL_DIR)
33    set(INC_INSTALL_DIR "${INC_INSTALL_DIR}" CACHE PATH "Installation directory for headers" FORCE)
34elseif (DEFINED INSTALL_INC_DIR)
35    set(INC_INSTALL_DIR "${INSTALL_INC_DIR}" CACHE PATH "Installation directory for headers" FORCE)
36elseif (DEFINED CMAKE_INSTALL_FULL_INCLUDEDIR)
37    set(INC_INSTALL_DIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}" CACHE PATH "Installation directory for headers" FORCE)
38elseif (DEFINED CMAKE_INSTALL_INCLUDEDIR)
39    set(INC_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}" CACHE PATH "Installation directory for headers" FORCE)
40else()
41    set(INC_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers")
42endif()
43
44# Determine installation directory for pkgconfig files
45if (DEFINED PKGCONFIG_INSTALL_DIR)
46    set(PKGCONFIG_INSTALL_DIR "${PKGCONFIG_INSTALL_DIR}" CACHE PATH "Installation directory for pkgconfig (.pc) files" FORCE)
47elseif (DEFINED INSTALL_PKGCONFIG_DIR)
48    set(PKGCONFIG_INSTALL_DIR "${INSTALL_PKGCONFIG_DIR}" CACHE PATH "Installation directory for pkgconfig (.pc) files" FORCE)
49elseif (DEFINED CMAKE_INSTALL_FULL_PKGCONFIGDIR)
50    set(PKGCONFIG_INSTALL_DIR "${CMAKE_INSTALL_FULL_PKGCONFIGDIR}" CACHE PATH "Installation directory for pkgconfig (.pc) files" FORCE)
51elseif (DEFINED CMAKE_INSTALL_PKGCONFIGDIR)
52    set(PKGCONFIG_INSTALL_DIR "${LIB_INSTALL_DIR}/${CMAKE_INSTALL_PKGCONFIGDIR}" CACHE PATH "Installation directory for pkgconfig (.pc) files" FORCE)
53else()
54    set(PKGCONFIG_INSTALL_DIR "${LIB_INSTALL_DIR}/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files")
55endif()
56