aboutsummaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorStefan Bühler <stbuehler@web.de>2013-07-20 10:30:48 +0200
committerStefan Bühler <stbuehler@web.de>2013-07-20 10:31:59 +0200
commit64c505e3c7725b18bc2ee88e1beccf518253de5f (patch)
treead65117c55b744a178b8bd89197c03f11b6503c5 /cmake
parent9541b9d885087474f71c66b272a0a0ae721dcc0d (diff)
downloadfcgi-cgi-64c505e3c7725b18bc2ee88e1beccf518253de5f.tar.gz
fcgi-cgi-64c505e3c7725b18bc2ee88e1beccf518253de5f.zip
[cmake] improve libev handling
Diffstat (limited to 'cmake')
-rw-r--r--cmake/AddTargetProperties.cmake14
-rw-r--r--cmake/FindLibEV.cmake71
2 files changed, 85 insertions, 0 deletions
diff --git a/cmake/AddTargetProperties.cmake b/cmake/AddTargetProperties.cmake
new file mode 100644
index 0000000..cee7276
--- /dev/null
+++ b/cmake/AddTargetProperties.cmake
@@ -0,0 +1,14 @@
+MACRO(ADD_TARGET_PROPERTIES _target _name _properties)
+ SET(_properties ${ARGV})
+ LIST(REMOVE_AT _properties 0)
+ LIST(REMOVE_AT _properties 0)
+ GET_TARGET_PROPERTY(_old_properties ${_target} ${_name})
+ #MESSAGE("adding property to ${_target} ${_name}: ${_properties}")
+ IF(NOT _old_properties)
+ # in case it's NOTFOUND
+ SET(_old_properties)
+ ELSE(NOT _old_properties)
+ SET(_old_properties "${_old_properties} ")
+ ENDIF(NOT _old_properties)
+ SET_TARGET_PROPERTIES(${_target} PROPERTIES ${_name} "${_old_properties}${_properties}")
+ENDMACRO(ADD_TARGET_PROPERTIES)
diff --git a/cmake/FindLibEV.cmake b/cmake/FindLibEV.cmake
new file mode 100644
index 0000000..29035e3
--- /dev/null
+++ b/cmake/FindLibEV.cmake
@@ -0,0 +1,71 @@
+
+SET(LIBEV_PATH "" CACHE PATH "Base path for include/ev.h and lib/libev*")
+SET(LIBEV_INCLUDE_PATH "" CACHE PATH "Include path for ev.h")
+SET(LIBEV_LIBDIR "" CACHE PATH "Path containing libev")
+
+IF(LIBEV_PATH)
+ SET(LIBEV_INCLUDE_PATH "${LIBEV_PATH}/include" CACHE PATH "Include path for ev.h" FORCE)
+ SET(LIBEV_LIBDIR "${LIBEV_PATH}/lib" CACHE PATH "Path containing libev" FORCE)
+ENDIF(LIBEV_PATH)
+
+IF(LIBEV_INCLUDE_PATH)
+ INCLUDE_DIRECTORIES(${LIBEV_INCLUDE_PATH})
+ENDIF(LIBEV_INCLUDE_PATH)
+
+# Use cached result
+IF(NOT LIBEV_FOUND)
+ UNSET(HAVE_EV_H)
+ UNSET(HAVE_LIBEV)
+ UNSET(HAVE_EV_H CACHE)
+ UNSET(HAVE_LIBEV CACHE)
+ UNSET(LIBEV_CFLAGS)
+ UNSET(LIBEV_LDFLAGS)
+
+ IF(LIBEV_INCLUDE_PATH OR LIBEV_LIBDIR)
+ SET(CMAKE_REQUIRED_INCLUDES ${LIBEV_INCLUDE_PATH})
+# MESSAGE(STATUS "Looking for ev.h in ${CMAKE_REQUIRED_INCLUDES}")
+ CHECK_INCLUDE_FILES(ev.h HAVE_EV_H)
+ IF(HAVE_EV_H)
+# MESSAGE(STATUS "Looking for lib ev in ${LIBEV_LIBDIR}")
+ CHECK_LIBRARY_EXISTS(ev ev_time "${LIBEV_LIBDIR}" HAVE_LIBEV)
+ IF(HAVE_LIBEV)
+ SET(LIBEV_LIBRARIES ev CACHE INTERNAL "")
+ SET(LIBEV_CFLAGS "" CACHE INTERNAL "")
+ SET(LIBEV_LDFLAGS "-L${LIBEV_LIBDIR} -lev" CACHE INTERNAL "")
+ SET(LIBEV_FOUND TRUE CACHE INTERNAL "Found libev" FORCE)
+ ELSE(HAVE_LIBEV)
+ MESSAGE(STATUS "Couldn't find lib ev in ${LIBEV_LIBDIR}")
+ ENDIF(HAVE_LIBEV)
+ ELSE(HAVE_EV_H)
+ MESSAGE(STATUS "Couldn't find <ev.h> in ${LIBEV_INCLUDE_PATH}")
+ ENDIF(HAVE_EV_H)
+ ELSE(LIBEV_INCLUDE_PATH OR LIBEV_LIBDIR)
+ pkg_check_modules(LIBEV libev)
+ IF(NOT LIBEV_FOUND)
+# MESSAGE(STATUS "Looking for ev.h in ${CMAKE_REQUIRED_INCLUDES}")
+ CHECK_INCLUDE_FILES(ev.h HAVE_EV_H)
+ IF(HAVE_EV_H)
+# MESSAGE(STATUS "Looking for lib ev")
+ CHECK_LIBRARY_EXISTS(ev ev_time "" HAVE_LIBEV)
+ IF(HAVE_LIBEV)
+ SET(LIBEV_CFLAGS "" CACHE INTERNAL "")
+ SET(LIBEV_LDFLAGS "-lev" CACHE INTERNAL "")
+ SET(LIBEV_FOUND TRUE CACHE INTERNAL "Found libev" FORCE)
+ ELSE(HAVE_LIBEV)
+ MESSAGE(STATUS "Couldn't find lib ev")
+ ENDIF(HAVE_LIBEV)
+ ELSE(HAVE_EV_H)
+ MESSAGE(STATUS "Couldn't find <ev.h>")
+ ENDIF(HAVE_EV_H)
+ ENDIF(NOT LIBEV_FOUND)
+ ENDIF(LIBEV_INCLUDE_PATH OR LIBEV_LIBDIR)
+
+ENDIF(NOT LIBEV_FOUND)
+
+IF(NOT LIBEV_FOUND)
+ IF(LibEV_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "Could not find libev")
+ ENDIF(LibEV_FIND_REQUIRED)
+ENDIF(NOT LIBEV_FOUND)
+
+MARK_AS_ADVANCED(LIBEV_PATH LIBEV_INCLUDE_PATH LIBEV_LIBDIR)