cmake_minimum_required(VERSION 2.6) PROJECT(ubus C) SET(CMAKE_INSTALL_PREFIX /) IF(NOT LUA_CFLAGS) FIND_PROGRAM(PKG_CONFIG pkg-config) IF(PKG_CONFIG) EXECUTE_PROCESS( COMMAND pkg-config --silence-errors --cflags lua5.1 OUTPUT_VARIABLE LUA_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE ) ENDIF() ENDIF() ADD_DEFINITIONS(-Os -Wall -Werror --std=gnu99 -g3 -I.. ${LUA_CFLAGS}) LINK_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/..) IF(APPLE) SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS "${CMAKE_SHARED_MODULE_CREATE_C_FLAGS} -undefined dynamic_lookup") ENDIF(APPLE) IF(NOT LUAPATH) EXECUTE_PROCESS( COMMAND lua -e "for k in string.gmatch(package.cpath .. \";\", \"([^;]+)/..so;\") do if k:sub(1,1) == \"/\" then print(k) break end end" OUTPUT_VARIABLE LUAPATH RESULT_VARIABLE LUA_CHECK_RES OUTPUT_STRIP_TRAILING_WHITESPACE ) IF(BUILD_LUA) IF(NOT ${LUA_CHECK_RES} EQUAL 0 OR "${LUAPATH}" EQUAL "") MESSAGE(SEND_ERROR "Lua was not found on your system") ENDIF() ENDIF() ENDIF() IF(BUILD_LUA) ADD_LIBRARY(ubus_lua MODULE ubus.c) SET_TARGET_PROPERTIES(ubus_lua PROPERTIES OUTPUT_NAME ubus PREFIX "" ) TARGET_LINK_LIBRARIES(ubus_lua ubus) INSTALL(TARGETS ubus_lua LIBRARY DESTINATION ${LUAPATH} ) ENDIF()