ubus: duplicate request buffer to avoid memory corruption with multiple requests
[project/uhttpd.git] / CMakeLists.txt
index 889c32e..ec45c52 100644 (file)
@@ -1,11 +1,15 @@
 cmake_minimum_required(VERSION 2.6)
 
 PROJECT(uhttpd C)
+
+INCLUDE (CheckFunctionExists)
+
 SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
 ADD_DEFINITIONS(-Os -Wall -Werror -Wmissing-declarations --std=gnu99 -g3)
 
 OPTION(TLS_SUPPORT "TLS support" ON)
 OPTION(LUA_SUPPORT "Lua support" ON)
+OPTION(UBUS_SUPPORT "ubus support" ON)
 
 IF(APPLE)
   INCLUDE_DIRECTORIES(/opt/local/include)
@@ -23,6 +27,11 @@ IF(TLS_SUPPORT)
        ADD_DEFINITIONS(-DHAVE_TLS)
 ENDIF()
 
+CHECK_FUNCTION_EXISTS(getspnam HAVE_SHADOW)
+IF(HAVE_SHADOW)
+    ADD_DEFINITIONS(-DHAVE_SHADOW)
+ENDIF()
+
 ADD_EXECUTABLE(uhttpd ${SOURCES})
 TARGET_LINK_LIBRARIES(uhttpd ubox dl ${LIBS})
 
@@ -56,6 +65,14 @@ IF(LUA_SUPPORT)
        TARGET_LINK_LIBRARIES(uhttpd_lua ${LUA_LIBS} m dl)
 ENDIF()
 
+IF(UBUS_SUPPORT)
+       SET(PLUGINS ${PLUGINS} uhttpd_ubus)
+       ADD_DEFINITIONS(-DHAVE_UBUS)
+       ADD_LIBRARY(uhttpd_ubus MODULE ubus.c)
+       FIND_LIBRARY(libjson NAMES json-c json)
+       TARGET_LINK_LIBRARIES(uhttpd_ubus ubus ubox blobmsg_json ${libjson})
+ENDIF()
+
 IF(PLUGINS)
        SET_TARGET_PROPERTIES(${PLUGINS} PROPERTIES
                PREFIX ""