fix prefix lookup
[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 OPTION(UBUS_SUPPORT "ubus support" ON)
10
11 IF(APPLE)
12   INCLUDE_DIRECTORIES(/opt/local/include)
13   LINK_DIRECTORIES(/opt/local/lib)
14 ENDIF()
15
16 FIND_LIBRARY(LIBS crypt)
17 IF(LIBS STREQUAL "LIBS-NOTFOUND")
18         SET(LIBS "")
19 ENDIF()
20
21 SET(SOURCES main.c listen.c client.c utils.c file.c auth.c cgi.c relay.c proc.c plugin.c)
22 IF(TLS_SUPPORT)
23         SET(SOURCES ${SOURCES} tls.c)
24         ADD_DEFINITIONS(-DHAVE_TLS)
25 ENDIF()
26
27 ADD_EXECUTABLE(uhttpd ${SOURCES})
28 TARGET_LINK_LIBRARIES(uhttpd ubox dl ${LIBS})
29
30 SET(PLUGINS "")
31 IF(LUA_SUPPORT)
32         FIND_PROGRAM(PKG_CONFIG pkg-config)
33
34         IF(NOT LUA_CFLAGS AND PKG_CONFIG)
35                 EXECUTE_PROCESS(
36                         COMMAND pkg-config --silence-errors --cflags lua5.1
37                         OUTPUT_VARIABLE LUA_CFLAGS
38                         OUTPUT_STRIP_TRAILING_WHITESPACE
39                 )
40         ENDIF()
41
42         IF(NOT LUA_LIBS AND PKG_CONFIG)
43                 EXECUTE_PROCESS(
44                         COMMAND pkg-config --silence-errors --libs lua5.1
45                         OUTPUT_VARIABLE LUA_LIBS
46                         OUTPUT_STRIP_TRAILING_WHITESPACE
47                 )
48         ENDIF()
49
50         IF(NOT LUA_LIBS)
51                 SET(LUA_LIBS "lua")
52         ENDIF()
53
54         SET(PLUGINS ${PLUGINS} uhttpd_lua)
55         ADD_DEFINITIONS(-DHAVE_LUA ${LUA_CFLAGS})
56         ADD_LIBRARY(uhttpd_lua MODULE lua.c)
57         TARGET_LINK_LIBRARIES(uhttpd_lua ${LUA_LIBS} m dl)
58 ENDIF()
59
60 IF(UBUS_SUPPORT)
61         SET(PLUGINS ${PLUGINS} uhttpd_ubus)
62         ADD_DEFINITIONS(-DHAVE_UBUS)
63         ADD_LIBRARY(uhttpd_ubus MODULE ubus.c)
64         TARGET_LINK_LIBRARIES(uhttpd_ubus ubus ubox blobmsg_json json)
65 ENDIF()
66
67 IF(PLUGINS)
68         SET_TARGET_PROPERTIES(${PLUGINS} PROPERTIES
69                 PREFIX ""
70         )
71 ENDIF()
72
73 INSTALL(TARGETS uhttpd ${PLUGINS}
74         RUNTIME DESTINATION bin
75         LIBRARY DESTINATION lib
76 )