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