Revision: 7957
          http://playerstage.svn.sourceforge.net/playerstage/?rev=7957&view=rev
Author:   natepak
Date:     2009-07-08 18:26:15 +0000 (Wed, 08 Jul 2009)

Log Message:
-----------
Added CPack stuff

Modified Paths:
--------------
    code/gazebo/trunk/CMakeLists.txt
    code/gazebo/trunk/player/SimulationInterface.cc
    code/gazebo/trunk/server/World.cc

Added Paths:
-----------
    code/gazebo/trunk/COPYING
    code/gazebo/trunk/cmake/DissectVersion.cmake

Removed Paths:
-------------
    code/gazebo/trunk/build.py

Modified: code/gazebo/trunk/CMakeLists.txt
===================================================================
--- code/gazebo/trunk/CMakeLists.txt    2009-07-06 13:51:39 UTC (rev 7956)
+++ code/gazebo/trunk/CMakeLists.txt    2009-07-08 18:26:15 UTC (rev 7957)
@@ -7,6 +7,7 @@
 
 PROJECT (Gazebo)
 STRING (TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER)
+
 SET (GAZEBO_VERSION 0.9.0)
 MESSAGE (STATUS "${PROJECT_NAME} version ${GAZEBO_VERSION}")
 
@@ -41,6 +42,8 @@
 SET (gazebo_cmake_dir ${PROJECT_SOURCE_DIR}/cmake CACHE PATH 
      "Location of CMake scripts")
 
+INCLUDE (${gazebo_cmake_dir}/DissectVersion.cmake)
+
 #####################################
 # Build type cflags
 SET (CMAKE_C_FLAGS_RELEASE " -O3 -DNDEBUG -Wall " CACHE INTERNAL "C Flags for 
release" FORCE)
@@ -96,4 +99,19 @@
   MESSAGE (STATUS "Install path: ${CMAKE_INSTALL_PREFIX}")
 ENDIF (BUILD_GAZEBO)
 
+# Cpack stuff
+INCLUDE (InstallRequiredSystemLibraries)
+SET (CPACK_PACKAGE_NAME "${PROJECT_NAME}")
+SET (CPACK_PACKAGE_VERSION_MAJOR "${GAZEBO_MAJOR_VERSION}")
+SET (CPACK_PACKAGE_VERSION_MINOR "${GAZEBO_MINOR_VERSION}")
+SET (CPACK_PACKAGE_VERSION_PATCH "${GAZEBO_REVISION_VERSION}")
+SET (CPACK_PACKAGE_DESCRIPTION_SUMMARY "Gazebo robot simulator")
+SET (CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME_LOWER}-${GAZEBO_VERSION}")
+SET (CPACK_SOURCE_PACKAGE_FILE_NAME "${PROJECT_NAME_LOWER}-${GAZEBO_VERSION}")
+SET (CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/COPYING")
+SET (CPACK_GENERATOR "TBZ2")
+SET (CPACK_SOURCE_GENERATOR "TBZ2")
+LIST (APPEND CPACK_SOURCE_IGNORE_FILES "/.svn/;.swp$;/build/")
+INCLUDE (CPack)
+
 GAZEBOSERVER_RESET_LISTS()

Added: code/gazebo/trunk/COPYING
===================================================================
--- code/gazebo/trunk/COPYING                           (rev 0)
+++ code/gazebo/trunk/COPYING   2009-07-08 18:26:15 UTC (rev 7957)
@@ -0,0 +1,340 @@
+                   GNU GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                   GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                           NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year  name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.

Deleted: code/gazebo/trunk/build.py
===================================================================
--- code/gazebo/trunk/build.py  2009-07-06 13:51:39 UTC (rev 7956)
+++ code/gazebo/trunk/build.py  2009-07-08 18:26:15 UTC (rev 7957)
@@ -1,253 +0,0 @@
-import sys
-import SCons.Util
-import SCons.SConf as SConf
-import string
-import os
-import re
-
-version = '0.8-pre3'
-
-#
-# Function used to test for ODE library, and TriMesh support
-#
-ode_test_source_file = """
-#include <ode/ode.h>
-int main()
-{
-  dGeomTriMeshDataCreate();
-  return 0;
-}
-"""
-
-def CreateRelease():
-  os.system('scons -c')
-  sysCmd = 'mkdir gazebo-'+version
-  os.system(sysCmd)
-  sysCmd = "cp -r server Media doc examples libgazebo player worlds SConstruct 
AUTHORS ChangeLog NEWS README TODO build.py gazebo-"+version
-  os.system(sysCmd)
-  sysCmd = "find gazebo-"+version+"/. -name .svn -exec rm -rf {} \; 
2>>/dev/null"
-  os.system(sysCmd)
-  print 'Creating tarball gazebo-'+version+'.tar.gz'
-  sysCmd = 'tar czf gazebo-'+version+'.tar.gz gazebo-'+version
-  os.system(sysCmd)
-  sysCmd = "rm -rf gazebo-"+version
-  os.system(sysCmd)
-
-  
-def CheckPkgConfig(context, version):
-  context.Message( 'Checking for pkg-config... ' )
-  ret = context.TryAction('pkg-config --atleast-pkgconfig-version=%s' % 
version)[0]
-  context.Result( ret )
-  return ret
-
-def CheckPkg(context, name):
-  context.Message( 'Checking for %s...' % name)
-  pkg_config_cmd = "pkg-config"
-  if os.environ.has_key("PKG_CONFIG_PATH"):
-    pkg_config_cmd = "PKG_CONFIG_PATH="+os.environ["PKG_CONFIG_PATH"]+" 
pkg-config"  
-  action = '%s --exists \'%s\'' % (pkg_config_cmd, name);
-
-  ret = context.TryAction(action)[0]
-  context.Result(ret)
-  return ret
-
-def CheckODELib(context):
-  context.Message('Checking for ODE trimesh support...')
-  oldLibs = context.env['LIBS']
-  context.env.Replace(LIBS='ode')
-  result = context.TryLink(ode_test_source_file, '.cpp')
-  context.Result(result)
-  context.env.Replace(LIBS=oldLibs)
-  return result
-
-#
-# Create the pkg-config file
-#
-def createPkgConfig(target,source, env):
-  f = open(str(target[0]), 'wb')
-  prefix = source[0].get_contents()
-  f.write('prefix=' + prefix + '\n')
-  f.write('Name: gazebo\n')
-  f.write('Description: Simplified interface to Player\n')
-  f.write('Version:' + version + '\n')
-  f.write('Requires: OGRE\n')
-  f.write('Libs: -L' + prefix + '/lib -lgazeboServer -lode\n')
-  f.write('Cflags: -I' + prefix + '/include\n')
-  f.close()
-
-#
-# Create the .gazeborc file
-#
-def createGazeborc(target, source, env):
-  f = open(str(target[0]),'wb')
-  prefix=source[0].get_contents()
-  ogre=commands.getoutput('pkg-config --variable=plugindir OGRE')
-  f.write('<?xml version="1.0"?>\n')
-  f.write('<gazeborc>\n')
-  f.write('  <gazeboPath>' + prefix + '/share/gazebo</gazeboPath>\n')
-  f.write('  <ogrePath>' + ogre + '</ogrePath>\n')
-  f.write('  <RTTMode>PBuffer</RTTMode>\n')
-  f.write('</gazeborc>\n')
-  f.close()
-  # Use a python command because scons won't copy files to a home directory
-  if not os.path.exists(os.environ['HOME']+'/.gazeborc'):
-    os.system('cp gazeborc ~/.gazeborc')
-
-
-
-
-#
-# Add optimizations to compiler flags based on the architecture
-#
-#TODO:search architecture
-def optimize_for_cpu(env):
-  cpuAtr = ['mmx', 'sse', 'sse2', 'sse3', '3dnow']
-  line_atr =""
-  if (os.path.isfile("/proc/cpuinfo")):
-    f_proc = open("/proc/cpuinfo")
-    for line in f_proc:
-      if (re.match('flags', line)): 
-        for atr in cpuAtr:
-          if (re.search(atr, line) and not re.search(atr, line_atr)):
-            line_atr+= "-m" + atr + " "
-            
-  env['CCFLAGS'] += Split (line_atr)
-  print "detected CPU atributes: " +line_atr
-
-
-def Config(env, packages):
-  simpleEnv = Environment(CC="g++")
-
-  # Setup the configuration environment.
-  conf = Configure(simpleEnv, custom_tests = {'CheckODELib' : CheckODELib,
-                                        'CheckPkgConfig' : CheckPkgConfig,
-                                        'CheckPkg' : CheckPkg})
-  
-  print '\n=== 3rd Party Dependency Checks === '
-  
-  # Check for pkg-config 
-  if not conf.CheckPkgConfig(PKG_CONFIG_VERSION):
-    print '  Error: pkg-config version >= ' + PKG_CONFIG_VERSION + ' not 
found.'
-    Exit(1)
-  
-  #
-  # Parse all the pacakge configurations
-  #
-  for key in packages:
-    pkgcfg =''
-    header=''
-    lib=''
-    check=''
-    requred = True
-
-    if packages[key].has_key('pkgcfg'):
-      pkgcfg = packages[key]['pkgcfg']
-
-    if packages[key].has_key('header'):
-      header = packages[key]['header']
-
-    if packages[key].has_key('lib'):
-      lib = packages[key]['lib']
-
-    if packages[key].has_key('check'):
-      check = packages[key]['check']
-
-    if packages[key].has_key('required'):
-      required = packages[key]['required']
-
-
-    msg = packages[key]['msg']
-    web = packages[key]['web']
-    flags = packages[key]['flags']
-
-    docfg = True
-    valid = True
-  
-    # Check for the package
-    if check and not conf.CheckPkg(check):
-      docfg = False
-      valid = False
-      print '  !!' + msg + key + ' not found.'
-      print '  See: ' + web
-      if required:
-        env['HAS_ERROR'] = True;
- 
-    # Try parsing the pkg-config
-    if docfg and pkgcfg:
-      try:
-        if not check:
-          print "Checking for "+key+"...",
-        if os.environ.has_key("PKG_CONFIG_PATH"):
-          pkgcfg = "PKG_CONFIG_PATH="+os.environ["PKG_CONFIG_PATH"]+" "+pkgcfg;
-        env.ParseConfig(pkgcfg)
-        if not check:
-          print 'yes'
-      except OSError,e:
-        valid = False
-        if not check:
-          print 'no'
-        print "Unable to parse config ["+pkgcfg+"]"
-        print '  !!' + msg + key + ' not found.'
-        print '  See: ' + web
-        if required:
-          env['HAS_ERROR'] = True;
-    elif header and lib:
-      if not conf.CheckLibWithHeader(lib, header, 'c'):
-        valid = False
-        print msg
-      else:
-        env.Append(LIBS = lib)
-        valid = True
-  
-    # If valid so far, apply any flags to the environment
-    if valid:
-        env.Append(CCFLAGS = flags)
-  
-  # Check for trimesh support in ODE
-  #if not conf.CheckODELib():
-  #  print '  Error: ODE not compiled with trimesh support.'
-  #  Exit(1)
-
-  if not conf.CheckCHeader('avformat.h'):
-    if conf.CheckCHeader('libavformat/avformat.h'):
-      env.Append( CCFLAGS = '-DSPECIAL_LIBAVFORMAT')
-    else:
-      print "Unable to find libavformat"
-
-  if not conf.CheckCHeader('avcodec.h'):
-    if conf.CheckCHeader('libavcodec/avcodec.h'):
-      env.Append( CCFLAGS = '-DSPECIAL_LIBAVCODEC')
-    else:
-      print "Unable to find libavcodec"
-
-    
-  simpleEnv = conf.Finish()
-  
-  #simpleenv = Environment(CPPPATH="/usr/include/AL")
-  #simpleconf = Configure(simpleenv)
-  #
-  ## Test for libtool
-  #if not simpleconf.CheckLibWithHeader('ltdl','ltdl.h','CXX'):
-  #  print "  Warning: Failed to find ltdl, no plugin support will be included"
-  #  env["HAVE_LTDL"]=False
-  #else:
-  #  env["HAVE_LTDL"]=True
-  #  env.Append(CCFLAGS = " -DHAVE_LTDL")
-  #  env.Append(LIBS = "ltdl")
- 
-  #if not simpleconf.CheckHeader('boost/signal.hpp',language='C++'):
-  #  print "Error: Boost signals not found. Please install."
-  #  Exit(0)
-  #
-  #simpleconf.Finish()
-  
-  # # Check for boost_python
-  #if not conf.CheckLibWithHeader('boost_python', 'boost/python.hpp', 'C'):
-  #  print 'Did not find libboost_python exiting'
-  #  Exit(1)
-  #else:
-  #  conf.env.Append(LIBS="boost_python")
-  
-  print '=== Done ===\n'
-
-

Added: code/gazebo/trunk/cmake/DissectVersion.cmake
===================================================================
--- code/gazebo/trunk/cmake/DissectVersion.cmake                                
(rev 0)
+++ code/gazebo/trunk/cmake/DissectVersion.cmake        2009-07-08 18:26:15 UTC 
(rev 7957)
@@ -0,0 +1,5 @@
+# Find version components
+STRING (REGEX REPLACE "^([0-9]+).*" "\\1" GAZEBO_MAJOR_VERSION 
"${GAZEBO_VERSION}")
+STRING (REGEX REPLACE "^[0-9]+\\.([0-9]+).*" "\\1" GAZEBO_MINOR_VERSION 
"${GAZEBO_VERSION}")
+STRING (REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1" 
GAZEBO_REVISION_VERSION ${GAZEBO_VERSION})
+STRING (REGEX REPLACE "^[0-9]+\\.[0-9]+\\.[0-9]+(.*)" "\\1" 
GAZEBO_CANDIDATE_VERSION ${GAZEBO_VERSION})

Modified: code/gazebo/trunk/player/SimulationInterface.cc
===================================================================
--- code/gazebo/trunk/player/SimulationInterface.cc     2009-07-06 13:51:39 UTC 
(rev 7956)
+++ code/gazebo/trunk/player/SimulationInterface.cc     2009-07-08 18:26:15 UTC 
(rev 7957)
@@ -275,7 +275,6 @@
       }
       this->iface->Unlock();
     }
-
   }
   else if (Message::MatchMessage(hdr, PLAYER_MSGTYPE_CMD,
                                  PLAYER_SIMULATION_CMD_PAUSE, 

Modified: code/gazebo/trunk/server/World.cc
===================================================================
--- code/gazebo/trunk/server/World.cc   2009-07-06 13:51:39 UTC (rev 7956)
+++ code/gazebo/trunk/server/World.cc   2009-07-08 18:26:15 UTC (rev 7957)
@@ -999,65 +999,68 @@
 
       case SimulationRequestData::GET_INTERFACE_TYPE:
         {
-         //printf("Model Type Request\n");
-         std::vector<std::string> list;
-                               
-         response->type = req->type;
+          //printf("Model Type Request\n");
+          std::vector<std::string> list;
+
+          response->type = req->type;
           strcpy( response->modelName, req->modelName);
-         std::vector<Model*>::iterator miter;
+          std::vector<Model*>::iterator miter;
 
-         for (miter=models.begin(); miter!=models.end(); miter++)
-                 GetInterfaceNames((*miter), list);
-       
-         std::string mname = req->modelName;           
-         unsigned int i=mname.find(".");        
-         while(i!= std::string::npos){
-       
-               mname.erase(i,1);
-               mname.insert(i,"::");
-               i= mname.find(".");
-         }
-       
-         
-         std::vector<std::string> candids;
+          for (miter=models.begin(); miter!=models.end(); miter++)
+            GetInterfaceNames((*miter), list);
 
-         for(unsigned int j=0;j<list.size();j++){
+          std::string mname = req->modelName;          
+          unsigned int i=mname.find(".");        
 
-               int ind = list[j].find(mname);
-               if(ind==0 && ind!=std::string::npos && list[j].size() > 
mname.size()){
-                       
candids.push_back(list[j].substr(ind+mname.size(),list[j].size()-ind-mname.size()));
-               }
-         }
+          while(i!= std::string::npos)
+          {
+            mname.erase(i,1);
+            mname.insert(i,"::");
+            i= mname.find(".");
+          }
 
-         /*for(unsigned int ii=0;ii<candids.size();ii++)
-               printf("candidatetypes: %s\n",candids[ii].c_str());*/
+          std::vector<std::string> candids;
 
-         for(i=0; i<candids.size(); i++){
-               if(candids[i][0]=='>'){
+          for(unsigned int j=0;j<list.size();j++)
+          {
+            size_t ind = list[j].find(mname);
+            if( ind==0 && ind != std::string::npos && 
+               list[j].size() > mname.size())
+            {
+              candids.push_back(list[j].substr(ind+mname.size(),
+                    list[j].size()-ind-mname.size()) );
+            }
+          }
 
-                       
strcpy(response->strValue,candids[i].substr(2,candids[i].size()-2).c_str());
-                       response->strValue[511]='\0';
-                       i=candids.size()+5;
-                       
-               }
-         }
-         
-         if(strcmp(response->strValue,"irarray")==0){
-               strcpy(response->strValue,"ranger");
-               response->strValue[511]='\0';           
-         }
+          /*for(unsigned int ii=0;ii<candids.size();ii++)
+            printf("candidatetypes: %s\n",candids[ii].c_str());*/
 
-         if(i<candids.size()+4) // the model is not an interface
-         {
+          for(i=0; i<candids.size(); i++)
+          {
+            if(candids[i][0]=='>')
+            {
+              strcpy(response->strValue,
+                     candids[i].substr(2,candids[i].size()-2).c_str());
+              response->strValue[511]='\0';
+              i=candids.size()+5;
+            }
+          }
 
-                       strcpy(response->strValue,"unkown");
-                       response->strValue[511]='\0';
+          if(strcmp(response->strValue,"irarray")==0)
+          {
+            strcpy(response->strValue,"ranger");
+            response->strValue[511]='\0';              
+          }
 
-         }
+          if(i<candids.size()+4) // the model is not an interface
+          {
+            strcpy(response->strValue,"unkown");
+            response->strValue[511]='\0';
+          }
 
-         //printf("-> modeltype: %s \n", response->modelType);
+          //printf("-> modeltype: %s \n", response->modelType);
 
-         response++;
+          response++;
           this->simIface->data->responseCount += 1;
 
           break;
@@ -1065,109 +1068,95 @@
 
       case SimulationRequestData::GET_MODEL_INTERFACES:
         {
-         
-         //printf("Requested the children\n");
-         //printf("-> %s", req->modelName);
-         
-                    
-         response->nChildInterfaces=0;
-         //std::vector<Entity*>::iterator iter;
-         std::vector<std::string> list;
-                               
-         response->type = req->type;
+          response->nChildInterfaces=0;
+          std::vector<std::string> list;
+
+          response->type = req->type;
           strcpy( response->modelName, req->modelName);
-         std::vector<Model*>::iterator miter;
+          std::vector<Model*>::iterator miter;
 
-         for (miter=models.begin(); miter!=models.end(); miter++)
-                 GetInterfaceNames((*miter), list);
-        /*
-         for(unsigned int ii=0;ii<list.size();ii++)
-               printf("interface: %s\n",list[ii].c_str());
-         */
-         // removing the ">>type" from the end of each interface names 
-         for(unsigned int jj=0;jj<list.size();jj++){
-               unsigned int index = list[jj].find(">>");
-               if(index !=std::string::npos)
-                       list[jj].replace(index,list[jj].size(),"");
-               //printf("-->> %s \n",list[jj].c_str()); 
-         }
-         
-         
-         if(strcmp((char*)req->modelName,"")==0){
+          for (miter=models.begin(); miter!=models.end(); miter++)
+            GetInterfaceNames((*miter), list);
 
-               std::vector<std::string> chlist;
-               for(unsigned int i=0;i<list.size();i++){
-               
-                       std::string str = list[i].substr(0,list[i].find("::"));
-                       std::vector<std::string>::iterator itr;
-                       itr = std::find(chlist.begin(),chlist.end(), str);
+          // removing the ">>type" from the end of each interface names 
+          for(unsigned int jj=0;jj<list.size();jj++)
+          {
+            unsigned int index = list[jj].find(">>");
+            if(index !=std::string::npos)
+              list[jj].replace(index,list[jj].size(),"");
+          }
 
-                       if(itr!=chlist.end() || str=="")
-                               continue;
+          if(strcmp((char*)req->modelName,"")==0)
+          {
+            std::vector<std::string> chlist;
+            for(unsigned int i=0;i<list.size();i++)
+            {
 
-                       chlist.push_back(str);
-                       
strcpy(response->childInterfaces[response->nChildInterfaces++],str.c_str());
-                       
response->childInterfaces[response->nChildInterfaces-1][511]='\0';
-               }
-               
+              std::string str = list[i].substr(0,list[i].find("::"));
+              std::vector<std::string>::iterator itr;
+              itr = std::find(chlist.begin(),chlist.end(), str);
 
-         }else{
-                                       
-                       
-                       std::vector<std::string> newlist;
-                       std::string mname = (char*)req->modelName;
-                       
-                       unsigned int i=mname.find(".");        
-                       while(i>-1){
-       
-                               mname.erase(i,1);
-                               mname.insert(i,"::");
-                               i= mname.find(".");
-                       }
-                       
-                       for(unsigned int j=0;j<list.size();j++){
+              if(itr!=chlist.end() || str=="")
+                continue;
 
-                               unsigned int ind = list[j].find(mname);
-                               if(ind==0 && ind!=std::string::npos && 
list[j].size() > mname.size()){
-                                       
newlist.push_back(list[j].substr(ind+mname.size()+2,list[j].size()-ind-mname.size()-2));
-                               }
-                       }
-                       
-                       /*for(unsigned int ii=0;ii<newlist.size();ii++)
-                               printf("child interface: 
%s\n",newlist[ii].c_str());
-*/
-                       std::vector<std::string> chlist;
-                       for( i=0;i<newlist.size();i++){
-               
-                               unsigned int indx = newlist[i].find("::");
-                               indx = 
(indx==std::string::npos)?newlist[i].size():indx;
-                               std::string str = newlist[i].substr(0,indx);
-                               std::vector<std::string>::iterator itr;
-                               itr = std::find(chlist.begin(),chlist.end(), 
str);
+              chlist.push_back(str);
+              strcpy(response->childInterfaces[response->nChildInterfaces++],
+                  str.c_str());
+              
response->childInterfaces[response->nChildInterfaces-1][511]='\0';
+            }
+          }
+          else
+          {
+            std::vector<std::string> newlist;
+            std::string mname = (char*)req->modelName;
 
-                               if(itr!=chlist.end() || str=="")
-                                       continue;
+            size_t i=mname.find(".");        
+            while( i != std::string::npos)
+            {
+              mname.erase(i,1);
+              mname.insert(i,"::");
+              i= mname.find(".");
+            }
 
-                               chlist.push_back(str);
-                               // Adding the parent name to the child name e.g 
"parent.child" 
-                               str=mname+"::"+str;
+            for(unsigned int j=0;j<list.size();j++)
+            {
+              unsigned int ind = list[j].find(mname);
+              if(ind==0 && ind!=std::string::npos && 
+                  list[j].size() > mname.size())
+              {
+                newlist.push_back(list[j].substr(ind+mname.size()+2,
+                      list[j].size()-ind-mname.size()-2));
+              }
+            }
 
-                               
strcpy(response->childInterfaces[response->nChildInterfaces++],str.c_str());
-                               
response->childInterfaces[response->nChildInterfaces-1][511]='\0';
-                       }
+            std::vector<std::string> chlist;
+            for( i=0;i<newlist.size();i++)
+            {
+              unsigned int indx = newlist[i].find("::");
+              indx = (indx==std::string::npos)?newlist[i].size():indx;
+              std::string str = newlist[i].substr(0,indx);
+              std::vector<std::string>::iterator itr;
+              itr = std::find(chlist.begin(),chlist.end(), str);
 
-                                                               
+              if(itr!=chlist.end() || str=="")
+                continue;
 
-       
-                       
-          }
+              chlist.push_back(str);
+              // Adding the parent name to the child name e.g "parent.child" 
+              str=mname+"::"+str;
 
-           response++;
-           this->simIface->data->responseCount += 1;
+              strcpy(response->childInterfaces[response->nChildInterfaces++],
+                  str.c_str());
+              
response->childInterfaces[response->nChildInterfaces-1][511]='\0';
+            }
+          }
 
-          
+          response++;
+          this->simIface->data->responseCount += 1;
+
           break;
         }
+
       case SimulationRequestData::GO:
         {
           this->simPauseTime = Simulator::Instance()->GetSimTime() 


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

Reply via email to