move to colladadom debian package

This commit is contained in:
Wim Meeussen 2012-05-24 10:58:52 -07:00
parent bb64384ba8
commit b9468d9c51
10 changed files with 10 additions and 313 deletions

View File

@ -11,6 +11,12 @@ include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
rosbuild_init() rosbuild_init()
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake-extensions/ )
find_package(PkgConfig)
pkg_check_modules(COLLADADOM collada15dom)
include_directories(${COLLADADOM_INCLUDE_DIRS})
#link_directories(${COLLADADOM_LIBRARY_DIRS})
#set the default path for built executables to the "bin" directory #set the default path for built executables to the "bin" directory
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
#set the default path for built libraries to the "lib" directory #set the default path for built libraries to the "lib" directory

View File

@ -13,10 +13,12 @@
<depend package="roscpp"/> <depend package="roscpp"/>
<depend package="urdf_interface"/> <depend package="urdf_interface"/>
<depend package="colladadom"/>
<rosdep name="colladadom"/>
<export> <export>
<cpp cflags="-I${prefix}/include" lflags="-Wl,-rpath,${prefix}/lib -L${prefix}/lib -lcollada_parser"/> <cpp cflags="-I${prefix}/include `pkg-config --cflags collada15dom`"
lflags="-Wl,-rpath,${prefix}/lib -L${prefix}/lib -lcollada_parser `pkg-config --libs collada15dom`"/>
</export> </export>
</package> </package>

View File

@ -12,7 +12,6 @@
<url>http://ros.org/wiki/collada_urdf</url> <url>http://ros.org/wiki/collada_urdf</url>
<depend package="roscpp" /> <depend package="roscpp" />
<depend package="urdf" /> <depend package="urdf" />
<depend package="colladadom" />
<depend package="resource_retriever" /> <depend package="resource_retriever" />
<depend package="angles" /> <depend package="angles" />
<depend package="common_rosdeps" /> <depend package="common_rosdeps" />

View File

@ -1,46 +0,0 @@
all: installed
TARBALL = build/collada-dom-2.2.zip
TARBALL_URL = http://pr.willowgarage.com/downloads/collada-dom-2.2.zip
SOURCE_DIR = build/colladadom
INITIAL_DIR = build/collada-dom
UNPACK_CMD = unzip
TARBALL_PATCH = collada-dom.patch mac-x86_64.patch
MD5SUM_FILE = collada-dom-2.2.zip.md5sum
include $(shell rospack find mk)/download_unpack_build.mk
ROOT = $(shell rospack find colladadom)
# Copied from build/colladadom/dom/Makefile:
# os: 'linux', 'mac', 'windows', or 'ps3'. Use the 'uname' command to decide the
# default value. To detect when we're on Windows we'll check to see if we're
# running on Cygwin or MinGW.
OS := linux
ifneq ($(shell uname | grep -i darwin),)
OS := mac
else ifneq ($(or $(shell uname | grep -i cygwin),$(shell uname | grep -i mingw)),)
OS := windows
endif
installed: wiped $(SOURCE_DIR)/unpacked
@echo "ROOT is: $(ROOT)"
-mkdir -p $(ROOT)/include
-mkdir -p $(ROOT)/lib
@echo "making it"
cd $(SOURCE_DIR)/dom && make $(ROS_PARALLEL_JOBS)
cp -rf $(SOURCE_DIR)/dom/include/* $(ROOT)/include/
cp -rf $(SOURCE_DIR)/dom/build/$(OS)-1.5/*.* $(ROOT)/lib/
touch installed
wiped: Makefile
make wipe
touch wiped
clean:
-cd $(SOURCE_DIR) && make clean
rm -rf $(ROOT)/include $(ROOT)/lib installed
wipe: clean
rm -rf build
.PHONY : clean download wipe

View File

@ -1 +0,0 @@
bbb76ef2a8037c945c5cdf26829dcb7d build/collada-dom-2.2.zip

View File

@ -1,116 +0,0 @@
Index: dom/Makefile
===================================================================
--- dom/Makefile 2008-10-02 17:48:30.000000000 -0700
+++ dom/Makefile 2010-03-03 14:44:09.162398249 -0800
@@ -55,7 +55,7 @@
conf := release
# Collada version: '1.4', '1.5', or 'all'
-colladaVersion := 1.4
+colladaVersion := 1.5
# parser: 'libxml', 'tinyxml', or 'all'.
parser := libxml
@@ -188,7 +188,7 @@
ifneq ($(filter install uninstall installTest,$(MAKECMDGOALS)),)
# You can only install on Mac or Linux. Check for that.
ifeq ($(oss),linux)
-prefix := /usr/local
+prefix := ../../../
else ifeq ($(oss),mac)
prefix := /Library/Frameworks
else
Index: dom/make/common.mk
===================================================================
--- dom/make/common.mk 2008-05-14 17:30:42.000000000 -0700
+++ dom/make/common.mk 2010-04-07 17:16:11.000000000 -0700
@@ -17,6 +17,8 @@
debugSuffix :=
endif
+ccFlags += $(shell rosboost-cfg --cflags)
+
ifeq ($(os),mac)
# Add the -arch flags to specify what architectures we're building for.
ccFlags += $(addprefix -arch ,$(subst x86,i386,$(archs)))
Index: dom/make/domTest.mk
===================================================================
--- dom/make/domTest.mk 2008-09-03 08:51:18.000000000 -0700
+++ dom/make/domTest.mk 2010-04-07 17:17:18.000000000 -0700
@@ -55,13 +55,7 @@
endif
# Boost defs
-ifeq ($(os),linux)
-libOpts += -lboost_filesystem
-else
-includeOpts += -Iexternal-libs/boost
-libOpts += external-libs/boost/lib/$(buildID)/libboost_system.a
-libOpts += external-libs/boost/lib/$(buildID)/libboost_filesystem.a
-endif
+libOpts += $(shell rosboost-cfg --lflags system,filesystem)
ifeq ($(os),ps3)
# PS3 doesn't support C++ locales, so tell boost not to use them
ccFlags += -DBOOST_NO_STD_LOCALE
--- dom/src/dae/daeSIDResolver.cpp
+++ dom/src/dae/daeSIDResolver.cpp
@@ -152,6 +152,18 @@
list<string>& remainingPart) {
remainingPart.clear();
+ // custom change for following instance urls (Rosen Diankov)
+ if ( strncmp( container->getElementName(), "instance_", 9 ) == 0 ) {
+ daeURI *uri = (daeURI*)container->getAttributeValue("url");
+ if ( uri != NULL && uri->getElement() != NULL ) {
+ daeElement *e = findWithDots( uri->getElement(), s, profile, finder, remainingPart );
+ if ( e != NULL ) {
+ //found it
+ return e;
+ }
+ }
+ }
+
// First see if the whole thing resolves correctly
if (daeElement* result = finder(container, s, profile))
return result;
@@ -355,6 +367,23 @@
if ((!member.empty() || haveArrayIndex1) && result.scalar == NULL)
return daeSidRef::resolveData();
+ if( !!result.elt && !result.array && !result.scalar ) {
+ // if newparam, follow its SIDREF (Rosen Diankov)
+ if( strcmp(result.elt->getElementName(),"newparam") == 0) {
+ daeElement* psidref = result.elt->getChild("SIDREF");
+ if( !!psidref ) {
+ daeSidRef::resolveData newresult;
+ newresult = resolveImpl(daeSidRef(string("./") + psidref->getCharData(),result.elt->getParent(),sidRef.profile));
+ if( !newresult.elt ) {
+ newresult = resolveImpl(daeSidRef(psidref->getCharData(),result.elt->getParent(),sidRef.profile));
+ }
+ if( !!newresult.elt ) {
+ return newresult;
+ }
+ }
+ }
+ }
+
// SID resolution was successful.
return result;
}
--- dom/test/1.5/domTest.cpp
+++ dom/test/1.5/domTest.cpp
@@ -88,11 +88,11 @@
string lookupTestFile(const string& fileName) {
- return (dataPath() / fileName).native_file_string();
+ return (dataPath() / fileName).string();
}
string getTmpFile(const string& fileName) {
- return (tmpPath() / fileName).native_file_string();
+ return (tmpPath() / fileName).string();
}

View File

@ -1,92 +0,0 @@
--- dom/external-libs/boost/build/filesystem/Makefile 2008-04-23 19:21:32.000000000 -0500
+++ dom/external-libs/boost/build/filesystem/Makefile 2011-08-19 17:10:32.000000000 -0500
@@ -6,7 +6,7 @@
# Mac
compiler := g++
linker := ar
-compilerFlags += -arch ppc -arch i386
+compilerFlags += -arch i386 -arch x86_64
outPath := mac/
sources := operations.cpp path.cpp portability.cpp utf8_codecvt_facet.cpp
else
--- dom/external-libs/boost/build/system/Makefile 2008-04-23 19:21:32.000000000 -0500
+++ dom/external-libs/boost/build/system/Makefile 2011-08-19 17:11:12.000000000 -0500
@@ -6,7 +6,7 @@
# Mac
compiler := g++
linker := ar
-compilerFlags += -arch ppc -arch i386
+compilerFlags += -arch x86_64 -arch i386
outPath := mac/
else
# PS3
--- dom/external-libs/tinyxml/build/Makefile 2008-04-23 19:21:32.000000000 -0500
+++ dom/external-libs/tinyxml/build/Makefile 2011-08-19 17:11:29.000000000 -0500
@@ -19,7 +19,7 @@
compilerFlags += -Wall -c -O2
ifeq ($(platform),mac)
-compilerFlags += -arch i386 -arch ppc
+compilerFlags += -arch i386 -arch x86_64
endif
linkerFlags += rcs
--- dom/make/common.mk 2011-08-19 17:57:41.000000000 -0500
+++ dom/make/common.mk 2011-08-19 17:01:39.000000000 -0500
@@ -21,7 +21,8 @@
ifeq ($(os),mac)
# Add the -arch flags to specify what architectures we're building for.
-ccFlags += $(addprefix -arch ,$(subst x86,i386,$(archs)))
+# ccFlags += $(addprefix -arch ,$(subst x86,i386,$(archs)))
+ccFlags += $(addprefix -arch ,x86_64)
endif
libOpts :=
--- dom/make/dom.mk 2008-10-09 13:01:48.000000000 -0500
+++ dom/make/dom.mk 2011-08-19 17:46:27.000000000 -0500
@@ -31,14 +31,18 @@
ifneq ($(findstring tinyxml,$(xmlparsers)),)
ccFlags += -DDOM_INCLUDE_TINYXML
+ifeq ($(os),mac)
+libOpts += -ltinyxml
+else
includeOpts += -Iexternal-libs/tinyxml/
libOpts += external-libs/tinyxml/lib/$(buildID)/libtinyxml.a
endif
+endif
-ifeq ($(os),linux)
+ifneq ($(findstring $(os),linux mac),)
libOpts += -lpcre -lpcrecpp
else
-# On Mac, Windows and PS3 we need to be told where to find pcre
+# On Windows and PS3 we need to be told where to find pcre
ifeq ($(os),windows)
ccFlags += -DPCRE_STATIC
endif
@@ -52,9 +56,8 @@
libOpts += external-libs/boost/lib/$(buildID)/libboost_system.a
libOpts += external-libs/boost/lib/$(buildID)/libboost_filesystem.a
else ifeq ($(os),mac)
-includeOpts += -Iexternal-libs/boost
-libOpts += external-libs/boost/lib/$(buildID)/libboost_system.a
-libOpts += external-libs/boost/lib/$(buildID)/libboost_filesystem.a
+libOpts += $(shell rosboost-cfg --libs system)
+libOpts += $(shell rosboost-cfg --libs filesystem)
endif
# minizip
--- rt/make/common.mk 2008-09-04 17:50:38.000000000 -0500
+++ rt/make/common.mk 2011-08-19 17:12:43.000000000 -0500
@@ -19,7 +19,8 @@
ifeq ($(os),mac)
# Add the -arch flags to specify what architectures we're building for.
-ccFlags += $(addprefix -arch ,$(subst x86,i386,$(archs)))
+# ccFlags += $(addprefix -arch ,$(subst x86,i386,$(archs)))
+ccFlags += $(addprefix -arch ,x86_64)
endif
libOpts :=

View File

@ -1,26 +0,0 @@
/**
\mainpage
\htmlinclude manifest.html
\b colladadom is ...
<!--
Provide an overview of your package.
-->
\section codeapi Code API
<!--
Provide links to specific auto-generated API documentation within your
package that is of particular interest to a reader. Doxygen will
document pretty much every part of your code, so do your best here to
point the reader to the actual API.
If your codebase is fairly large or has different sets of APIs, you
should use the doxygen 'group' tag to keep these APIs together. For
example, the roscpp documentation has 'libros' group.
-->
*/

View File

@ -1,28 +0,0 @@
<package>
<description brief="colladadom">
This package contains the COLLADA Document Object Model (DOM) which is an API that provides a C++ object representation of a COLLADA XML instance document.
Currently, this package pulls collada-dom-2.2 tar ball, and applies a local patch
containing
some custom changes,
various bug fixes as well as
forcing configure to use rosboost-cfg for boost compile/link flags.
See http://sourceforge.net/projects/collada-dom.
</description>
<author>Du Hung Hou, Khronos.org, Marcus Barnes, Greg Corson, Herbert Law, Sebastian Schwarz, Steven Thomas, John Hsu (ros package), Tim Field (ros package)</author>
<license>BSD</license>
<review status="Doc reviewed" notes=""/>
<url>http://ros.org/wiki/colladadom</url>
<rosdep name="libxml2"/>
<rosdep name="unzip"/>
<rosdep name="pcre"/>
<export>
<cpp lflags="-Wl,-rpath,${prefix}/lib -L${prefix}/lib -lcollada15dom -lminizip -lz `rosboost-cfg --lflags system` `rosboost-cfg --lflags filesystem`" cflags="-I${prefix}/include -I${prefix}/include/1.5 `rosboost-cfg --cflags`"/>
<cpp os="osx" lflags="-F${prefix}/lib -framework Collada15Dom" cflags="-I${prefix}/include -I${prefix}/include/1.5"/>
</export>
<platform os="ubuntu" version="9.04"/>
<platform os="ubuntu" version="9.10"/>
<platform os="ubuntu" version="10.04"/>
</package>

View File

@ -11,7 +11,6 @@
<url>http://ros.org/wiki/urdf</url> <url>http://ros.org/wiki/urdf</url>
<depend package="roscpp" /> <depend package="roscpp" />
<depend package="colladadom" />
<depend package="urdf_parser" /> <depend package="urdf_parser" />
<depend package="collada_parser" /> <depend package="collada_parser" />