X-Git-Url: http://git.archive.openwrt.org/?a=blobdiff_plain;ds=sidebyside;f=CMakeLists.txt;h=4cef7d6ab67558191e451c9c77e60d6173ecef90;hb=967d815022082a63e1489b5eda5e7a9d7a9d5e82;hp=8ac46437f4a1bc23c0d53287c06ea4195340fb11;hpb=a86ef267a4fb8ce72477a916952bc69ff68d63d4;p=project%2Frpcd.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 8ac4643..4cef7d6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,13 @@ cmake_minimum_required(VERSION 2.6) -PROJECT(luci-rpcd C) +INCLUDE(CheckFunctionExists) + +PROJECT(rpcd C) ADD_DEFINITIONS(-Os -Wall -Werror --std=gnu99 -g3 -Wmissing-declarations) +INCLUDE_DIRECTORIES(include) + +OPTION(FILE_SUPPORT "File plugin support" ON) +OPTION(IWINFO_SUPPORT "libiwinfo plugin support" ON) SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") @@ -10,11 +16,37 @@ IF(APPLE) LINK_DIRECTORIES(/opt/local/lib) ENDIF() -ADD_EXECUTABLE(luci-rpcd main.c exec.c session.c file.c uci.c iwinfo.c luci2.c plugin.c) -TARGET_LINK_LIBRARIES(luci-rpcd ubox ubus uci iwinfo blobmsg_json) +CHECK_FUNCTION_EXISTS(getspnam HAVE_SHADOW) +IF(HAVE_SHADOW) + ADD_DEFINITIONS(-DHAVE_SHADOW) +ENDIF() + +FIND_LIBRARY(json NAMES json-c json) +FIND_LIBRARY(crypt NAMES crypt) +IF(crypt STREQUAL "LIBS-NOTFOUND") + SET(crypt "") +ENDIF() + +ADD_EXECUTABLE(rpcd main.c exec.c session.c uci.c plugin.c) +TARGET_LINK_LIBRARIES(rpcd ubox ubus uci dl blobmsg_json ${json} ${crypt}) + +SET(PLUGINS "") -SET(CMAKE_INSTALL_PREFIX /usr) +IF(FILE_SUPPORT) + SET(PLUGINS ${PLUGINS} file_plugin) + ADD_LIBRARY(file_plugin MODULE file.c) + TARGET_LINK_LIBRARIES(file_plugin ubox ubus) + SET_TARGET_PROPERTIES(file_plugin PROPERTIES OUTPUT_NAME file PREFIX "") +ENDIF() + +IF (IWINFO_SUPPORT) + SET(PLUGINS ${PLUGINS} iwinfo_plugin) + ADD_LIBRARY(iwinfo_plugin MODULE iwinfo.c) + TARGET_LINK_LIBRARIES(iwinfo_plugin ubox ubus iwinfo) + SET_TARGET_PROPERTIES(iwinfo_plugin PROPERTIES OUTPUT_NAME iwinfo PREFIX "") +ENDIF() -INSTALL(TARGETS luci-rpcd +INSTALL(TARGETS rpcd ${PLUGINS} RUNTIME DESTINATION sbin + LIBRARY DESTINATION lib )