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