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