uhttpd/file: fix string out of buffer range on uh_defer_script
[project/uhttpd.git] / CMakeLists.txt
index c495bec0f8b67ad700779a204ed6709acbdb8567..58eb6dde1f8150eada4ff501678a495136f02f85 100644 (file)
@@ -5,11 +5,12 @@ PROJECT(uhttpd C)
 INCLUDE (CheckFunctionExists)
 
 SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
-ADD_DEFINITIONS(-Os -Wall -Werror -Wmissing-declarations --std=gnu99 -g3)
+ADD_DEFINITIONS(-D_FILE_OFFSET_BITS=64 -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)
+OPTION(UCODE_SUPPORT "ucode support" ON)
 
 IF(APPLE)
   INCLUDE_DIRECTORIES(/opt/local/include)
@@ -21,7 +22,10 @@ IF(LIBS STREQUAL "LIBS-NOTFOUND")
        SET(LIBS "")
 ENDIF()
 
-SET(SOURCES main.c listen.c client.c utils.c file.c auth.c cgi.c relay.c proc.c plugin.c)
+FIND_PATH(ubox_include_dir libubox/usock.h)
+INCLUDE_DIRECTORIES(${ubox_include_dir})
+
+SET(SOURCES main.c listen.c client.c utils.c file.c auth.c cgi.c relay.c proc.c plugin.c handler.c)
 IF(TLS_SUPPORT)
        SET(SOURCES ${SOURCES} tls.c)
        ADD_DEFINITIONS(-DHAVE_TLS)
@@ -32,8 +36,13 @@ IF(HAVE_SHADOW)
     ADD_DEFINITIONS(-DHAVE_SHADOW)
 ENDIF()
 
+FIND_LIBRARY(ubox NAMES ubox)
+FIND_LIBRARY(json_script NAMES json_script)
+FIND_LIBRARY(blobmsg_json NAMES blobmsg_json)
+
 ADD_EXECUTABLE(uhttpd ${SOURCES})
-TARGET_LINK_LIBRARIES(uhttpd ubox dl ${LIBS})
+FIND_LIBRARY(libjson NAMES json-c json)
+TARGET_LINK_LIBRARIES(uhttpd ${ubox} dl ${json_script} ${blobmsg_json} ${libjson} ${LIBS})
 
 SET(PLUGINS "")
 IF(LUA_SUPPORT)
@@ -65,11 +74,19 @@ IF(LUA_SUPPORT)
        TARGET_LINK_LIBRARIES(uhttpd_lua ${LUA_LIBS} m dl)
 ENDIF()
 
+IF(UCODE_SUPPORT)
+       SET(PLUGINS ${PLUGINS} uhttpd_ucode)
+       ADD_DEFINITIONS(-DHAVE_UCODE)
+       ADD_LIBRARY(uhttpd_ucode MODULE ucode.c)
+       TARGET_LINK_LIBRARIES(uhttpd_ucode ucode ${libjson})
+ENDIF()
+
 IF(UBUS_SUPPORT)
+       FIND_LIBRARY(ubus NAMES ubus)
        SET(PLUGINS ${PLUGINS} uhttpd_ubus)
        ADD_DEFINITIONS(-DHAVE_UBUS)
-       ADD_LIBRARY(uhttpd_ubus MODULE ubus.c ubus-session.c)
-       TARGET_LINK_LIBRARIES(uhttpd_ubus ubus ubox blobmsg_json json)
+       ADD_LIBRARY(uhttpd_ubus MODULE ubus.c)
+       TARGET_LINK_LIBRARIES(uhttpd_ubus ${ubus} ${ubox} ${blobmsg_json} ${libjson})
 ENDIF()
 
 IF(PLUGINS)