FindLibEV.cmake 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. set(LIBEV_PATH "" CACHE PATH "Base path for include/ev.h and lib/libev*")
  2. set(LIBEV_INCLUDE_PATH "" CACHE PATH "Include path for ev.h")
  3. set(LIBEV_LIBDIR "" CACHE PATH "Path containing libev")
  4. if(LIBEV_PATH)
  5. set(LIBEV_INCLUDE_PATH "${LIBEV_PATH}/include" CACHE PATH "Include path for ev.h" FORCE)
  6. set(LIBEV_LIBDIR "${LIBEV_PATH}/lib" CACHE PATH "Path containing libev" FORCE)
  7. endif()
  8. if(LIBEV_INCLUDE_PATH)
  9. include_directories(${LIBEV_INCLUDE_PATH})
  10. endif()
  11. # Use cached result
  12. if(NOT LIBEV_FOUND)
  13. unset(HAVE_EV_H)
  14. unset(HAVE_LIBEV)
  15. unset(HAVE_EV_H CACHE)
  16. unset(HAVE_LIBEV CACHE)
  17. unset(LIBEV_CFLAGS)
  18. unset(LIBEV_LDFLAGS)
  19. if(LIBEV_INCLUDE_PATH OR LIBEV_LIBDIR)
  20. set(CMAKE_REQUIRED_INCLUDES ${LIBEV_INCLUDE_PATH})
  21. # message(STATUS "Looking for ev.h in ${CMAKE_REQUIRED_INCLUDES}")
  22. check_include_files(ev.h HAVE_EV_H)
  23. if(HAVE_EV_H)
  24. # message(STATUS "Looking for lib ev in ${LIBEV_LIBDIR}")
  25. check_library_exists(ev ev_time "${LIBEV_LIBDIR}" HAVE_LIBEV)
  26. if(HAVE_LIBEV)
  27. set(LIBEV_CFLAGS "" CACHE INTERNAL "")
  28. set(LIBEV_LDFLAGS "-L${LIBEV_LIBDIR} -lev" CACHE INTERNAL "")
  29. set(LIBEV_FOUND TRUE CACHE INTERNAL "Found libev")
  30. else()
  31. message(STATUS "Couldn't find lib ev in ${LIBEV_LIBDIR}")
  32. endif()
  33. else()
  34. message(STATUS "Couldn't find <ev.h> in ${LIBEV_INCLUDE_PATH}")
  35. endif()
  36. else()
  37. pkg_check_modules(LIBEV libev)
  38. if(NOT LIBEV_FOUND)
  39. # message(STATUS "Looking for ev.h in ${CMAKE_REQUIRED_INCLUDES}")
  40. check_include_files(ev.h HAVE_EV_H)
  41. if(HAVE_EV_H)
  42. # message(STATUS "Looking for lib ev")
  43. check_library_exists(ev ev_time "" HAVE_LIBEV)
  44. if(HAVE_LIBEV)
  45. set(LIBEV_CFLAGS "" CACHE INTERNAL "")
  46. set(LIBEV_LDFLAGS "-lev" CACHE INTERNAL "")
  47. set(LIBEV_FOUND TRUE CACHE INTERNAL "Found libev")
  48. else()
  49. message(STATUS "Couldn't find lib ev")
  50. endif()
  51. else()
  52. message(STATUS "Couldn't find <ev.h>")
  53. endif()
  54. endif()
  55. endif()
  56. endif()
  57. if(NOT LIBEV_FOUND)
  58. if(LibEV_FIND_REQUIRED)
  59. message(FATAL_ERROR "Could not find libev")
  60. endif()
  61. endif()
  62. mark_as_advanced(LIBEV_PATH LIBEV_INCLUDE_PATH LIBEV_LIBDIR)