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
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit