You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

FindLua.cmake 5.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. # Find lua installation
  2. MACRO(FindLua)
  3. # Find lua libraries
  4. UNSET(LUA_INCLUDE_DIR CACHE)
  5. UNSET(LUA_LIBRARY CACHE)
  6. CMAKE_PARSE_ARGUMENTS(LUA "" "VERSION_MAJOR;VERSION_MINOR;ROOT" "" ${ARGN})
  7. IF(NOT LUA_VERSION_MAJOR OR NOT LUA_VERSION_MINOR)
  8. MESSAGE(FATAL_ERROR "Invalid FindLua invocation: ${ARGN}")
  9. ENDIF()
  10. IF(ENABLE_LUAJIT MATCHES "ON")
  11. MESSAGE(STATUS "Check for luajit ${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}")
  12. FIND_PATH(LUA_INCLUDE_DIR luajit.h
  13. HINTS
  14. "${RSPAMD_SEARCH_PATH}" "${LUA_ROOT}"
  15. $ENV{LUA_DIR}
  16. PATH_SUFFIXES "include/luajit-2.0"
  17. "include/luajit-2.1"
  18. "include/luajit${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}"
  19. "include/luajit${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
  20. "include/luajit-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
  21. "include/luajit-${LUA_VERSION_MAJOR}_${LUA_VERSION_MINOR}-2.0"
  22. "include/luajit-${LUA_VERSION_MAJOR}_${LUA_VERSION_MINOR}-2.1"
  23. "include/luajit"
  24. "include/lua${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}"
  25. "include/lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
  26. "include/lua-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
  27. include/lua include
  28. PATHS ${RSPAMD_DEFAULT_INCLUDE_PATHS}
  29. )
  30. FIND_LIBRARY(LUA_LIBRARY
  31. NAMES luajit
  32. "luajit-2.0"
  33. "luajit2.0"
  34. "luajit${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}"
  35. "luajit${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
  36. "luajit-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
  37. HINTS
  38. "${RSPAMD_SEARCH_PATH}" "${LUA_ROOT}"
  39. $ENV{LUA_DIR}
  40. PATH_SUFFIXES lib64 lib
  41. PATHS ${RSPAMD_DEFAULT_LIBRARY_PATHS}
  42. DOC "Lua library"
  43. )
  44. IF(NOT LUA_LIBRARY OR NOT LUA_INCLUDE_DIR)
  45. MESSAGE(STATUS "Fallback from luajit to plain lua")
  46. SET(ENABLE_LUAJIT "OFF")
  47. MESSAGE(STATUS "Check for lua ${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}")
  48. FIND_PATH(LUA_INCLUDE_DIR lua.h
  49. HINTS
  50. "${RSPAMD_SEARCH_PATH}" "${LUA_ROOT}"
  51. $ENV{LUA_DIR}
  52. PATH_SUFFIXES "include/lua${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}"
  53. "include/lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
  54. "include/lua-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
  55. include/lua include
  56. PATHS ${RSPAMD_DEFAULT_INCLUDE_PATHS}
  57. )
  58. FIND_LIBRARY(LUA_LIBRARY
  59. NAMES lua
  60. "lua${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}"
  61. "lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
  62. "lua-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
  63. HINTS
  64. "${RSPAMD_SEARCH_PATH}" "${LUA_ROOT}"
  65. $ENV{LUA_DIR}
  66. PATH_SUFFIXES lib64 lib
  67. PATHS ${RSPAMD_DEFAULT_LIBRARY_PATHS}
  68. DOC "Lua library"
  69. )
  70. ELSE()
  71. SET(WITH_LUAJIT 1)
  72. ENDIF()
  73. ELSE(ENABLE_LUAJIT MATCHES "ON")
  74. MESSAGE(STATUS "Check for lua ${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}")
  75. FIND_PATH(LUA_INCLUDE_DIR lua.h
  76. HINTS
  77. "${RSPAMD_SEARCH_PATH}" "${LUA_ROOT}"
  78. $ENV{LUA_DIR}
  79. PATH_SUFFIXES "include/lua${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}"
  80. "include/lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
  81. "include/lua-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
  82. include/lua include
  83. PATHS ${RSPAMD_DEFAULT_INCLUDE_PATHS}
  84. )
  85. FIND_LIBRARY(LUA_LIBRARY
  86. NAMES lua
  87. "lua${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}"
  88. "lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
  89. "lua-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
  90. HINTS
  91. "${RSPAMD_SEARCH_PATH}" "${LUA_ROOT}"
  92. $ENV{LUA_DIR}
  93. PATH_SUFFIXES lib64 lib
  94. PATHS ${RSPAMD_DEFAULT_LIBRARY_PATHS}
  95. DOC "Lua library"
  96. )
  97. ENDIF(ENABLE_LUAJIT MATCHES "ON")
  98. IF(LUA_LIBRARY AND LUA_INCLUDE_DIR)
  99. SET(LUA_FOUND 1)
  100. IF(NOT LUA_VERSION_MAJOR OR NOT LUA_VERSION_MINOR)
  101. SET(LUA_VERSION_MAJOR ${LUA_VERSION_MAJOR})
  102. SET(LUA_VERSION_MINOR ${LUA_VERSION_MINOR})
  103. ENDIF(NOT LUA_VERSION_MAJOR OR NOT LUA_VERSION_MINOR)
  104. IF(ENABLE_LUAJIT MATCHES "ON")
  105. MESSAGE(STATUS "Found luajit ${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR} in lib:${LUA_LIBRARY}, headers:${LUA_INCLUDE_DIR}")
  106. ELSE(ENABLE_LUAJIT MATCHES "ON")
  107. MESSAGE(STATUS "Found lua ${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR} in lib:${LUA_LIBRARY}, headers:${LUA_INCLUDE_DIR}")
  108. ENDIF(ENABLE_LUAJIT MATCHES "ON")
  109. ENDIF(LUA_LIBRARY AND LUA_INCLUDE_DIR)
  110. ENDMACRO()