Author: kkaempf Date: Wed May 14 18:07:46 2008 New Revision: 10093 URL: http://svn.opensuse.org/viewcvs/zypp?rev=10093&view=rev Log: clean up (and unify) CMakeLists for SWIG bindings Modified: trunk/sat-solver/bindings/CMakeLists.txt trunk/sat-solver/bindings/perl/CMakeLists.txt trunk/sat-solver/bindings/python/CMakeLists.txt trunk/sat-solver/bindings/ruby/CMakeLists.txt Modified: trunk/sat-solver/bindings/CMakeLists.txt URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/bindings/CMakeLists.tx... ============================================================================== --- trunk/sat-solver/bindings/CMakeLists.txt (original) +++ trunk/sat-solver/bindings/CMakeLists.txt Wed May 14 18:07:46 2008 @@ -21,6 +21,9 @@ ADD_SUBDIRECTORY(perl) ENDIF (PERL_EXECUTABLE) -SET( SWIG_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/libsatsolver_wrap.c" ) +# +# Generic setting for all generated bindings +# + +SET( SWIG_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/satsolver_wrap.c" ) SET( SWIG_INPUT "${CMAKE_CURRENT_SOURCE_DIR}/satsolver.i" ) -ADD_DEPENDENCIES( satsolverx "${CMAKE_CURRENT_SOURCE_DIR}/*.i" ) Modified: trunk/sat-solver/bindings/perl/CMakeLists.txt URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/bindings/perl/CMakeLis... ============================================================================== --- trunk/sat-solver/bindings/perl/CMakeLists.txt (original) +++ trunk/sat-solver/bindings/perl/CMakeLists.txt Wed May 14 18:07:46 2008 @@ -9,6 +9,12 @@ ADD_SUBDIRECTORY(tests) +# +# Can't use 'satsolver' here, already taken by src/CMakeLists.txt +# + +SET( binding_NAME "satsolverx" ) + EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print $Config{ccflags}" OUTPUT_VARIABLE PERL_CCFLAGS) 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) @@ -20,39 +26,36 @@ MESSAGE(STATUS "Perl vendor arch dir: ${PERL_VENDOR_ARCH}") MESSAGE(STATUS "Perl vendor lib dir: ${PERL_VENDOR_LIB}") -SET( SWIG_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/libsatsolver_wrap.c" ) -SET( SWIG_INPUT "${CMAKE_CURRENT_SOURCE_DIR}/satsolver.i" ) - ADD_DEFINITIONS( ${PERL_CCFLAGS} -Wno-unused -Wno-error ) LINK_DIRECTORIES( ${PERL_CORE_DIR} ) +if(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) +endif(COMMAND cmake_policy) + + ADD_CUSTOM_COMMAND ( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/libsatsolver_wrap.c + OUTPUT "${SWIG_OUTPUT}" COMMAND ${CMAKE_COMMAND} -E echo_append "Creating wrapper code for Perl ..." - COMMAND ${SWIG_EXECUTABLE} -perl -features autodoc -o ${CMAKE_CURRENT_BINARY_DIR}/libsatsolver_wrap.c ${CMAKE_CURRENT_SOURCE_DIR}/../satsolver.i + COMMAND ${SWIG_EXECUTABLE} -perl -features autodoc -o ${SWIG_OUTPUT} ${SWIG_INPUT} COMMAND ${CMAKE_COMMAND} -E echo "Done." WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../*.i ) -ADD_CUSTOM_TARGET( glue - DEPENDS ${SWIG_OUTPUT} -) -SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall" ) +SET(binding_SRCS ${SWIG_INPUT} "${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 ) +ADD_LIBRARY( ${binding_NAME} SHARED ${binding_SRCS} ) +SET_TARGET_PROPERTIES( ${binding_NAME} PROPERTIES PREFIX "" ) INCLUDE_DIRECTORIES( ${PERL_CORE_DIR} ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/applayer ${CMAKE_SOURCE_DIR}/tools ) -TARGET_LINK_LIBRARIES( satsolverx satsolver ) -TARGET_LINK_LIBRARIES( satsolverx appsatsolver ) -TARGET_LINK_LIBRARIES( satsolverx perl ) -TARGET_LINK_LIBRARIES( satsolverx ${DB43_LIBRARY} ) +TARGET_LINK_LIBRARIES( ${binding_NAME} satsolver ) +TARGET_LINK_LIBRARIES( ${binding_NAME} appsatsolver ) +TARGET_LINK_LIBRARIES( ${binding_NAME} perl ) +TARGET_LINK_LIBRARIES( ${binding_NAME} ${DB43_LIBRARY} ) -INSTALL(TARGETS satsolverx LIBRARY DESTINATION ${PERL_VENDOR_ARCH} ) +INSTALL(TARGETS ${binding_NAME} LIBRARY DESTINATION ${PERL_VENDOR_ARCH} ) -INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/satsolverx.pm DESTINATION ${PERL_VENDOR_LIB} ) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${binding_NAME}.pm DESTINATION ${PERL_VENDOR_LIB} ) Modified: trunk/sat-solver/bindings/python/CMakeLists.txt URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/bindings/python/CMakeL... ============================================================================== --- trunk/sat-solver/bindings/python/CMakeLists.txt (original) +++ trunk/sat-solver/bindings/python/CMakeLists.txt Wed May 14 18:07:46 2008 @@ -2,13 +2,20 @@ # cmake description for satsolver Python bindings # # !!Attn!!: This creates two files -# 1. _satsolverx.so +# 1. ${binding_NAME}.so # 2. satsolverx.py # and the .py file gets imported. See bindings/python/tests. # ADD_SUBDIRECTORY(tests) +# +# Can't use 'satsolver' here, already taken by src/CMakeLists.txt +# + +SET( binding_NAME "_satsolverx" ) + + FIND_PACKAGE(PythonInterp) EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "import sys; sys.stdout.write(sys.path[2])" OUTPUT_VARIABLE PYTHON_LIB_DIR) @@ -16,37 +23,27 @@ 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" ) - ADD_CUSTOM_COMMAND ( - OUTPUT ${SWIG_OUTPUT} + OUTPUT "${SWIG_OUTPUT}" COMMAND ${CMAKE_COMMAND} -E echo_append "Creating wrapper code for Python ..." - COMMAND ${SWIG_EXECUTABLE} -python -features autodoc -o ${CMAKE_CURRENT_BINARY_DIR}/libsatsolver_wrap.c ${CMAKE_CURRENT_SOURCE_DIR}/../satsolver.i + COMMAND ${SWIG_EXECUTABLE} -python -features autodoc -o ${SWIG_OUTPUT} ${SWIG_INPUT} COMMAND ${CMAKE_COMMAND} -E echo "Done." WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../*.i ) -ADD_CUSTOM_TARGET( glue - DEPENDS ${SWIG_OUTPUT} -) - -SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall" ) - +SET(binding_SRCS "${SWIG_OUTPUT}" "${CMAKE_SOURCE_DIR}/tools/repo_rpmdb.c" ) -SET(satsolverx_SRCS "${SWIG_OUTPUT}" "${CMAKE_SOURCE_DIR}/tools/repo_rpmdb.c" ) -ADD_LIBRARY( _satsolverx SHARED ${satsolverx_SRCS} ) -SET_TARGET_PROPERTIES( _satsolverx PROPERTIES PREFIX "" ) -ADD_DEPENDENCIES( _satsolverx glue ) +ADD_LIBRARY( ${binding_NAME} SHARED ${binding_SRCS} ) +SET_TARGET_PROPERTIES( ${binding_NAME} PROPERTIES PREFIX "" ) INCLUDE_DIRECTORIES( ${PYTHON_INCLUDE_PATH} ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/applayer ${CMAKE_SOURCE_DIR}/tools ) -TARGET_LINK_LIBRARIES( _satsolverx satsolver ) -TARGET_LINK_LIBRARIES( _satsolverx appsatsolver ) -TARGET_LINK_LIBRARIES( _satsolverx ${PYTHON_LIBRARIES} ) -TARGET_LINK_LIBRARIES( _satsolverx ${DB43_LIBRARY} ) +TARGET_LINK_LIBRARIES( ${binding_NAME} satsolver ) +TARGET_LINK_LIBRARIES( ${binding_NAME} appsatsolver ) +TARGET_LINK_LIBRARIES( ${binding_NAME} ${PYTHON_LIBRARIES} ) +TARGET_LINK_LIBRARIES( ${binding_NAME} ${DB43_LIBRARY} ) -INSTALL(TARGETS _satsolverx LIBRARY DESTINATION ${PYTHON_LIB_DIR}/site-packages) +INSTALL(TARGETS ${binding_NAME} LIBRARY DESTINATION ${PYTHON_LIB_DIR}/site-packages) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/satsolverx.py DESTINATION ${PYTHON_LIB_DIR}/site-packages ) Modified: trunk/sat-solver/bindings/ruby/CMakeLists.txt URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/bindings/ruby/CMakeLis... ============================================================================== --- trunk/sat-solver/bindings/ruby/CMakeLists.txt (original) +++ trunk/sat-solver/bindings/ruby/CMakeLists.txt Wed May 14 18:07:46 2008 @@ -1,36 +1,39 @@ #ADD_SUBDIRECTORY(tests) +# +# Can't use 'satsolver' here, already taken by src/CMakeLists.txt +# + +SET( binding_NAME "rbsatsolver" ) + MESSAGE(STATUS "Ruby executable: ${RUBY_EXECUTABLE}") MESSAGE(STATUS "Ruby vendor arch dir: ${RUBY_VENDORARCH_DIR}") MESSAGE(STATUS "Ruby include path: ${RUBY_INCLUDE_PATH}") ADD_CUSTOM_COMMAND ( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/libsatsolver_wrap.c + OUTPUT "${SWIG_OUTPUT}" COMMAND ${CMAKE_COMMAND} -E echo_append "Creating wrapper code for Ruby..." - COMMAND ${SWIG_EXECUTABLE} -ruby -features autodoc -autorename -o ${CMAKE_CURRENT_BINARY_DIR}/libsatsolver_wrap.c ${CMAKE_CURRENT_SOURCE_DIR}/../satsolver.i + COMMAND ${SWIG_EXECUTABLE} -ruby -features autodoc -autorename -o ${SWIG_OUTPUT} ${SWIG_INPUT} COMMAND ${CMAKE_COMMAND} -E echo "Done." WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../*.i ) -ADD_CUSTOM_TARGET( glue - DEPENDS ${SWIG_OUTPUT} -) -SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -g" ) -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 ) +SET(bindings_SRCS ${SWIG_OUTPUT} "${CMAKE_SOURCE_DIR}/tools/repo_rpmdb.c" ) + +ADD_LIBRARY( ${binding_NAME} SHARED ${bindings_SRCS} ) + +# don't prefix with 'lib' +SET_TARGET_PROPERTIES( ${binding_NAME} PROPERTIES PREFIX "" ) INCLUDE_DIRECTORIES( ${RUBY_INCLUDE_PATH} ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/applayer ${CMAKE_SOURCE_DIR}/tools ) -TARGET_LINK_LIBRARIES( satsolverx satsolver ) -TARGET_LINK_LIBRARIES( satsolverx appsatsolver ) -TARGET_LINK_LIBRARIES( satsolverx ${RUBY_LIBRARY} ) -TARGET_LINK_LIBRARIES( satsolverx ${DB43_LIBRARY} ) - -INSTALL(TARGETS satsolverx LIBRARY DESTINATION ${RUBY_VENDORARCH_DIR}) -CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/satsolver.rb ${CMAKE_CURRENT_BINARY_DIR}/satsolver.rb COPYONLY ) -INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/satsolver.rb DESTINATION ${RUBY_VENDORLIB_DIR} ) +TARGET_LINK_LIBRARIES( ${binding_NAME} satsolver ) +TARGET_LINK_LIBRARIES( ${binding_NAME} appsatsolver ) +TARGET_LINK_LIBRARIES( ${binding_NAME} ${RUBY_LIBRARY} ) +TARGET_LINK_LIBRARIES( ${binding_NAME} ${DB43_LIBRARY} ) + +INSTALL(TARGETS ${binding_NAME} LIBRARY DESTINATION ${RUBY_VENDORARCH_DIR}) + -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org