CMakeLists.txt 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
  2. PROJECT(FiSH-irssi C)
  3. SET(VERSION_MAJOR 1)
  4. SET(VERSION_MINOR 4)
  5. SET(FISH_VERSION ${VERSION_MAJOR}.${VERSION_MINOR})
  6. INCLUDE (CheckIncludeFiles)
  7. # Look for some headers
  8. CHECK_INCLUDE_FILES(stdint.h HAVE_STDINT)
  9. if(NOT HAVE_STDINT)
  10. # SunOS 5.8 doesnt have stdint.h but inttypes.h can replace it
  11. CHECK_INCLUDE_FILES(inttypes.h HAVE_INTTYPES)
  12. endif()
  13. # Look for pkg-config
  14. FIND_PACKAGE(PkgConfig REQUIRED)
  15. # Look for glib2
  16. PKG_CHECK_MODULES(GLIB_PKG REQUIRED glib-2.0)
  17. if(GLIB_PKG_FOUND)
  18. INCLUDE_DIRECTORIES(${GLIB_PKG_INCLUDE_DIRS})
  19. LINK_DIRECTORIES(${GLIB_PKG_LIBRARY_DIRS})
  20. MESSAGE(STATUS "Using glib-2.0 ${GLIB_PKG_VERSION}")
  21. ENDIF()
  22. # Look for OpenSSL
  23. PKG_CHECK_MODULES(OPENSSL REQUIRED openssl)
  24. if(OPENSSL_FOUND)
  25. INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIRS})
  26. LINK_DIRECTORIES(${OPENSSL_LIBRARY_DIRS})
  27. MESSAGE(STATUS "Using OpenSSL ${OPENSSL_VERSION}")
  28. ENDIF()
  29. # Look for libsodium
  30. PKG_CHECK_MODULES(LIBSODIUM REQUIRED libsodium)
  31. if(LIBSODIUM_FOUND)
  32. INCLUDE_DIRECTORIES(${LIBSODIUM_INCLUDE_DIRS})
  33. LINK_DIRECTORIES(${LILBSODIUM_LIBRARY_DIRS})
  34. MESSAGE(STATUS "Using libsodium ${LIBSODIUM_VERSION}")
  35. ENDIF()
  36. # Sets a variable that the user can set with
  37. # cmake -DIRSSI_INCLUDE_DIR:PATH=/path/to/irssi/includes .
  38. SET(IRSSI_INCLUDE_DIR "" CACHE PATH "Path to irssi include files")
  39. # Tries to find the irssi include files in the most common places,
  40. # and in the user defined directory
  41. FIND_PATH(IRSSI_INCLUDE_PATH
  42. NAMES irssi-config.h src/common.h
  43. PATHS /usr/include/irssi /usr/local/include/irssi ${IRSSI_INCLUDE_DIR}
  44. )
  45. # Bail out if the required irssi files werent found
  46. IF(NOT IRSSI_INCLUDE_PATH)
  47. MESSAGE(SEND_ERROR "Could not detect the irssi include files. Please run:\n# cmake -DIRSSI_INCLUDE_DIR:PATH=/path/to/irssi/includes .")
  48. RETURN()
  49. ENDIF()
  50. MESSAGE(STATUS "irssi includes were found on ${IRSSI_INCLUDE_PATH}")
  51. # Add the weirdo irssi includes directories
  52. INCLUDE_DIRECTORIES(${IRSSI_INCLUDE_PATH} ${IRSSI_INCLUDE_PATH}/src ${IRSSI_INCLUDE_PATH}/src/fe-common/core ${IRSSI_INCLUDE_PATH}/src/core)
  53. MESSAGE(STATUS "The module will be installed by default to ${CMAKE_INSTALL_PREFIX}/lib/irssi/modules")
  54. MESSAGE(STATUS "You can change it with 'cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr .'")
  55. # Generate a version based on the git version
  56. IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git)
  57. FIND_PACKAGE(Git)
  58. IF(GIT_FOUND)
  59. EXECUTE_PROCESS(
  60. COMMAND ${GIT_EXECUTABLE} rev-list --count HEAD
  61. WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
  62. OUTPUT_VARIABLE "FISH_GIT_REVISION"
  63. ERROR_QUIET
  64. OUTPUT_STRIP_TRAILING_WHITESPACE)
  65. EXECUTE_PROCESS(
  66. COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
  67. WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
  68. OUTPUT_VARIABLE "FISH_GIT_HASH"
  69. ERROR_QUIET
  70. OUTPUT_STRIP_TRAILING_WHITESPACE)
  71. SET(FISH_VERSION r${FISH_GIT_REVISION}-${FISH_GIT_HASH})
  72. ENDIF(GIT_FOUND)
  73. ENDIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git)
  74. ADD_SUBDIRECTORY(src)
  75. INSTALL(FILES README DESTINATION share/doc/FiSH-irssi)