Tizen 2.1 base
[external/libzypp-bindings.git] / swig / ruby / CMakeLists.txt
1 #
2 # CMakeLists.txt for libzypp-bindings/swig/ruby
3 #
4
5 ENABLE_TESTING()
6 ADD_SUBDIRECTORY(tests)
7
8 # SWIG_OUPUT is per-target
9
10 SET( SWIG_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/libzypp_ruby.cc" )
11
12 MESSAGE(STATUS "Ruby executable: ${RUBY_EXECUTABLE}")
13 MESSAGE(STATUS "Ruby vendor arch dir: ${RUBY_VENDORARCH_DIR}")
14 MESSAGE(STATUS "Ruby include path: ${RUBY_INCLUDE_PATH}")
15
16 ADD_CUSTOM_COMMAND (
17    OUTPUT  "${SWIG_OUTPUT}"
18    COMMAND ${CMAKE_COMMAND} -E echo_append "Creating wrapper code for Ruby..."
19    COMMAND ${SWIG_EXECUTABLE} ${SWIG_DEFINITIONS} -c++ -ruby -o ${SWIG_OUTPUT} -I${ZYPP_INCLUDE_DIR} ${SWIG_INPUT}
20    COMMAND ${CMAKE_COMMAND} -E echo "Done."
21    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
22    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../*.i ${CMAKE_CURRENT_SOURCE_DIR}/../*.h ${CMAKE_CURRENT_SOURCE_DIR}/*.i
23 )
24
25 ADD_LIBRARY( zypp_ruby SHARED ${SWIG_OUTPUT} )
26
27 # name it 'zypp.so'
28 #  and don't prefix with 'lib'
29 SET_TARGET_PROPERTIES( zypp_ruby PROPERTIES OUTPUT_NAME "zypp" PREFIX "" )
30
31 INCLUDE_DIRECTORIES( ${RUBY_INCLUDE_PATH} )
32 INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/swig )
33 INCLUDE_DIRECTORIES( ${ZYPP_INCLUDE_DIR} )
34
35 TARGET_LINK_LIBRARIES( zypp_ruby ${RUBY_LIBRARY} )
36 TARGET_LINK_LIBRARIES( zypp_ruby ${ZYPP_LIBRARY} )
37
38 INSTALL(TARGETS zypp_ruby LIBRARY DESTINATION ${RUBY_VENDORARCH_DIR})
39
40 #
41 # Generate HTML documentation with rdoc
42 #
43 # This requires rdoc-swig from https://github.com/kkaempf/rdoc-swig
44 #
45
46 IF(EXISTS ${CMAKE_SOURCE_DIR}/swig/ruby/rdoc)
47 SET(rdoc_dir "${CMAKE_CURRENT_BINARY_DIR}/html")
48 ADD_CUSTOM_COMMAND (
49    OUTPUT ${rdoc_dir}
50    COMMAND ${CMAKE_COMMAND} -E echo_append "Creating rdoc documentation ..."
51    COMMAND rm -rf ${rdoc_dir}
52    COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/rdoc -o ${rdoc_dir} zypp.i *.i ruby/*.i
53    COMMAND ${CMAKE_COMMAND} -E echo "Done."
54    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/swig
55    DEPENDS ${CMAKE_SOURCE_DIR}/swig/*.i ${CMAKE_SOURCE_DIR}/swig/ruby/*.rb ${CMAKE_SOURCE_DIR}/swig/ruby/*.i
56 )
57 ADD_CUSTOM_TARGET(ruby_rdoc ALL DEPENDS "${rdoc_dir}")
58 ENDIF(EXISTS ${CMAKE_SOURCE_DIR}/swig/ruby/rdoc)
59
60 #
61 # Leave this to %doc in the .spec file
62 #INSTALL(DIRECTORY "${rdoc_dir}" DESTINATION ${DOC_INSTALL_DIR})