• source navigation  • diff markup  • identifier search  • freetext search  • 

Sources/uhttpd/CMakeLists.txt

  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