1 cmake_minimum_required(VERSION 2.6)
4 SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
5 ADD_DEFINITIONS(-Os -Wall -Werror -Wmissing-declarations --std=gnu99 -g3)
7 OPTION(TLS_SUPPORT "TLS support" ON)
8 OPTION(LUA_SUPPORT "Lua support" ON)
11 INCLUDE_DIRECTORIES(/opt/local/include)
12 LINK_DIRECTORIES(/opt/local/lib)
15 FIND_LIBRARY(LIBS crypt)
16 IF(LIBS STREQUAL "LIBS-NOTFOUND")
20 SET(SOURCES main.c listen.c client.c utils.c file.c auth.c cgi.c relay.c proc.c plugin.c)
22 SET(SOURCES ${SOURCES} tls.c)
23 ADD_DEFINITIONS(-DHAVE_TLS)
26 ADD_EXECUTABLE(uhttpd ${SOURCES})
27 TARGET_LINK_LIBRARIES(uhttpd ubox dl ${LIBS})
31 FIND_PROGRAM(PKG_CONFIG pkg-config)
33 IF(NOT LUA_CFLAGS AND PKG_CONFIG)
35 COMMAND pkg-config --silence-errors --cflags lua5.1
36 OUTPUT_VARIABLE LUA_CFLAGS
37 OUTPUT_STRIP_TRAILING_WHITESPACE
41 IF(NOT LUA_LIBS AND PKG_CONFIG)
43 COMMAND pkg-config --silence-errors --libs lua5.1
44 OUTPUT_VARIABLE LUA_LIBS
45 OUTPUT_STRIP_TRAILING_WHITESPACE
53 SET(PLUGINS ${PLUGINS} uhttpd_lua)
54 ADD_DEFINITIONS(-DHAVE_LUA ${LUA_CFLAGS})
55 ADD_LIBRARY(uhttpd_lua MODULE lua.c)
56 TARGET_LINK_LIBRARIES(uhttpd_lua ${LUA_LIBS} m dl)
60 SET_TARGET_PROPERTIES(${PLUGINS} PROPERTIES
65 INSTALL(TARGETS uhttpd ${PLUGINS}
66 RUNTIME DESTINATION bin
67 LIBRARY DESTINATION lib