Author: dmacvicar
Date: Sat Jun 23 02:19:44 2007
New Revision: 38980
URL: http://svn.opensuse.org/viewcvs/yast?rev=38980&view=rev
Log:
backup
Added:
branches/tmp/dmacvicar/ruby-yast/CMakeLists.txt
branches/tmp/dmacvicar/ruby-yast/README
branches/tmp/dmacvicar/ruby-yast/VERSION.cmake
branches/tmp/dmacvicar/ruby-yast/cmake/
branches/tmp/dmacvicar/ruby-yast/cmake/modules/
branches/tmp/dmacvicar/ruby-yast/cmake/modules/FindYast.cmake
branches/tmp/dmacvicar/ruby-yast/examples/
branches/tmp/dmacvicar/ruby-yast/examples/ruby/
branches/tmp/dmacvicar/ruby-yast/examples/ruby/test1.rb
branches/tmp/dmacvicar/ruby-yast/src/
branches/tmp/dmacvicar/ruby-yast/src/CMakeLists.txt
branches/tmp/dmacvicar/ruby-yast/src/ryast.cpp
- copied unchanged from r38979, branches/tmp/dmacvicar/ruby-yast/ryast.cpp
branches/tmp/dmacvicar/ruby-yast/src/swig/
branches/tmp/dmacvicar/ruby-yast/src/swig/CMakeLists.txt
branches/tmp/dmacvicar/ruby-yast/src/swig/yast.i
Removed:
branches/tmp/dmacvicar/ruby-yast/ryast.cpp
Added: branches/tmp/dmacvicar/ruby-yast/CMakeLists.txt
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/ruby-yast/CMakeLists.txt?rev=38980&view=auto
==============================================================================
--- branches/tmp/dmacvicar/ruby-yast/CMakeLists.txt (added)
+++ branches/tmp/dmacvicar/ruby-yast/CMakeLists.txt Sat Jun 23 02:19:44 2007
@@ -0,0 +1,83 @@
+PROJECT(yast2-bindings)
+# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
+SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH})
+#SET(CMAKE_MODULE_PATH ${CMAKE_INSTALL_PREFIX}/share/cmake/Modules ${CMAKE_MODULE_PATH})
+
+SET( PACKAGE "yast2-bindings" )
+INCLUDE(${CMAKE_SOURCE_DIR}/VERSION.cmake)
+SET ( VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" )
+
+SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Language Bindings for YaST")
+SET(CPACK_PACKAGE_VENDOR "Novell Inc.")
+#SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
+#SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt")
+SET(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
+SET(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
+SET(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH})
+
+SET( CPACK_GENERATOR "TBZ2")
+SET( CPACK_SOURCE_GENERATOR "TBZ2")
+SET( CPACK_SOURCE_PACKAGE_FILE_NAME "${PACKAGE}-${VERSION}" )
+
+# The following components are regex's to match anywhere (unless anchored)
+# in absolute path + filename to find files or directories to be excluded
+# from source tarball.
+SET (CPACK_SOURCE_IGNORE_FILES
+"/CVS/;/.svn/;/.libs/;/.deps/;.swp$;.#;/#;/build/"
+"~$"
+"\\\\.cvsignore$"
+"/package"
+"Makefile\\\\.in$"
+)
+
+INCLUDE(CPack)
+
+#FIND_PACKAGE(SWIG REQUIRED)
+
+FIND_PROGRAM(SWIG_EXECUTABLE
+ NAMES swig-1.3 swig
+ PATHS ${SWIG_DIR} ${SWIG_DIR}/.. ${SWIG_DIR}/../../bin /usr/bin /usr/local/bin ${CMAKE_INSTALL_PREFIX}/bin
+)
+
+IF ( NOT SWIG_EXECUTABLE )
+ MESSAGE( FATAL "SWIG not found." )
+ELSE ( NOT SWIG_EXECUTABLE )
+ MESSAGE( STATUS "SWIG found at ${SWIG_EXECUTABLE}" )
+ENDIF ( NOT SWIG_EXECUTABLE )
+
+FIND_PACKAGE(Yast REQUIRED)
+FIND_PACKAGE(Ruby REQUIRED)
+
+#RUBY_RUBY_LIB_PATH
+MESSAGE( STATUS "Ruby arch dir: ${RUBY_ARCH_DIR}" )
+
+####################################################################
+# RPM SPEC #
+####################################################################
+MESSAGE(STATUS "Writing spec file...")
+#CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/${PACKAGE}.spec.cmake ${CMAKE_BINARY_DIR}/package/${PACKAGE}.spec @ONLY)
+
+ADD_SUBDIRECTORY(src)
+
+INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
+
+ADD_CUSTOM_TARGET( svncheck
+ COMMAND cd $(CMAKE_SOURCE_DIR) && ! LC_ALL=C svn status --show-updates --quiet | grep -v '^Status against revision'
+)
+
+SET( AUTOBUILD_COMMAND
+ COMMAND ${CMAKE_MAKE_PROGRAM} package_source
+ COMMAND ${CMAKE_COMMAND} -E copy ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2 ${CMAKE_BINARY_DIR}/package
+ COMMAND ${CMAKE_COMMAND} -E remove ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2
+ COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/package/${PACKAGE}.changes" "${CMAKE_BINARY_DIR}/package/${PACKAGE}.changes"
+)
+
+ADD_CUSTOM_TARGET( autobuild_local
+ ${AUTOBUILD_COMMAND}
+)
+
+ADD_CUSTOM_TARGET( autobuild
+ COMMAND ${CMAKE_MAKE_PROGRAM} svncheck
+ ${AUTOBUILD_COMMAND}
+)
+
Added: branches/tmp/dmacvicar/ruby-yast/README
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/ruby-yast/README?rev=38980&view=auto
==============================================================================
--- branches/tmp/dmacvicar/ruby-yast/README (added)
+++ branches/tmp/dmacvicar/ruby-yast/README Sat Jun 23 02:19:44 2007
@@ -0,0 +1,2 @@
+- Some attempts to access YaST from another languages
+
\ No newline at end of file
Added: branches/tmp/dmacvicar/ruby-yast/VERSION.cmake
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/ruby-yast/VERSION.cmake?rev=38980&view=auto
==============================================================================
--- branches/tmp/dmacvicar/ruby-yast/VERSION.cmake (added)
+++ branches/tmp/dmacvicar/ruby-yast/VERSION.cmake Sat Jun 23 02:19:44 2007
@@ -0,0 +1,3 @@
+SET(VERSION_MAJOR "0")
+SET(VERSION_MINOR "1")
+SET(VERSION_PATCH "0")
\ No newline at end of file
Added: branches/tmp/dmacvicar/ruby-yast/cmake/modules/FindYast.cmake
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/ruby-yast/cmake/modules/FindYast.cmake?rev=38980&view=auto
==============================================================================
--- branches/tmp/dmacvicar/ruby-yast/cmake/modules/FindYast.cmake (added)
+++ branches/tmp/dmacvicar/ruby-yast/cmake/modules/FindYast.cmake Sat Jun 23 02:19:44 2007
@@ -0,0 +1,42 @@
+
+if(YAST_INCLUDE_DIR AND YAST_LIBRARY AND YAST_YCP_LIBRARY)
+ # Already in cache, be silent
+ set(YAST_FIND_QUIETLY TRUE)
+endif(YAST_INCLUDE_DIR AND YAST_LIBRARY AND YAST_YCP_LIBRARY)
+
+set(YAST_LIBRARY)
+set(YAST_INCLUDE_DIR)
+set(YAST_YCP_LIBRARY)
+
+FIND_PATH(YAST_INCLUDE_DIR Y2.h
+ /usr/include/YaST2
+ /usr/local/include/YaST2
+)
+
+FIND_LIBRARY(YAST_LIBRARY NAMES y2
+ PATHS
+ /usr/lib
+ /usr/local/lib
+)
+
+FIND_LIBRARY(YAST_YCP_LIBRARY NAMES ycp
+ PATHS
+ /usr/lib
+ /usr/local/lib
+)
+
+FIND_LIBRARY(YAST_PLUGIN_WFM_LIBRARY NAMES py2wfm
+ PATHS
+ /usr/lib/YaST2/plugin
+ /usr/lib
+ /usr/local/lib
+)
+
+if(YAST_INCLUDE_DIR AND YAST_LIBRARY AND YAST_YCP_LIBRARY)
+ MESSAGE( STATUS "YaST2 found: includes in ${YAST_INCLUDE_DIR}, library in ${YAST_LIBRARY}")
+ set(YAST_FOUND TRUE)
+else(YAST_INCLUDE_DIR AND YAST_LIBRARY AND YAST_YCP_LIBRARY)
+ MESSAGE( STATUS "YaST2 not found")
+endif(YAST_INCLUDE_DIR AND YAST_LIBRARY AND YAST_YCP_LIBRARY)
+
+MARK_AS_ADVANCED(YAST_INCLUDE_DIR YAST_LIBRARY YAST_YCP_LIBRARY YAST_PLUGIN_WFM_LIBRARY)
\ No newline at end of file
Added: branches/tmp/dmacvicar/ruby-yast/examples/ruby/test1.rb
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/ruby-yast/examples/ruby/test1.rb?rev=38980&view=auto
==============================================================================
--- branches/tmp/dmacvicar/ruby-yast/examples/ruby/test1.rb (added)
+++ branches/tmp/dmacvicar/ruby-yast/examples/ruby/test1.rb Sat Jun 23 02:19:44 2007
@@ -0,0 +1,25 @@
+require 'ryast'
+include Ryast
+
+def get_ns(name)
+ import = Import.new(name)
+ ns = import.name_space
+ puts ns.filename
+ #ns.initialize
+
+ return ns
+end
+
+component = Y2ComponentBroker.get_namespace_component("Arch");
+#puts component.methods
+#Y2Namespace *ns = c->import(RSTRING (namespace_name)->ptr);
+ns = get_ns("Arch")
+#/**/
+t = Type.from_signature("bool()")
+puts t
+function = ns.create_function_call("sparc32", t)
+#call->appendParameter (v);
+function.finish_parameters
+res = function.evaluate_call
+puts res
+exit
Added: branches/tmp/dmacvicar/ruby-yast/src/CMakeLists.txt
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/ruby-yast/src/CMakeLists.txt?rev=38980&view=auto
==============================================================================
--- branches/tmp/dmacvicar/ruby-yast/src/CMakeLists.txt (added)
+++ branches/tmp/dmacvicar/ruby-yast/src/CMakeLists.txt Sat Jun 23 02:19:44 2007
@@ -0,0 +1 @@
+ADD_SUBDIRECTORY(swig)
\ No newline at end of file
Added: branches/tmp/dmacvicar/ruby-yast/src/swig/CMakeLists.txt
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/ruby-yast/src/swig/CMakeLists.txt?rev=38980&view=auto
==============================================================================
--- branches/tmp/dmacvicar/ruby-yast/src/swig/CMakeLists.txt (added)
+++ branches/tmp/dmacvicar/ruby-yast/src/swig/CMakeLists.txt Sat Jun 23 02:19:44 2007
@@ -0,0 +1,30 @@
+
+SET( SWIG_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/yast_wrap.cxx" )
+SET( SWIG_INPUT "${CMAKE_CURRENT_SOURCE_DIR}/yast.i" )
+
+ADD_CUSTOM_COMMAND (
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/yast_wrap.cxx
+ COMMAND ${CMAKE_COMMAND} -E echo_append "Creating wrapper code..."
+#COMMAND ${SWIG_EXECUTABLE} -c++ -ruby -autorename -xmlout parse.xml -I/usr/include swig/zypp.i
+ COMMAND ${SWIG_EXECUTABLE} -I${YAST_INCLUDE_DIR} -c++ -ruby -autorename -xmlout ${CMAKE_CURRENT_BINARY_DIR}/parse.xml -o ${CMAKE_CURRENT_BINARY_DIR}/yast_wrap.cxx -I${ZYPP_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/yast.i
+ COMMAND ${CMAKE_COMMAND} -E echo "Done."
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/yast.i
+)
+
+ADD_CUSTOM_TARGET( glue
+ DEPENDS ${SWIG_OUTPUT}
+)
+
+ADD_LIBRARY( ryast SHARED "${CMAKE_CURRENT_BINARY_DIR}/yast_wrap.cxx" )
+SET_TARGET_PROPERTIES( ryast PROPERTIES PREFIX "" )
+ADD_DEPENDENCIES( ryast glue )
+
+INCLUDE_DIRECTORIES( ${RUBY_INCLUDE_PATH} )
+INCLUDE_DIRECTORIES( ${YAST_INCLUDE_DIR} )
+TARGET_LINK_LIBRARIES( ryast ${YAST_LIBRARY} )
+TARGET_LINK_LIBRARIES( ryast ${YAST_YCP_LIBRARY} )
+TARGET_LINK_LIBRARIES( ryast ${YAST_PLUGIN_WFM_LIBRARY} )
+TARGET_LINK_LIBRARIES( ryast ${RUBY_LIBRARY} )
+
+INSTALL(TARGETS ryast LIBRARY DESTINATION ${RUBY_ARCH_DIR} )
\ No newline at end of file
Added: branches/tmp/dmacvicar/ruby-yast/src/swig/yast.i
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/ruby-yast/src/swig/yast.i?rev=38980&view=auto
==============================================================================
--- branches/tmp/dmacvicar/ruby-yast/src/swig/yast.i (added)
+++ branches/tmp/dmacvicar/ruby-yast/src/swig/yast.i Sat Jun 23 02:19:44 2007
@@ -0,0 +1,136 @@
+%module ryast
+%include std_string.i
+%include stl.i
+ %{
+/* Includes the header in the wrapper code */
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+
+#include
+
+#include
+
+#define y2log_component "Y2Ruby"
+
+//static swig_type_info _swigt__p_YCPValue;
+
+ %}
+
+#ifdef SWIGRUBY
+//%include "ruby.i"
+#endif
+
+%rename("+") "operator+";
+%rename("<<") "operator<<";
+%rename("!=") "operator!=";
+%rename("!") "operator!";
+%rename("==") "operator==";
+
+%typemap(in) int YCPValue {
+ // TODO conver integers, and add support for lists, ah, and boleans!
+ switch (TYPE($1))
+ {
+ case T_STRING:
+ $result = YCPString(RSTRING ($1)->ptr);
+ break;
+ case T_TRUE:
+ $result = YCPBoolean(true);
+ break;
+ case T_FALSE:
+ $result = YCPBoolean(false);
+ break;
+ case T_FIXNUM:
+ $result = YCPInteger(NUM2LONG($1));
+ break;
+ case T_FLOAT:
+ $result = YCPFloat(NUM2DBL($1));
+ break;
+ case T_ARRAY:
+ // FIXME
+ break;
+ case T_HASH:
+ // FIXME
+ break;
+ case T_DATA:
+ rb_raise( rb_eRuntimeError, "Object");
+ break;
+ }
+ std::cout << TYPE($1) << std::endl;
+ rb_raise( rb_eRuntimeError, "Conversion of Ruby type not supported");
+ $result = YCPValue();
+}
+
+%typemap(out) YCPValue {
+ // TODO
+ // YT_BYTEBLOCK YT_PATH YT_SYMBOL YT_LIST YT_TERM YT_MAP YT_CODE YT_RETURN YT_BREAK YT_ENTRY YT_ERROR YT_REFERENCE YT_EXTERNA
+ if($1->isVoid())
+ {
+ $result = Qnil;
+ }
+ else if($1->isBoolean())
+ {
+ $result = $1->asBoolean()->value() ? Qtrue : Qfalse;
+ }
+ else if($1->isString())
+ {
+ $result = rb_str_new2($1->asString()->value().c_str());
+ }
+ else if($1->isInteger())
+ {
+ $result = INT2NUM( $1->asInteger()->value() );
+ }
+ else if( $1->isMap() )
+ {
+ VALUE rbhash;
+ rbhash = rb_hash_new();
+ YCPMap map = $1->asMap();
+ printf("map size %d\n", map.size());
+
+ for ( YCPMapIterator it = map.begin(); it != map.end(); ++it )
+ {
+ YCPValue *key = new YCPValue(it.key());
+ YCPValue *value = new YCPValue(it.value());
+ VALUE rkey = SWIG_NewPointerObj(key, SWIGTYPE_p_YCPValue, 1);
+ VALUE rvalue = SWIG_NewPointerObj(value, SWIGTYPE_p_YCPValue, 1);
+ rb_hash_aset(rbhash, rkey, rvalue );
+ }
+ $result = rbhash;
+ }
+ else if($1->isList())
+ {
+ VALUE rblist;
+ rblist = rb_ary_new();
+ YCPList list = $1->asList();
+ printf("list size %d\n",list.size());
+ for (int i=0; i < list.size(); i++)
+ {
+ YCPValue *value = new YCPValue(list.value(i));
+ VALUE rvalue = SWIG_NewPointerObj(value, SWIGTYPE_p_YCPValue, 1);
+ rb_ary_push( rblist, rvalue);
+ }
+ $result = rblist;
+ }
+ rb_raise( rb_eRuntimeError, "Conversion of YCP type %s not supported", $1->toString().c_str() );
+ $result = Qnil;
+}
+
+%include "y2/Y2ComponentBroker.h"
+%include "y2/Y2Namespace.h"
+%include "y2/Y2Component.h"
+%include "y2/Y2Function.h"
+%include "ycp/Import.h"
+%include "ycp/Type.h"
\ No newline at end of file
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org