Revision: 7960
          http://playerstage.svn.sourceforge.net/playerstage/?rev=7960&view=rev
Author:   robotos
Date:     2009-07-09 13:40:24 +0000 (Thu, 09 Jul 2009)

Log Message:
-----------
Ruby bindings for libgazebo

Modified Paths:
--------------
    code/gazebo/trunk/CMakeLists.txt
    code/gazebo/trunk/examples/libgazebo/stereo/CMakeLists.txt
    code/gazebo/trunk/libgazebo/CMakeLists.txt

Added Paths:
-----------
    code/gazebo/trunk/libgazebo/bindings/CMakeLists.txt
    code/gazebo/trunk/libgazebo/bindings/ruby/
    code/gazebo/trunk/libgazebo/bindings/ruby/CMakeLists.txt
    code/gazebo/trunk/libgazebo/bindings/ruby/gazeboc.i

Modified: code/gazebo/trunk/CMakeLists.txt
===================================================================
--- code/gazebo/trunk/CMakeLists.txt    2009-07-08 19:46:17 UTC (rev 7959)
+++ code/gazebo/trunk/CMakeLists.txt    2009-07-09 13:40:24 UTC (rev 7960)
@@ -46,9 +46,9 @@
 
 #####################################
 # Build type cflags
-SET (CMAKE_C_FLAGS_RELEASE " -O3 -DNDEBUG -Wall " CACHE INTERNAL "C Flags for 
release" FORCE)
-SET (CMAKE_C_FLAGS_DEBUG " -ggdb " CACHE INTERNAL "C Flags fro debug" FORCE)
-SET (CMAKE_C_FLAGS_PROFILE " -ggdb -pg " CACHE INTERNAL "C Flags for profile" 
FORCE)
+SET (CMAKE_C_FLAGS_RELEASE " -O2 -DNDEBUG -Wall " CACHE INTERNAL "C Flags for 
release" FORCE)
+SET (CMAKE_C_FLAGS_DEBUG " -ggdb  -Wall " CACHE INTERNAL "C Flags for debug" 
FORCE)
+SET (CMAKE_C_FLAGS_PROFILE " -ggdb -pg -Wall " CACHE INTERNAL "C Flags for 
profile" FORCE)
 
 #####################################
 # Build type link flags

Modified: code/gazebo/trunk/examples/libgazebo/stereo/CMakeLists.txt
===================================================================
--- code/gazebo/trunk/examples/libgazebo/stereo/CMakeLists.txt  2009-07-08 
19:46:17 UTC (rev 7959)
+++ code/gazebo/trunk/examples/libgazebo/stereo/CMakeLists.txt  2009-07-09 
13:40:24 UTC (rev 7960)
@@ -28,4 +28,4 @@
 
 add_executable(stereo ${sources})
 
-target_link_libraries(stereo ${LINK_LIBS} )
+target_link_libraries(stereo ${LINK_LIBS} gazebo_server ogre3d)

Modified: code/gazebo/trunk/libgazebo/CMakeLists.txt
===================================================================
--- code/gazebo/trunk/libgazebo/CMakeLists.txt  2009-07-08 19:46:17 UTC (rev 
7959)
+++ code/gazebo/trunk/libgazebo/CMakeLists.txt  2009-07-09 13:40:24 UTC (rev 
7960)
@@ -12,6 +12,8 @@
   ${boost_include_dirs}
 )
 
+ADD_SUBDIRECTORY(bindings)
+
 LINK_DIRECTORIES(${boost_library_dirs})
 
 ADD_LIBRARY(gazeboshm SHARED ${sources})

Added: code/gazebo/trunk/libgazebo/bindings/CMakeLists.txt
===================================================================
--- code/gazebo/trunk/libgazebo/bindings/CMakeLists.txt                         
(rev 0)
+++ code/gazebo/trunk/libgazebo/bindings/CMakeLists.txt 2009-07-09 13:40:24 UTC 
(rev 7960)
@@ -0,0 +1 @@
+ADD_SUBDIRECTORY(ruby)

Added: code/gazebo/trunk/libgazebo/bindings/ruby/CMakeLists.txt
===================================================================
--- code/gazebo/trunk/libgazebo/bindings/ruby/CMakeLists.txt                    
        (rev 0)
+++ code/gazebo/trunk/libgazebo/bindings/ruby/CMakeLists.txt    2009-07-09 
13:40:24 UTC (rev 7960)
@@ -0,0 +1,58 @@
+FIND_PACKAGE (Ruby)
+
+if(RUBY_LIBRARY AND RUBY_INCLUDE_PATH)
+    SET(RUBY_FOUND TRUE)
+endif (RUBY_LIBRARY AND RUBY_INCLUDE_PATH)
+
+  IF(RUBY_FOUND)
+    OPTION (BUILD_RUBY_BINDINGS "Build the Ruby bindings for libgazebo " ON)
+
+    IF (BUILD_RUBY_BINDINGS)
+        FIND_PACKAGE (SWIG)
+        IF (SWIG_FOUND)
+            MESSAGE (STATUS "Ruby bindings for Gazebo will be built")
+
+            INCLUDE (${SWIG_USE_FILE})
+
+            SET (RUBY_INTERFACE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/gazeboc.i")
+            SET (RUBY_MODULE_NAME gazeboc)
+            SET (LIBGAZEBO_DIR ${PROJECT_SOURCE_DIR}/libgazebo)
+
+            INCLUDE_DIRECTORIES (${RUBY_INCLUDE_PATH})
+            INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR})
+            INCLUDE_DIRECTORIES (${PROJECT_BINARY_DIR})
+            INCLUDE_DIRECTORIES (${LIBGAZEBO_DIR})
+            INCLUDE_DIRECTORIES( ${boost_include_dirs} )
+
+            LINK_DIRECTORIES(${boost_library_dirs})
+
+            SET (CMAKE_SWIG_FLAGS "-w801 -c++ -I$LIBGAZEBO_DIR")
+
+            SET_SOURCE_FILES_PROPERTIES(${RUBY_INTERFACE_FILE} PROPERTIES 
CPLUSPLUS ON)
+
+            SWIG_ADD_MODULE (${RUBY_MODULE_NAME} ruby ${RUBY_INTERFACE_FILE} )
+            SWIG_LINK_LIBRARIES (${RUBY_MODULE_NAME} ${RUBY_LIBRARY})
+      
+            ADD_DEPENDENCIES (${RUBY_MODULE_NAME} ${RUBY_INTERFACE_FILE})
+            TARGET_LINK_LIBRARIES (${RUBY_MODULE_NAME} gazebo)
+
+            #TODO: find ruby in windows, check install dir is correct
+            STRING(REPLACE "/usr/" "" ruby_relative_sitelib_dir 
${RUBY_SITELIB_DIR})
+            STRING(REPLACE "local/" "" ruby_relative_sitelib_dir 
${ruby_relative_sitelib_dir})
+            SET (RUBY_BINDINGS_INSTALL_DIR ${ruby_relative_sitelib_dir} CACHE 
PATH "Ruby bindings installation directory under $RUBY_SITELIB_DIR")
+            MARK_AS_ADVANCED (RUBY_BINDINGS_INSTALL_DIR)
+
+            INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/gazeboc.so
+                DESTINATION ${RUBY_BINDINGS_INSTALL_DIR} )
+                
+        ELSE (SWIG_FOUND)
+            MESSAGE (STATUS "Ruby bindings for Gazebo will not be built - 
could not find Swig")
+        ENDIF (SWIG_FOUND)
+    ELSE (BUILD_RUBY_BINDINGS)
+        MESSAGE (STATUS "Ruby bindings for Gazebo will not be built - disabled 
by user")
+    ENDIF (BUILD_RUBY_BINDINGS)
+ELSE (RUBY_FOUND)
+    MESSAGE (STATUS "Ruby bindings for Gazebo will not be built - could not 
find Ruby")
+ENDIF (RUBY_FOUND)
+
+

Added: code/gazebo/trunk/libgazebo/bindings/ruby/gazeboc.i
===================================================================
--- code/gazebo/trunk/libgazebo/bindings/ruby/gazeboc.i                         
(rev 0)
+++ code/gazebo/trunk/libgazebo/bindings/ruby/gazeboc.i 2009-07-09 13:40:24 UTC 
(rev 7960)
@@ -0,0 +1,77 @@
+%module gazeboc
+
+
+//including these types to automatically have them converted
+%include "std_vector.i"
+%include "std_string.i"
+%include "std_map.i"
+
+
+%exception {
+  try {
+   $action
+  }
+  catch (std::string er) {
+    rb_raise(rb_eRuntimeError,er.c_str());
+  }
+}
+
+%apply const std::string& {std::string* id};
+
+
+
+
+#define TESTING 1
+
+/******************************************
+
+     C++ to RUBY  (Ruby reads)
+ $1 C++ types
+ $result Ruby types
+
+******************************************/
+
+/*
+
+
+
+// C to RUBY (ruby reads) basic types
+//TODO: the unsigned long long stuff is correct?
+%typemap(out) uint8_t
+{
+  $result = UINT2NUM((unsigned char) $1);
+}
+
+%typemap(out) uint16_t
+{
+  $result = UINT2NUM((unsigned long) $1);
+}
+
+%typemap(out) uint32_t
+{
+  $result = UINT2NUM((long) (unsigned long long) $1);
+}
+
+//used by fiducial id (signed as -1 can be used)
+%typemap(out) int32_t
+{
+  $result = INT2NUM((long) (long long) $1);
+}
+
+*/
+
+
+
+
+//The files we are wrapping. Must come last
+%{
+#include "gazebo.h"
+#include "IfaceFactory.hh"
+
+%}
+
+//this is what we are going to wrap
+%include "gazebo.h"
+%include "IfaceFactory.hh"
+
+


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge
_______________________________________________
Playerstage-commit mailing list
Playerstage-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to