de-constify the url parameter for the handler, it becomes invalid after the request...
[project/uhttpd.git] / CMakeLists.txt
1 cmake_minimum_required(VERSION 2.6)
2
3 PROJECT(uhttpd C)
4 SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
5 ADD_DEFINITIONS(-Os -Wall -Werror -Wmissing-declarations --std=gnu99 -g3)
6
7 OPTION(TLS_SUPPORT "TLS support" ON)
8 OPTION(LUA_SUPPORT "Lua support" ON)
9
10 IF(APPLE)
11   INCLUDE_DIRECTORIES(/opt/local/include)
12   LINK_DIRECTORIES(/opt/local/lib)
13 ENDIF()
14
15 FIND_LIBRARY(LIBS crypt)
16 IF(LIBS STREQUAL "LIBS-NOTFOUND")
17         SET(LIBS "")
18 ENDIF()
19
20 SET(SOURCES main.c listen.c client.c utils.c file.c auth.c cgi.c relay.c proc.c plugin.c)
21 IF(TLS_SUPPORT)
22         SET(SOURCES ${SOURCES} tls.c)
23         ADD_DEFINITIONS(-DHAVE_TLS)
24 ENDIF()
25
26 ADD_EXECUTABLE(uhttpd ${SOURCES})
27 TARGET_LINK_LIBRARIES(uhttpd ubox dl ${LIBS})
28
29 SET(PLUGINS "")
30 IF(LUA_SUPPORT)
31         FIND_PROGRAM(PKG_CONFIG pkg-config)
32
33         IF(NOT LUA_CFLAGS AND PKG_CONFIG)
34                 EXECUTE_PROCESS(
35                         COMMAND pkg-config --silence-errors --cflags lua5.1
36                         OUTPUT_VARIABLE LUA_CFLAGS
37                         OUTPUT_STRIP_TRAILING_WHITESPACE
38                 )
39         ENDIF()
40
41         IF(NOT LUA_LIBS AND PKG_CONFIG)
42                 EXECUTE_PROCESS(
43                         COMMAND pkg-config --silence-errors --libs lua5.1
44                         OUTPUT_VARIABLE LUA_LIBS
45                         OUTPUT_STRIP_TRAILING_WHITESPACE
46                 )
47         ENDIF()
48
49         IF(NOT LUA_LIBS)
50                 SET(LUA_LIBS "lua")
51         ENDIF()
52
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)
57 ENDIF()
58
59 IF(PLUGINS)
60         SET_TARGET_PROPERTIES(${PLUGINS} PROPERTIES
61                 PREFIX ""
62         )
63 ENDIF()
64
65 INSTALL(TARGETS uhttpd ${PLUGINS}
66         RUNTIME DESTINATION bin
67         LIBRARY DESTINATION lib
68 )