[zypp-commit] r8160 - in /trunk/sat-solver/bindings: CMakeLists.txt python/CMakeLists.txt python/tests/ python/tests/loading.py ruby/CMakeLists.txt satsolver.i
Author: kkaempf Date: Fri Dec 28 22:30:12 2007 New Revision: 8160 URL: http://svn.opensuse.org/viewcvs/zypp?rev=8160&view=rev Log: Add Python bindings - all 'each' functions in satsolver.i are Ruby only - add indexed accessor functions as needed - add loading test for Python Added: trunk/sat-solver/bindings/python/tests/ trunk/sat-solver/bindings/python/tests/loading.py Modified: trunk/sat-solver/bindings/CMakeLists.txt trunk/sat-solver/bindings/python/CMakeLists.txt trunk/sat-solver/bindings/ruby/CMakeLists.txt trunk/sat-solver/bindings/satsolver.i Modified: trunk/sat-solver/bindings/CMakeLists.txt URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/bindings/CMakeLists.txt?rev=8160&r1=8159&r2=8160&view=diff ============================================================================== --- trunk/sat-solver/bindings/CMakeLists.txt (original) +++ trunk/sat-solver/bindings/CMakeLists.txt Fri Dec 28 22:30:12 2007 @@ -1,10 +1,11 @@ +FIND_PACKAGE(SWIG) FIND_PACKAGE(Ruby) -#FIND_PACKAGE(Python) +FIND_PACKAGE(PythonLibs) IF (RUBY_LIBRARY AND RUBY_INCLUDE_PATH) ADD_SUBDIRECTORY(ruby) ENDIF(RUBY_LIBRARY AND RUBY_INCLUDE_PATH) -#IF (PYTHON_LIBRARY) -# ADD_SUBDIRECTORY(python) -#ENDIF(PYTHON_LIBRARY) +IF (PYTHON_LIBRARY) + ADD_SUBDIRECTORY(python) +ENDIF(PYTHON_LIBRARY) Modified: trunk/sat-solver/bindings/python/CMakeLists.txt URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/bindings/python/CMakeLists.txt?rev=8160&r1=8159&r2=8160&view=diff ============================================================================== --- trunk/sat-solver/bindings/python/CMakeLists.txt (original) +++ trunk/sat-solver/bindings/python/CMakeLists.txt Fri Dec 28 22:30:12 2007 @@ -1,11 +1,10 @@ ADD_SUBDIRECTORY(tests) -INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/tools") - EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c 'import sys; print sys.path[2]' OUTPUT_VARIABLE PYTHON_LIB_DIR) MESSAGE(STATUS "Python executable: ${PYTHON_EXECUTABLE}") MESSAGE(STATUS "Python lib dir: ${PYTHON_LIB_DIR}") +MESSAGE(STATUS "Python site dir: ${PYTHON_LIB_DIR}/site-packages") SET( SWIG_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/libsatsolver_wrap.c" ) SET( SWIG_INPUT "${CMAKE_CURRENT_SOURCE_DIR}/satsolver.i" ) @@ -13,7 +12,7 @@ ADD_CUSTOM_COMMAND ( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/libsatsolver_wrap.c COMMAND ${CMAKE_COMMAND} -E echo_append "Creating wrapper code for Python ..." - COMMAND ${SWIG_EXECUTABLE} -python -autorename -o ${CMAKE_CURRENT_BINARY_DIR}/libsatsolver_wrap.c -I${CMAKE_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/../satsolver.i + COMMAND ${SWIG_EXECUTABLE} -python -o ${CMAKE_CURRENT_BINARY_DIR}/libsatsolver_wrap.c -I${CMAKE_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/../satsolver.i COMMAND ${CMAKE_COMMAND} -E echo "Done." WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../*.i @@ -23,15 +22,17 @@ DEPENDS ${SWIG_OUTPUT} ) -SET(satsolverx_SRCS "${CMAKE_CURRENT_BINARY_DIR}/libsatsolver_wrap.c" ) -ADD_LIBRARY( satsolverx SHARED "${satsolverx_SRCS}" ) -SET_TARGET_PROPERTIES( satsolverx PROPERTIES PREFIX "" ) -ADD_DEPENDENCIES( satsolverx glue ) - -#INCLUDE_DIRECTORIES( ${RUBY_INCLUDE_PATH} ) -TARGET_LINK_LIBRARIES( satsolverx satsolver ) -TARGET_LINK_LIBRARIES( satsolverx ${PYTHON_LIBRARY} ) - -INSTALL(TARGETS satsolverx LIBRARY DESTINATION ${PYTHON_LIB_DIR}/site-packages) -CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/satsolver.py ${CMAKE_CURRENT_BINARY_DIR}/satsolver.py COPYONLY ) -INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/satsolver.py DESTINATION ${PYTHON_LIB_DIR}/site-packages ) +SET(satsolverx_SRCS "${CMAKE_CURRENT_BINARY_DIR}/libsatsolver_wrap.c" "${CMAKE_SOURCE_DIR}/tools/repo_rpmdb.c" ) +ADD_LIBRARY( _satsolverx SHARED ${satsolverx_SRCS} ) +SET_TARGET_PROPERTIES( _satsolverx PROPERTIES PREFIX "" ) +ADD_DEPENDENCIES( _satsolverx glue ) + +INCLUDE_DIRECTORIES( ${PYTHON_INCLUDE_PATH} ${CMAKE_SOURCE_DIR}/tools ) + +TARGET_LINK_LIBRARIES( _satsolverx satsolver ) +TARGET_LINK_LIBRARIES( _satsolverx ${PYTHON_LIBRARIES} ) +TARGET_LINK_LIBRARIES( _satsolverx ${DB43_LIBRARY} ) + +INSTALL(TARGETS _satsolverx LIBRARY DESTINATION ${PYTHON_LIB_DIR}/site-packages) + +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/satsolverx.py DESTINATION ${PYTHON_LIB_DIR}/site-packages ) Added: trunk/sat-solver/bindings/python/tests/loading.py URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/bindings/python/tests/loading.py?rev=8160&view=auto ============================================================================== --- trunk/sat-solver/bindings/python/tests/loading.py (added) +++ trunk/sat-solver/bindings/python/tests/loading.py Fri Dec 28 22:30:12 2007 @@ -0,0 +1,3 @@ +import sys +sys.path.append('../../../build/bindings/python') +import satsolverx \ No newline at end of file Modified: trunk/sat-solver/bindings/ruby/CMakeLists.txt URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/bindings/ruby/CMakeLists.txt?rev=8160&r1=8159&r2=8160&view=diff ============================================================================== --- trunk/sat-solver/bindings/ruby/CMakeLists.txt (original) +++ trunk/sat-solver/bindings/ruby/CMakeLists.txt Fri Dec 28 22:30:12 2007 @@ -11,7 +11,7 @@ ADD_CUSTOM_COMMAND ( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/libsatsolver_wrap.c - COMMAND ${CMAKE_COMMAND} -E echo_append "Creating wrapper code for ruby..." + COMMAND ${CMAKE_COMMAND} -E echo_append "Creating wrapper code for Ruby..." COMMAND ${SWIG_EXECUTABLE} -ruby -autorename -o ${CMAKE_CURRENT_BINARY_DIR}/libsatsolver_wrap.c -I${CMAKE_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/../satsolver.i COMMAND ${CMAKE_COMMAND} -E echo "Done." WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} @@ -22,12 +22,13 @@ DEPENDS ${SWIG_OUTPUT} ) -SET(satsolverx_SRCS "${CMAKE_CURRENT_BINARY_DIR}/libsatsolver_wrap.c" "${CMAKE_SOURCE_DIR}/tools/repo_rpmdb.c" ) +SET(satsolverx_SRCS "${CMAKE_CURRENT_BINARY_DIR}/libsatsolver_wrap.c" "${CMAKE_SOURCE_DIR}/tools/repo_rpmdb.c" ) ADD_LIBRARY( satsolverx SHARED ${satsolverx_SRCS} ) SET_TARGET_PROPERTIES( satsolverx PROPERTIES PREFIX "" ) ADD_DEPENDENCIES( satsolverx glue ) INCLUDE_DIRECTORIES( ${RUBY_INCLUDE_PATH} ${CMAKE_SOURCE_DIR}/tools ) + TARGET_LINK_LIBRARIES( satsolverx satsolver ) TARGET_LINK_LIBRARIES( satsolverx ${RUBY_LIBRARY} ) TARGET_LINK_LIBRARIES( satsolverx ${DB43_LIBRARY} ) Modified: trunk/sat-solver/bindings/satsolver.i URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/bindings/satsolver.i?rev=8160&r1=8159&r2=8160&view=diff ============================================================================== --- trunk/sat-solver/bindings/satsolver.i (original) +++ trunk/sat-solver/bindings/satsolver.i Fri Dec 28 22:30:12 2007 @@ -2,8 +2,10 @@ %{ +#if defined(SWIGRUBY) #include "ruby.h" #include "rubyio.h" +#endif #include "policy.h" #include "bitmap.h" #include "evr.h" @@ -694,6 +696,17 @@ void clear() { queue_empty( &($self->queue) ); } + Action *get_action( unsigned int i ) + { + i <<= 1; + int size = $self->queue.count; + if (i-1 >= size) return NULL; + int cmd = $self->queue.elements[i]; + Id id = $self->queue.elements[i+1]; + return action_new( cmd, id ); + } + +#if defined(SWIGRUBY) void each() { int i; @@ -703,7 +716,7 @@ rb_yield(SWIG_NewPointerObj((void*) action_new( cmd, id ), SWIGTYPE_p__Action, 0)); } } - +#endif } /*-------------------------------------------------------------*/ @@ -764,6 +777,7 @@ void print_decisions() { printdecisions( $self ); } +#if defined(SWIGRUBY) void each_to_install() { Id p; @@ -801,6 +815,7 @@ rb_yield(SWIG_NewPointerObj((void*) s, SWIGTYPE_p__Solvable, 0)); } } +#endif }; -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org
participants (1)
-
kkaempf@svn.opensuse.org