ConfigurePaths.cmake 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. # - pre-configured paths for CMake
  2. #
  3. # Usage:
  4. # configure_paths(<PREFIX>)
  5. #
  6. # Checks if configure-like prefix and installation paths were passed by the user
  7. # and sets up corresponding variables for use in install() commands and to fill
  8. # out .pc files:
  9. #
  10. # PREFIX_PREFIX defaults to ... CMAKE_INSTALL_PREFIX
  11. # PREFIX_EPREFIX PREFIX_PREFIX
  12. # PREFIX_SBINDIR PREFIX_EPREFIX/sbin
  13. # PREFIX_SYSCONFDIR PREFIX_PREFIX/etc
  14. # PREFIX_LOCALSTATEDIR PREFIX_PREFIX/var
  15. # PREFIX_BINDIR PREFIX_EPREFIX/bin
  16. # PREFIX_LIBDIR PREFIX_EPREFIX/lib
  17. # PREFIX_INCLUDEDIR PREFIX_PREFIX/include
  18. # PREFIX_PKGCONFIGDIR PREFIX_LIBDIR/pkgconfig
  19. # PREFIX_TYPELIBDIR PREFIX_LIBDIR/girepository-1.0
  20. # PREFIX_DATAROOTDIR PREFIX_PREFIX/share
  21. # PREFIX_DATADIR PREFIX_DATAROOTDIR
  22. # PREFIX_INFODIR PREFIX_DATAROOTDIR/info
  23. # PREFIX_MANDIR PREFIX_DATAROOTDIR/man
  24. # PREFIX_LOCALEDIR PREFIX_DATAROOTDIR/locale
  25. # PREFIX_GIRDIR PREFIX_DATAROOTDIR/gir-1.0
  26. # Copyright (C) 2013 Matthias Vogelgesang <matthias.vogelgesang@gmail.com>
  27. #
  28. # Redistribution and use, with or without modification, are permitted
  29. # provided that the following conditions are met:
  30. #
  31. # 1. Redistributions must retain the above copyright notice, this
  32. # list of conditions and the following disclaimer.
  33. # 2. The name of the author may not be used to endorse or promote
  34. # products derived from this software without specific prior
  35. # written permission.
  36. #
  37. # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
  38. # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  39. # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  40. # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
  41. # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  42. # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
  43. # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  44. # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
  45. # IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
  46. # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
  47. # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  48. if(__configure_paths)
  49. return()
  50. endif()
  51. set(__configure_paths YES)
  52. macro(_set_var _prefix _var _user _override _description)
  53. set(_name "${_prefix}_${_var}")
  54. set("${_name}" "${_user}")
  55. if("${_name}" STREQUAL "")
  56. set("${_name}" "${_override}")
  57. endif()
  58. set(${_name} "${${_name}}" CACHE PATH "${_description}")
  59. mark_as_advanced(${_name})
  60. endmacro()
  61. function(configure_paths _prefix)
  62. _set_var("${_prefix}" "PREFIX" "${PREFIX}" "${CMAKE_INSTALL_PREFIX}" "install architecture-independent files in PREFIX")
  63. _set_var("${_prefix}" "EPREFIX" "${EXEC_PREFIX}" "${${_prefix}_PREFIX}" "install architecture-dependent files in EPREFIX")
  64. _set_var("${_prefix}" "SBINDIR" "${SBINDIR}" "${${_prefix}_EPREFIX}/sbin" "system admin executabls")
  65. _set_var("${_prefix}" "SYSCONFDIR" "${SYSCONFDIR}" "${${_prefix}_PREFIX}/etc" "read-only single-machine data")
  66. _set_var("${_prefix}" "LOCALSTATEDIR" "${LOCALSTATEDIR}" "${${_prefix}_PREFIX}/var" "modifiable single-machine data")
  67. _set_var("${_prefix}" "BINDIR" "${BINDIR}" "${${_prefix}_EPREFIX}/bin" "user executables")
  68. _set_var("${_prefix}" "LIBDIR" "${LIBDIR}" "${${_prefix}_EPREFIX}/lib" "object code libraries")
  69. _set_var("${_prefix}" "INCLUDEDIR" "${INCLUDEDIR}" "${${_prefix}_PREFIX}/include" "C header files")
  70. _set_var("${_prefix}" "PKGCONFIGDIR" "${PKGCONFIGDIR}" "${${_prefix}_LIBDIR}/pkgconfig" "pkg-config files")
  71. _set_var("${_prefix}" "TYPELIBDIR" "${TYPELIBDIR}" "${${_prefix}_LIBDIR}/girepository-1.0" "GObject run-time introspection data")
  72. _set_var("${_prefix}" "DATAROOTDIR" "${DATAROOTDIR}" "${${_prefix}_PREFIX}/share" "read-only arch.-independent data root")
  73. _set_var("${_prefix}" "DATADIR" "${DATADIR}" "${${_prefix}_DATAROOTDIR}" "read-only architecture-independent data")
  74. _set_var("${_prefix}" "INFODIR" "${INFODIR}" "${${_prefix}_DATAROOTDIR}/info" "info documentation")
  75. _set_var("${_prefix}" "MANDIR" "${MANDIR}" "${${_prefix}_DATAROOTDIR}/man" "man documentation")
  76. _set_var("${_prefix}" "LOCALEDIR" "${LOCALEDIR}" "${${_prefix}_DATAROOTDIR}/locale" "locale-dependent data")
  77. _set_var("${_prefix}" "GIRDIR" "${GIRDIR}" "${${_prefix}_DATAROOTDIR}/gir-1.0" "GObject introspection data")
  78. endfunction()
  79. # vim: tw=0: