1 cmake_minimum_required(VERSION 2.6) 2 3 PROJECT(uhttpd C) 4 5 INCLUDE (CheckFunctionExists) 6 7 SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") 8 ADD_DEFINITIONS(-D_FILE_OFFSET_BITS=64 -Os -Wall -Werror -Wmissing-declarations --std=gnu99 -g3) 9 10 OPTION(TLS_SUPPORT "TLS support" ON) 11 OPTION(LUA_SUPPORT "Lua support" ON) 12 OPTION(UBUS_SUPPORT "ubus support" ON) 13 OPTION(UCODE_SUPPORT "ucode support" ON) 14 15 IF(APPLE) 16 INCLUDE_DIRECTORIES(/opt/local/include) 17 LINK_DIRECTORIES(/opt/local/lib) 18 ENDIF() 19 20 FIND_LIBRARY(LIBS crypt) 21 IF(LIBS STREQUAL "LIBS-NOTFOUND") 22 SET(LIBS "") 23 ENDIF() 24 25 FIND_PATH(ubox_include_dir libubox/usock.h) 26 INCLUDE_DIRECTORIES(${ubox_include_dir}) 27 28 SET(SOURCES main.c listen.c client.c utils.c file.c auth.c cgi.c relay.c proc.c plugin.c handler.c) 29 IF(TLS_SUPPORT) 30 SET(SOURCES ${SOURCES} tls.c) 31 ADD_DEFINITIONS(-DHAVE_TLS) 32 ENDIF() 33 34 CHECK_FUNCTION_EXISTS(getspnam HAVE_SHADOW) 35 IF(HAVE_SHADOW) 36 ADD_DEFINITIONS(-DHAVE_SHADOW) 37 ENDIF() 38 39 FIND_LIBRARY(ubox NAMES ubox) 40 FIND_LIBRARY(json_script NAMES json_script) 41 FIND_LIBRARY(blobmsg_json NAMES blobmsg_json) 42 43 ADD_EXECUTABLE(uhttpd ${SOURCES}) 44 FIND_LIBRARY(libjson NAMES json-c json) 45 TARGET_LINK_LIBRARIES(uhttpd ${ubox} dl ${json_script} ${blobmsg_json} ${libjson} ${LIBS}) 46 47 SET(PLUGINS "") 48 IF(LUA_SUPPORT) 49 FIND_PROGRAM(PKG_CONFIG pkg-config) 50 51 IF(NOT LUA_CFLAGS AND PKG_CONFIG) 52 EXECUTE_PROCESS( 53 COMMAND pkg-config --silence-errors --cflags lua5.1 54 OUTPUT_VARIABLE LUA_CFLAGS 55 OUTPUT_STRIP_TRAILING_WHITESPACE 56 ) 57 ENDIF() 58 59 IF(NOT LUA_LIBS AND PKG_CONFIG) 60 EXECUTE_PROCESS( 61 COMMAND pkg-config --silence-errors --libs lua5.1 62 OUTPUT_VARIABLE LUA_LIBS 63 OUTPUT_STRIP_TRAILING_WHITESPACE 64 ) 65 ENDIF() 66 67 IF(NOT LUA_LIBS) 68 SET(LUA_LIBS "lua") 69 ENDIF() 70 71 SET(PLUGINS ${PLUGINS} uhttpd_lua) 72 ADD_DEFINITIONS(-DHAVE_LUA ${LUA_CFLAGS}) 73 ADD_LIBRARY(uhttpd_lua MODULE lua.c) 74 TARGET_LINK_LIBRARIES(uhttpd_lua ${LUA_LIBS} m dl) 75 ENDIF() 76 77 IF(UCODE_SUPPORT) 78 SET(PLUGINS ${PLUGINS} uhttpd_ucode) 79 ADD_DEFINITIONS(-DHAVE_UCODE) 80 ADD_LIBRARY(uhttpd_ucode MODULE ucode.c) 81 TARGET_LINK_LIBRARIES(uhttpd_ucode ucode ${libjson}) 82 ENDIF() 83 84 IF(UBUS_SUPPORT) 85 FIND_LIBRARY(ubus NAMES ubus) 86 SET(PLUGINS ${PLUGINS} uhttpd_ubus) 87 ADD_DEFINITIONS(-DHAVE_UBUS) 88 ADD_LIBRARY(uhttpd_ubus MODULE ubus.c) 89 TARGET_LINK_LIBRARIES(uhttpd_ubus ${ubus} ${ubox} ${blobmsg_json} ${libjson}) 90 ENDIF() 91 92 IF(PLUGINS) 93 SET_TARGET_PROPERTIES(${PLUGINS} PROPERTIES 94 PREFIX "" 95 ) 96 ENDIF() 97 98 INSTALL(TARGETS uhttpd ${PLUGINS} 99 RUNTIME DESTINATION bin 100 LIBRARY DESTINATION lib 101 )
This page was automatically generated by LXR 0.3.1. • OpenWrt