LighttpdMacros.cmake 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. ## our modules are without the "lib" prefix
  2. macro(ADD_AND_INSTALL_LIBRARY LIBNAME SRCFILES)
  3. if(BUILD_STATIC)
  4. add_library(${LIBNAME} STATIC ${SRCFILES})
  5. target_link_libraries(lighttpd ${LIBNAME})
  6. else()
  7. if(APPLE)
  8. add_library(${LIBNAME} MODULE ${SRCFILES})
  9. else()
  10. add_library(${LIBNAME} SHARED ${SRCFILES})
  11. endif()
  12. set(L_INSTALL_TARGETS ${L_INSTALL_TARGETS} ${LIBNAME})
  13. ## Windows likes to link it this way back to app!
  14. if(WIN32)
  15. set_target_properties(${LIBNAME} PROPERTIES LINK_FLAGS lighttpd.lib)
  16. endif()
  17. if(APPLE)
  18. set_target_properties(${LIBNAME} PROPERTIES LINK_FLAGS "-flat_namespace -undefined suppress")
  19. endif()
  20. endif()
  21. endmacro(ADD_AND_INSTALL_LIBRARY)
  22. macro(LEMON_PARSER SRCFILE)
  23. get_filename_component(SRCBASE ${SRCFILE} NAME_WE)
  24. add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${SRCBASE}.c ${CMAKE_CURRENT_BINARY_DIR}/${SRCBASE}.h
  25. COMMAND ${CMAKE_CURRENT_BINARY_DIR}/lemon
  26. ARGS -q ${CMAKE_CURRENT_SOURCE_DIR}/${SRCFILE} ${CMAKE_CURRENT_SOURCE_DIR}/lempar.c
  27. DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/lemon ${CMAKE_CURRENT_SOURCE_DIR}/${SRCFILE} ${CMAKE_CURRENT_SOURCE_DIR}/lempar.c
  28. COMMENT "Generating ${SRCBASE}.c from ${SRCFILE}"
  29. )
  30. endmacro(LEMON_PARSER)
  31. macro(ADD_TARGET_PROPERTIES _target _name)
  32. set(_properties)
  33. foreach(_prop ${ARGN})
  34. set(_properties "${_properties} ${_prop}")
  35. endforeach()
  36. get_target_property(_old_properties ${_target} ${_name})
  37. message("adding property to ${_target} ${_name}:" ${_properties})
  38. if(NOT _old_properties)
  39. # in case it's NOTFOUND
  40. set(_old_properties)
  41. endif()
  42. set_target_properties(${_target} PROPERTIES ${_name} "${_old_properties} ${_properties}")
  43. endmacro(ADD_TARGET_PROPERTIES)