Tizen 2.1 base
[external/libzypp-bindings.git] / swig / perl5 / CMakeLists.txt
1 #
2 # CMakeLists.txt for libzypp-bindings/swig/perl5
3 #
4 # !!Attn!!: This creates two files
5 #  1. zypp.so
6 #  2. zypp.pm
7 # and the .pm file gets loaded.
8 #
9
10 ENABLE_TESTING()
11 ADD_SUBDIRECTORY(tests)
12
13 # SWIG_OUPUT is per-target
14 SET( SWIG_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/libzypp_perl.cc" )
15
16 EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print \$Config{cppflags}" OUTPUT_VARIABLE PERL_CXXFLAGS)
17 EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print \$Config{archlib}.\"/CORE\"" OUTPUT_VARIABLE PERL_CORE_DIR)
18 EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print \$Config{installvendorarch}" OUTPUT_VARIABLE PERL_VENDOR_ARCH)
19 EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print \$Config{installvendorlib}" OUTPUT_VARIABLE PERL_VENDOR_LIB)
20 EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print \$Config{ccdlflags}" OUTPUT_VARIABLE PERL_LINK_FLAGS)
21
22 MESSAGE(STATUS "Perl executable: ${PERL_EXECUTABLE}")
23 MESSAGE(STATUS "Perl core dir: ${PERL_CORE_DIR}")
24 MESSAGE(STATUS "Perl vendor arch dir: ${PERL_VENDORDIR}")
25
26 ADD_DEFINITIONS( ${PERL_CXXFLAGS} -Wno-unused -Wno-error )
27 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${PERL_CXXFLAGS}")
28
29 LINK_DIRECTORIES( ${PERL_CORE_DIR} )
30
31 if(COMMAND cmake_policy)
32   cmake_policy(SET CMP0003 NEW)
33 endif(COMMAND cmake_policy)
34
35 ADD_CUSTOM_COMMAND (
36    OUTPUT  ${SWIG_OUTPUT}
37    COMMAND ${CMAKE_COMMAND} -E echo_append "Creating wrapper code for perl..."
38    COMMAND ${SWIG_EXECUTABLE} ${SWIG_DEFINITIONS} -c++ -perl5 -o ${SWIG_OUTPUT} -I${ZYPP_INCLUDE_DIR} ${SWIG_INPUT}
39    COMMAND ${CMAKE_COMMAND} -E echo "Done."
40    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
41    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../*.i ${CMAKE_CURRENT_SOURCE_DIR}/../*.h ${CMAKE_CURRENT_SOURCE_DIR}/*.i
42 )
43
44 ADD_LIBRARY( zypp_perl SHARED ${SWIG_OUTPUT} )
45 SET_TARGET_PROPERTIES( zypp_perl
46   PROPERTIES
47     PREFIX ""
48     OUTPUT_NAME zypp
49 )
50
51 INCLUDE_DIRECTORIES( ${PERL_CORE_DIR} )
52 INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/swig )
53 INCLUDE_DIRECTORIES( ${ZYPP_INCLUDE_DIR} )
54 TARGET_LINK_LIBRARIES( zypp_perl ${ZYPP_LIBRARY} )
55
56 INSTALL(TARGETS zypp_perl LIBRARY DESTINATION ${PERL_VENDOR_ARCH})
57 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/zypp.pm DESTINATION ${PERL_VENDOR_LIB})