blob: ff4d8f0a9fcf83309bfab24d3ff95e41a352c32d [file] [log] [blame]
#
# CMakeLists.txt for openwsman/src/plugins/swig/ruby
#
enable_testing()
ADD_SUBDIRECTORY(tests)
# prefer vendor dirs
SET(RUBY_WSMAN_LIB_DIR ${RUBY_VENDORLIB_DIR})
SET(RUBY_WSMAN_ARCH_DIR ${RUBY_VENDORARCH_DIR})
SET( SWIG_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/swig_wrap.c" )
SET( SWIG_INPUT "${CMAKE_CURRENT_SOURCE_DIR}/../plugin.i" )
ADD_CUSTOM_COMMAND (
OUTPUT ${SWIG_OUTPUT}
COMMAND ${CMAKE_COMMAND} -E echo_append "Creating wrapper code for ruby..."
COMMAND ${SWIG_EXECUTABLE} -ruby -autorename -I${CMAKE_SOURCE_DIR}/include -I${CMAKE_SOURCE_DIR}/bindings -o ${SWIG_OUTPUT} ${SWIG_INPUT}
COMMAND ${CMAKE_COMMAND} -E echo "Done."
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../*.i
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../src/*.c
DEPENDS ${CMAKE_SOURCE_DIR}/bindings/*.i
)
SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" )
INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR}/../src )
# wsman_config.h is generated
INCLUDE_DIRECTORIES( ${CMAKE_BINARY_DIR} )
# all other wsman includes
INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/include )
INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/bindings )
INCLUDE_DIRECTORIES( ${RUBY_INCLUDE_PATH} )
INCLUDE_DIRECTORIES( ${RUBY_INCLUDE_PATH}/${RUBY_ARCH} )
ADD_DEFINITIONS(-DTARGET_RUBY)
#
# libwsman_ruby_plugin.so
#
SET( NAME wsman_ruby_plugin )
ADD_LIBRARY( ${NAME} SHARED ${SWIG_OUTPUT})
TARGET_LINK_LIBRARIES( ${NAME} ${RUBY_LIBRARY} )
TARGET_LINK_LIBRARIES( ${NAME} pthread )
INSTALL(TARGETS ${NAME} LIBRARY DESTINATION ${PACKAGE_PLUGIN_DIR})
#
# openwsmanplugin.rb: plugin implementation
#
INSTALL(FILES openwsmanplugin.rb DESTINATION ${RUBY_WSMAN_LIB_DIR})