CMakeLists.txt 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. cmake_minimum_required(VERSION 2.6)
  2. PROJECT(uci C)
  3. SET(CMAKE_INSTALL_PREFIX /)
  4. IF(NOT LUA_CFLAGS)
  5. FIND_PROGRAM(PKG_CONFIG pkg-config)
  6. IF(PKG_CONFIG)
  7. EXECUTE_PROCESS(
  8. COMMAND pkg-config --silence-errors --cflags lua5.1
  9. OUTPUT_VARIABLE LUA_CFLAGS
  10. OUTPUT_STRIP_TRAILING_WHITESPACE
  11. )
  12. ENDIF()
  13. ENDIF()
  14. ADD_DEFINITIONS(-Os -Wall -Werror --std=gnu99 -g3 -I.. ${LUA_CFLAGS})
  15. LINK_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/..)
  16. IF(APPLE)
  17. SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS "${CMAKE_SHARED_MODULE_CREATE_C_FLAGS} -undefined dynamic_lookup")
  18. ENDIF(APPLE)
  19. IF(NOT LUAPATH)
  20. EXECUTE_PROCESS(
  21. COMMAND lua -e "for k in string.gmatch(package.cpath .. \";\", \"([^;]+)/..so;\") do if k:sub(1,1) == \"/\" then print(k) break end end"
  22. OUTPUT_VARIABLE LUAPATH
  23. RESULT_VARIABLE LUA_CHECK_RES
  24. OUTPUT_STRIP_TRAILING_WHITESPACE
  25. )
  26. IF(BUILD_LUA)
  27. IF(NOT ${LUA_CHECK_RES} EQUAL 0 OR ${LUAPATH} EQUAL "")
  28. MESSAGE(SEND_ERROR "Lua was not found on your system")
  29. ENDIF()
  30. ENDIF()
  31. ENDIF()
  32. IF(BUILD_LUA)
  33. ADD_LIBRARY(uci_lua MODULE uci.c)
  34. SET_TARGET_PROPERTIES(uci_lua PROPERTIES
  35. OUTPUT_NAME uci
  36. PREFIX ""
  37. )
  38. TARGET_LINK_LIBRARIES(uci_lua uci dl)
  39. INSTALL(TARGETS uci_lua
  40. LIBRARY DESTINATION ${LUAPATH}
  41. )
  42. ENDIF()