diff --git a/CMakeLists.txt b/CMakeLists.txt index 6c3ed78..91b0b1c 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,6 +51,7 @@ endif() ## LuaNativeObjects include(LuaNativeObjects) +include(CustomMacros) include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} @@ -79,8 +80,8 @@ endif() add_library(lua-zmq MODULE ${LUA_ZMQ_SRC}) target_link_libraries(lua-zmq ${COMMON_LIBS}) set_target_properties(lua-zmq PROPERTIES PREFIX "") -set_target_properties(lua-zmq PROPERTIES COMPILE_FLAGS "${COMMON_CFLAGS}") -set_target_properties(lua-zmq PROPERTIES LINK_FLAGS "${COMMON_LDFLAGS}") +add_target_properties(lua-zmq COMPILE_FLAGS "${COMMON_CFLAGS}") +add_target_properties(lua-zmq LINK_FLAGS "${LD_FLAGS} ${COMMON_LDFLAGS}") set_target_properties(lua-zmq PROPERTIES OUTPUT_NAME zmq) install(TARGETS lua-zmq diff --git a/cmake/CustomMacros.cmake b/cmake/CustomMacros.cmake new file mode 100644 index 0000000..312eeff --- /dev/null +++ b/cmake/CustomMacros.cmake @@ -0,0 +1,61 @@ +## Orignal Macros copied from lighttpd 2.0 + +## modules are without the "lib" prefix + +macro(setup_static_modules TARGET) + file(WRITE ${TARGET}_builtins.h "/* auto-generated by CMake build do not edit */\n\n") +endmacro(setup_static_modules) + +macro(add_module TARGET MODNAME) + set(_static_mod ${BUILD_STATIC}) + + ## create list of module source files. + set(_srcfiles) + set(_def_module_src ${CMAKE_CURRENT_SOURCE_DIR}/modules/${MODNAME}.c) + if(EXISTS ${_def_module_src}) + set(_srcfiles ${_def_module_src}) + endif(EXISTS ${_def_module_src}) + foreach(_srcfile ${ARGN}) + if(_srcfile STREQUAL "STATIC") + set(_static_mod TRUE) + else(_srcfile STREQUAL "STATIC") + set(_srcfiles ${_srcfiles} ${_srcfile}) + endif(_srcfile STREQUAL "STATIC") + endforeach(_srcfile) + + if(_static_mod) + set(STATIC_MODULE_SRC ${STATIC_MODULE_SRC} ${_srcfiles}) + file(APPEND ${TARGET}_builtins.h "STATIC_MOD(${MODNAME})\n") + else(_static_mod) + add_library(${MODNAME} MODULE ${_srcfiles}) + set(MODULE_TARGETS ${MODULE_TARGETS} ${MODNAME}) + + add_target_properties(${MODNAME} LINK_FLAGS ${COMMON_LDFLAGS}) + add_target_properties(${MODNAME} COMPILE_FLAGS ${COMMON_CFLAGS}) + set_target_properties(${MODNAME} PROPERTIES CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) + + ## Windows likes to link it this way back to app! + if(WIN32) + set_target_properties(${MODNAME} PROPERTIES LINK_FLAGS ${TARGET}.lib) + endif(WIN32) + + if(APPLE) + set_target_properties(${MODNAME} PROPERTIES LINK_FLAGS "-flat_namespace -undefined suppress") + endif(APPLE) + endif(_static_mod) +endmacro(add_module) + +macro(add_target_properties _target _name) + set(_properties) + foreach(_prop ${ARGN}) + set(_properties "${_properties} ${_prop}") + endforeach(_prop) + get_target_property(_old_properties ${_target} ${_name}) + ##message(STATUS "adding property to ${_target} ${_name}:" ${_properties}) + if(NOT _old_properties) + # in case it's NOTFOUND + set(_old_properties) + endif(NOT _old_properties) + set_target_properties(${_target} PROPERTIES ${_name} "${_old_properties} ${_properties}") +endmacro(add_target_properties) +