# # CMakeLists.txt for libzypp-bindings/swig/perl5 # # !!Attn!!: This creates two files # 1. zypp.so # 2. zypp.pm # and the .pm file gets loaded. # ENABLE_TESTING() ADD_SUBDIRECTORY(tests) # SWIG_OUPUT is per-target SET( SWIG_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/libzypp_perl.cc" ) EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print \$Config{cppflags}" OUTPUT_VARIABLE PERL_CXXFLAGS) EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print \$Config{archlib}.\"/CORE\"" OUTPUT_VARIABLE PERL_CORE_DIR) EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print \$Config{installvendorarch}" OUTPUT_VARIABLE PERL_VENDOR_ARCH) EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print \$Config{installvendorlib}" OUTPUT_VARIABLE PERL_VENDOR_LIB) EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print \$Config{ccdlflags}" OUTPUT_VARIABLE PERL_LINK_FLAGS) MESSAGE(STATUS "Perl executable: ${PERL_EXECUTABLE}") MESSAGE(STATUS "Perl core dir: ${PERL_CORE_DIR}") MESSAGE(STATUS "Perl vendor arch dir: ${PERL_VENDORDIR}") ADD_DEFINITIONS( ${PERL_CXXFLAGS} -Wno-unused -Wno-error ) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${PERL_CXXFLAGS}") LINK_DIRECTORIES( ${PERL_CORE_DIR} ) if(COMMAND cmake_policy) cmake_policy(SET CMP0003 NEW) endif(COMMAND cmake_policy) ADD_CUSTOM_COMMAND ( OUTPUT ${SWIG_OUTPUT} COMMAND ${CMAKE_COMMAND} -E echo_append "Creating wrapper code for perl..." COMMAND ${SWIG_EXECUTABLE} ${SWIG_DEFINITIONS} -c++ -perl5 -o ${SWIG_OUTPUT} -I${ZYPP_INCLUDE_DIR} ${SWIG_INPUT} COMMAND ${CMAKE_COMMAND} -E echo "Done." WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../*.i ${CMAKE_CURRENT_SOURCE_DIR}/../*.h ${CMAKE_CURRENT_SOURCE_DIR}/*.i ) ADD_LIBRARY( zypp_perl SHARED ${SWIG_OUTPUT} ) SET_TARGET_PROPERTIES( zypp_perl PROPERTIES PREFIX "" OUTPUT_NAME zypp ) INCLUDE_DIRECTORIES( ${PERL_CORE_DIR} ) INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/swig ) INCLUDE_DIRECTORIES( ${ZYPP_INCLUDE_DIR} ) TARGET_LINK_LIBRARIES( zypp_perl ${ZYPP_LIBRARY} ) INSTALL(TARGETS zypp_perl LIBRARY DESTINATION ${PERL_VENDOR_ARCH}) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/zypp.pm DESTINATION ${PERL_VENDOR_LIB})