summaryrefslogtreecommitdiff
path: root/dev-libs/sdformat
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
commit8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 (patch)
tree7681bbd4e8b05407772df40a4bf04cbbc8afc3fa /dev-libs/sdformat
parent30a9caf154332f12ca60756e1b75d2f0e3e1822d (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'dev-libs/sdformat')
-rw-r--r--dev-libs/sdformat/Manifest8
-rw-r--r--dev-libs/sdformat/files/urdfdom1.patch392
-rw-r--r--dev-libs/sdformat/metadata.xml8
-rw-r--r--dev-libs/sdformat/sdformat-5.2.0.ebuild39
-rw-r--r--dev-libs/sdformat/sdformat-5.3.0.ebuild39
-rw-r--r--dev-libs/sdformat/sdformat-6.0.0.ebuild38
6 files changed, 524 insertions, 0 deletions
diff --git a/dev-libs/sdformat/Manifest b/dev-libs/sdformat/Manifest
new file mode 100644
index 000000000000..3d6a2cd7bb8c
--- /dev/null
+++ b/dev-libs/sdformat/Manifest
@@ -0,0 +1,8 @@
+AUX urdfdom1.patch 15931 BLAKE2B abd7a35201cc3e768555ce6c1d99ff0c2fba45cb86891abe26970f0fedde3190ab8a07f2f6f9037640bb43bd94334b010dd8b51c1fea9577a03abff88c86ba33 SHA512 3acc8f2c3e7908a09e5e71d64d13bfc6f439c0a83c56ec2b70ec1ec1491483d370f837e70db9872d02f1e1c77c0127263d8e28ccb8d5ac44c527d664a2b1694d
+DIST sdformat-5.2.0.tar.bz2 445542 BLAKE2B 89daf9e03613bd88aceb1a2034cf0f9efe7b28ffb7aef8add4fc484a6e78d7189b4b6183fca83db4bb8017a4901d2fb3df7dc43e995bf2da8bb0fcde9510c6c9 SHA512 65df9f0d351ab894af41cc2081dc8ab179336092ceba17979720bed4d58f77e9648863501d83f073ea8478197e7e0a7d7a9f8efd3a54d22ee28d74765cebcee7
+DIST sdformat-5.3.0.tar.bz2 447471 BLAKE2B 9b511782f5d2517778fc0c977d1deab00ee7789f50628546b5ca8c1f464cc3ca132b83e1054867ec1d6678bca664232e1d9a499ff095d4f9a623f5061fc340c1 SHA512 63106bc438decb00157eca5fd3f7f783197a1f17a76008bee5d18d5c146f199e67852ef74cbbc53918760a0cdf382628ea84d2b4618512738cd574de1fc719d8
+DIST sdformat-6.0.0.tar.bz2 473765 BLAKE2B af3ed14323c2bed8ee5a22580dcb6d73a5e5c772f39ad7f806bf2cdb88d6f2c885585f36a666f2ec711dbd7ad6051ba69d79d2a9f0af7ad3b3681543b9feafe7 SHA512 2188de97cb1eb1117a694d54a0a42112bd7e5b5a4b00c04e049de73a10947904940565e36df93ca08ea5910e628983e234d07c57694c463e0794c48e20cedb21
+EBUILD sdformat-5.2.0.ebuild 984 BLAKE2B a1ba8fb82e2424fd57be0d9eea2acf71088eda48d49e933d40c83cf89814b100f04f13a6490ec652218e47da7024b9cf16ff5951e8d0db08659f296eb030e5c0 SHA512 a6dedd6d405c876665d85fe6c7b21fde03563e374d04a84587e7dffb1efb63e55cb6f53946e74f4749114cee3e80219f2adddc94a8a7dabe65ba028a55de8e7a
+EBUILD sdformat-5.3.0.ebuild 984 BLAKE2B a1ba8fb82e2424fd57be0d9eea2acf71088eda48d49e933d40c83cf89814b100f04f13a6490ec652218e47da7024b9cf16ff5951e8d0db08659f296eb030e5c0 SHA512 a6dedd6d405c876665d85fe6c7b21fde03563e374d04a84587e7dffb1efb63e55cb6f53946e74f4749114cee3e80219f2adddc94a8a7dabe65ba028a55de8e7a
+EBUILD sdformat-6.0.0.ebuild 944 BLAKE2B 1f9dd5d2c061f0964e8e3314d0cc68e09c5cee6861418eac1578f002ec016119000e5e2b7b516da129b7ee57c3399de75adc7355651ff5954a80f1a28c776226 SHA512 0d3563149ef99bb6805f02c71365378ffd7ea630251d52d8e7b818070ecc87c581d3a792b347c345955845e07e7ebfda08c79fe26ad23251bdb925e26e252e83
+MISC metadata.xml 243 BLAKE2B 13c40383778472fec33f877963b2be8d44c354e5449e3ac38dfba06cb38e4cfb6a63d5d73c5acb1e02a1c8ee783131c46c8b56eb14de786de7f77635f15d18d7 SHA512 c9d5c1cdd2874fe293f21f7584c6e15ef9439bd82b0d2e862e3e34c9a9e0e3191370fee2727b9d4d8647fb85cf56a39fdd6c1e0003ada1554496aad311ef335c
diff --git a/dev-libs/sdformat/files/urdfdom1.patch b/dev-libs/sdformat/files/urdfdom1.patch
new file mode 100644
index 000000000000..d76376aec016
--- /dev/null
+++ b/dev-libs/sdformat/files/urdfdom1.patch
@@ -0,0 +1,392 @@
+Index: sdformat-4.1.1/src/parser_urdf.cc
+===================================================================
+--- sdformat-4.1.1.orig/src/parser_urdf.cc
++++ sdformat-4.1.1/src/parser_urdf.cc
+@@ -25,6 +25,7 @@
+ #include "urdf_model/model.h"
+ #include "urdf_model/link.h"
+ #include "urdf_parser/urdf_parser.h"
++#include <urdf_model/utils.h>
+
+ #include "sdf/SDFExtension.hh"
+ #include "sdf/parser_urdf.hh"
+@@ -32,10 +33,10 @@
+
+ using namespace sdf;
+
+-typedef boost::shared_ptr<urdf::Collision> UrdfCollisionPtr;
+-typedef boost::shared_ptr<urdf::Visual> UrdfVisualPtr;
+-typedef boost::shared_ptr<urdf::Link> UrdfLinkPtr;
+-typedef boost::shared_ptr<const urdf::Link> ConstUrdfLinkPtr;
++typedef std::shared_ptr<urdf::Collision> UrdfCollisionPtr;
++typedef std::shared_ptr<urdf::Visual> UrdfVisualPtr;
++typedef std::shared_ptr<urdf::Link> UrdfLinkPtr;
++typedef std::shared_ptr<const urdf::Link> ConstUrdfLinkPtr;
+ typedef std::shared_ptr<TiXmlElement> TiXmlElementPtr;
+ typedef std::shared_ptr<SDFExtension> SDFExtensionPtr;
+ typedef std::map<std::string, std::vector<SDFExtensionPtr> >
+@@ -78,7 +79,7 @@ void InsertSDFExtensionJoint(TiXmlElemen
+ /// reduced fixed joints: check if a fixed joint should be lumped
+ /// checking both the joint type and if disabledFixedJointLumping
+ /// option is set
+-bool FixedJointShouldBeReduced(boost::shared_ptr<urdf::Joint> _jnt);
++bool FixedJointShouldBeReduced(std::shared_ptr<urdf::Joint> _jnt);
+
+ /// reduced fixed joints: apply transform reduction for ray sensors
+ /// in extensions when doing fixed joint reduction
+@@ -217,9 +218,9 @@ std::string Values2str(unsigned int _cou
+
+
+ void CreateGeometry(TiXmlElement* _elem,
+- boost::shared_ptr<urdf::Geometry> _geometry);
++ std::shared_ptr<urdf::Geometry> _geometry);
+
+-std::string GetGeometryBoundingBox(boost::shared_ptr<urdf::Geometry> _geometry,
++std::string GetGeometryBoundingBox(std::shared_ptr<urdf::Geometry> _geometry,
+ double *_sizeVals);
+
+ ignition::math::Pose3d inverseTransformToParentFrame(
+@@ -254,7 +255,7 @@ urdf::Vector3 ParseVector3(const std::st
+ std::vector<std::string> pieces;
+ std::vector<double> vals;
+
+- boost::split(pieces, _str, boost::is_any_of(" "));
++ urdf::split_string(pieces, _str, " ");
+ for (unsigned int i = 0; i < pieces.size(); ++i)
+ {
+ if (pieces[i] != "")
+@@ -262,7 +263,7 @@ urdf::Vector3 ParseVector3(const std::st
+ try
+ {
+ vals.push_back(_scale
+- * boost::lexical_cast<double>(pieces[i].c_str()));
++ * std::stod(pieces[i].c_str()));
+ }
+ catch(boost::bad_lexical_cast &)
+ {
+@@ -349,7 +350,7 @@ void ReduceCollisionToParent(UrdfLinkPtr
+ UrdfCollisionPtr _collision)
+ {
+ #ifndef URDF_GE_0P3
+- boost::shared_ptr<std::vector<UrdfCollisionPtr> > cols;
++ std::shared_ptr<std::vector<UrdfCollisionPtr> > cols;
+ cols = _parentLink->getCollisions(_name);
+
+ if (!cols)
+@@ -427,7 +428,7 @@ void ReduceVisualToParent(UrdfLinkPtr _p
+ UrdfVisualPtr _visual)
+ {
+ #ifndef URDF_GE_0P3
+- boost::shared_ptr<std::vector<UrdfVisualPtr> > viss;
++ std::shared_ptr<std::vector<UrdfVisualPtr> > viss;
+ viss = _parentLink->getVisuals(_name);
+
+ if (!viss)
+@@ -950,7 +951,7 @@ void ReduceVisualsToParent(UrdfLinkPtr _
+ // (original parent link name before lumping/reducing).
+ #ifndef URDF_GE_0P3
+ for (std::map<std::string,
+- boost::shared_ptr<std::vector<UrdfVisualPtr> > >::iterator
++ std::shared_ptr<std::vector<UrdfVisualPtr> > >::iterator
+ visualsIt = _link->visual_groups.begin();
+ visualsIt != _link->visual_groups.end(); ++visualsIt)
+ {
+@@ -1057,7 +1058,7 @@ void ReduceCollisionsToParent(UrdfLinkPt
+ // (original parent link name before lumping/reducing).
+ #ifndef URDF_GE_0P3
+ for (std::map<std::string,
+- boost::shared_ptr<std::vector<UrdfCollisionPtr> > >::iterator
++ std::shared_ptr<std::vector<UrdfCollisionPtr> > >::iterator
+ collisionsIt = _link->collision_groups.begin();
+ collisionsIt != _link->collision_groups.end(); ++collisionsIt)
+ {
+@@ -1160,7 +1161,7 @@ void ReduceJointsToParent(UrdfLinkPtr _l
+ // a parent link up stream that does not have a fixed parentJoint
+ for (unsigned int i = 0 ; i < _link->child_links.size() ; ++i)
+ {
+- boost::shared_ptr<urdf::Joint> parentJoint =
++ std::shared_ptr<urdf::Joint> parentJoint =
+ _link->child_links[i]->parent_joint;
+ if (!FixedJointShouldBeReduced(parentJoint))
+ {
+@@ -1431,31 +1432,31 @@ void URDF2SDF::ParseSDFExtension(TiXmlDo
+ else if (childElem->ValueStr() == "dampingFactor")
+ {
+ sdf->isDampingFactor = true;
+- sdf->dampingFactor = boost::lexical_cast<double>(
++ sdf->dampingFactor = std::stod(
+ GetKeyValueAsString(childElem).c_str());
+ }
+ else if (childElem->ValueStr() == "maxVel")
+ {
+ sdf->isMaxVel = true;
+- sdf->maxVel = boost::lexical_cast<double>(
++ sdf->maxVel = std::stod(
+ GetKeyValueAsString(childElem).c_str());
+ }
+ else if (childElem->ValueStr() == "minDepth")
+ {
+ sdf->isMinDepth = true;
+- sdf->minDepth = boost::lexical_cast<double>(
++ sdf->minDepth = std::stod(
+ GetKeyValueAsString(childElem).c_str());
+ }
+ else if (childElem->ValueStr() == "mu1")
+ {
+ sdf->isMu1 = true;
+- sdf->mu1 = boost::lexical_cast<double>(
++ sdf->mu1 = std::stod(
+ GetKeyValueAsString(childElem).c_str());
+ }
+ else if (childElem->ValueStr() == "mu2")
+ {
+ sdf->isMu2 = true;
+- sdf->mu2 = boost::lexical_cast<double>(
++ sdf->mu2 = std::stod(
+ GetKeyValueAsString(childElem).c_str());
+ }
+ else if (childElem->ValueStr() == "fdir1")
+@@ -1465,13 +1466,13 @@ void URDF2SDF::ParseSDFExtension(TiXmlDo
+ else if (childElem->ValueStr() == "kp")
+ {
+ sdf->isKp = true;
+- sdf->kp = boost::lexical_cast<double>(
++ sdf->kp = std::stod(
+ GetKeyValueAsString(childElem).c_str());
+ }
+ else if (childElem->ValueStr() == "kd")
+ {
+ sdf->isKd = true;
+- sdf->kd = boost::lexical_cast<double>(
++ sdf->kd = std::stod(
+ GetKeyValueAsString(childElem).c_str());
+ }
+ else if (childElem->ValueStr() == "selfCollide")
+@@ -1488,13 +1489,13 @@ void URDF2SDF::ParseSDFExtension(TiXmlDo
+ else if (childElem->ValueStr() == "maxContacts")
+ {
+ sdf->isMaxContacts = true;
+- sdf->maxContacts = boost::lexical_cast<int>(
++ sdf->maxContacts = std::stoi(
+ GetKeyValueAsString(childElem).c_str());
+ }
+ else if (childElem->ValueStr() == "laserRetro")
+ {
+ sdf->isLaserRetro = true;
+- sdf->laserRetro = boost::lexical_cast<double>(
++ sdf->laserRetro = std::stod(
+ GetKeyValueAsString(childElem).c_str());
+ }
+ else if (childElem->ValueStr() == "springReference")
+@@ -1510,37 +1511,37 @@ void URDF2SDF::ParseSDFExtension(TiXmlDo
+ else if (childElem->ValueStr() == "stopCfm")
+ {
+ sdf->isStopCfm = true;
+- sdf->stopCfm = boost::lexical_cast<double>(
++ sdf->stopCfm = std::stod(
+ GetKeyValueAsString(childElem).c_str());
+ }
+ else if (childElem->ValueStr() == "stopErp")
+ {
+ sdf->isStopErp = true;
+- sdf->stopErp = boost::lexical_cast<double>(
++ sdf->stopErp = std::stod(
+ GetKeyValueAsString(childElem).c_str());
+ }
+ else if (childElem->ValueStr() == "stopKp")
+ {
+ sdf->isStopKp = true;
+- sdf->stopKp = boost::lexical_cast<double>(
++ sdf->stopKp = std::stod(
+ GetKeyValueAsString(childElem).c_str());
+ }
+ else if (childElem->ValueStr() == "stopKd")
+ {
+ sdf->isStopKd = true;
+- sdf->stopKd = boost::lexical_cast<double>(
++ sdf->stopKd = std::stod(
+ GetKeyValueAsString(childElem).c_str());
+ }
+ else if (childElem->ValueStr() == "initialJointPosition")
+ {
+ sdf->isInitialJointPosition = true;
+- sdf->initialJointPosition = boost::lexical_cast<double>(
++ sdf->initialJointPosition = std::stod(
+ GetKeyValueAsString(childElem).c_str());
+ }
+ else if (childElem->ValueStr() == "fudgeFactor")
+ {
+ sdf->isFudgeFactor = true;
+- sdf->fudgeFactor = boost::lexical_cast<double>(
++ sdf->fudgeFactor = std::stod(
+ GetKeyValueAsString(childElem).c_str());
+ }
+ else if (childElem->ValueStr() == "provideFeedback")
+@@ -1917,7 +1918,7 @@ void InsertSDFExtensionCollision(TiXmlEl
+ if ((*ge)->isMaxContacts)
+ {
+ AddKeyValue(_elem, "max_contacts",
+- boost::lexical_cast<std::string>((*ge)->maxContacts));
++ std::to_string((*ge)->maxContacts));
+ }
+ }
+ }
+@@ -2339,7 +2340,7 @@ void InsertSDFExtensionRobot(TiXmlElemen
+
+ ////////////////////////////////////////////////////////////////////////////////
+ void CreateGeometry(TiXmlElement* _elem,
+- boost::shared_ptr<urdf::Geometry> _geom)
++ std::shared_ptr<urdf::Geometry> _geom)
+ {
+ TiXmlElement *sdfGeometry = new TiXmlElement("geometry");
+
+@@ -2351,8 +2352,8 @@ void CreateGeometry(TiXmlElement* _elem,
+ case urdf::Geometry::BOX:
+ type = "box";
+ {
+- boost::shared_ptr<const urdf::Box> box;
+- box = boost::dynamic_pointer_cast< const urdf::Box >(_geom);
++ std::shared_ptr<const urdf::Box> box;
++ box = std::dynamic_pointer_cast< const urdf::Box >(_geom);
+ int sizeCount = 3;
+ double sizeVals[3];
+ sizeVals[0] = box->dim.x;
+@@ -2366,8 +2367,8 @@ void CreateGeometry(TiXmlElement* _elem,
+ case urdf::Geometry::CYLINDER:
+ type = "cylinder";
+ {
+- boost::shared_ptr<const urdf::Cylinder> cylinder;
+- cylinder = boost::dynamic_pointer_cast<const urdf::Cylinder >(_geom);
++ std::shared_ptr<const urdf::Cylinder> cylinder;
++ cylinder = std::dynamic_pointer_cast<const urdf::Cylinder >(_geom);
+ geometryType = new TiXmlElement(type);
+ AddKeyValue(geometryType, "length",
+ Values2str(1, &cylinder->length));
+@@ -2378,8 +2379,8 @@ void CreateGeometry(TiXmlElement* _elem,
+ case urdf::Geometry::SPHERE:
+ type = "sphere";
+ {
+- boost::shared_ptr<const urdf::Sphere> sphere;
+- sphere = boost::dynamic_pointer_cast<const urdf::Sphere >(_geom);
++ std::shared_ptr<const urdf::Sphere> sphere;
++ sphere = std::dynamic_pointer_cast<const urdf::Sphere >(_geom);
+ geometryType = new TiXmlElement(type);
+ AddKeyValue(geometryType, "radius",
+ Values2str(1, &sphere->radius));
+@@ -2388,8 +2389,8 @@ void CreateGeometry(TiXmlElement* _elem,
+ case urdf::Geometry::MESH:
+ type = "mesh";
+ {
+- boost::shared_ptr<const urdf::Mesh> mesh;
+- mesh = boost::dynamic_pointer_cast<const urdf::Mesh >(_geom);
++ std::shared_ptr<const urdf::Mesh> mesh;
++ mesh = std::dynamic_pointer_cast<const urdf::Mesh >(_geom);
+ geometryType = new TiXmlElement(type);
+ AddKeyValue(geometryType, "scale", Vector32Str(mesh->scale));
+ // do something more to meshes
+@@ -2451,7 +2452,7 @@ void CreateGeometry(TiXmlElement* _elem,
+
+ ////////////////////////////////////////////////////////////////////////////////
+ std::string GetGeometryBoundingBox(
+- boost::shared_ptr<urdf::Geometry> _geom, double *_sizeVals)
++ std::shared_ptr<urdf::Geometry> _geom, double *_sizeVals)
+ {
+ std::string type;
+
+@@ -2460,8 +2461,8 @@ std::string GetGeometryBoundingBox(
+ case urdf::Geometry::BOX:
+ type = "box";
+ {
+- boost::shared_ptr<const urdf::Box> box;
+- box = boost::dynamic_pointer_cast<const urdf::Box >(_geom);
++ std::shared_ptr<const urdf::Box> box;
++ box = std::dynamic_pointer_cast<const urdf::Box >(_geom);
+ _sizeVals[0] = box->dim.x;
+ _sizeVals[1] = box->dim.y;
+ _sizeVals[2] = box->dim.z;
+@@ -2470,8 +2471,8 @@ std::string GetGeometryBoundingBox(
+ case urdf::Geometry::CYLINDER:
+ type = "cylinder";
+ {
+- boost::shared_ptr<const urdf::Cylinder> cylinder;
+- cylinder = boost::dynamic_pointer_cast<const urdf::Cylinder >(_geom);
++ std::shared_ptr<const urdf::Cylinder> cylinder;
++ cylinder = std::dynamic_pointer_cast<const urdf::Cylinder >(_geom);
+ _sizeVals[0] = cylinder->radius * 2;
+ _sizeVals[1] = cylinder->radius * 2;
+ _sizeVals[2] = cylinder->length;
+@@ -2480,16 +2481,16 @@ std::string GetGeometryBoundingBox(
+ case urdf::Geometry::SPHERE:
+ type = "sphere";
+ {
+- boost::shared_ptr<const urdf::Sphere> sphere;
+- sphere = boost::dynamic_pointer_cast<const urdf::Sphere >(_geom);
++ std::shared_ptr<const urdf::Sphere> sphere;
++ sphere = std::dynamic_pointer_cast<const urdf::Sphere >(_geom);
+ _sizeVals[0] = _sizeVals[1] = _sizeVals[2] = sphere->radius * 2;
+ }
+ break;
+ case urdf::Geometry::MESH:
+ type = "trimesh";
+ {
+- boost::shared_ptr<const urdf::Mesh> mesh;
+- mesh = boost::dynamic_pointer_cast<const urdf::Mesh >(_geom);
++ std::shared_ptr<const urdf::Mesh> mesh;
++ mesh = std::dynamic_pointer_cast<const urdf::Mesh >(_geom);
+ _sizeVals[0] = mesh->scale.x;
+ _sizeVals[1] = mesh->scale.y;
+ _sizeVals[2] = mesh->scale.z;
+@@ -2513,7 +2514,7 @@ void PrintCollisionGroups(UrdfLinkPtr _l
+ << static_cast<int>(_link->collision_groups.size())
+ << "] collisions.\n";
+ for (std::map<std::string,
+- boost::shared_ptr<std::vector<UrdfCollisionPtr > > >::iterator
++ std::shared_ptr<std::vector<UrdfCollisionPtr > > >::iterator
+ colsIt = _link->collision_groups.begin();
+ colsIt != _link->collision_groups.end(); ++colsIt)
+ {
+@@ -2906,7 +2907,7 @@ void CreateCollisions(TiXmlElement* _ele
+ // lumped meshes (fixed joint reduction)
+ #ifndef URDF_GE_0P3
+ for (std::map<std::string,
+- boost::shared_ptr<std::vector<UrdfCollisionPtr> > >::const_iterator
++ std::shared_ptr<std::vector<UrdfCollisionPtr> > >::const_iterator
+ collisionsIt = _link->collision_groups.begin();
+ collisionsIt != _link->collision_groups.end(); ++collisionsIt)
+ {
+@@ -3028,7 +3029,7 @@ void CreateVisuals(TiXmlElement* _elem,
+ // lumped meshes (fixed joint reduction)
+ #ifndef URDF_GE_0P3
+ for (std::map<std::string,
+- boost::shared_ptr<std::vector<UrdfVisualPtr> > >::const_iterator
++ std::shared_ptr<std::vector<UrdfVisualPtr> > >::const_iterator
+ visualsIt = _link->visual_groups.begin();
+ visualsIt != _link->visual_groups.end(); ++visualsIt)
+ {
+@@ -3411,7 +3412,7 @@ TiXmlDocument URDF2SDF::InitModelString(
+ g_enforceLimits = _enforceLimits;
+
+ // Create a RobotModel from string
+- boost::shared_ptr<urdf::ModelInterface> robotModel =
++ std::shared_ptr<urdf::ModelInterface> robotModel =
+ urdf::parseURDF(_urdfStr.c_str());
+
+ // an xml object to hold the xml result
+@@ -3453,7 +3454,7 @@ TiXmlDocument URDF2SDF::InitModelString(
+ // fixed joint lumping only for selected joints
+ if (g_reduceFixedJoints)
+ ReduceFixedJoints(robot,
+- (boost::const_pointer_cast< urdf::Link >(rootLink)));
++ (std::const_pointer_cast< urdf::Link >(rootLink)));
+
+ if (rootLink->name == "world")
+ {
+@@ -3514,7 +3515,7 @@ TiXmlDocument URDF2SDF::InitModelFile(co
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////
+-bool FixedJointShouldBeReduced(boost::shared_ptr<urdf::Joint> _jnt)
++bool FixedJointShouldBeReduced(std::shared_ptr<urdf::Joint> _jnt)
+ {
+ // A joint should be lumped only if its type is fixed and
+ // the disabledFixedJointLumping joint option is not set
diff --git a/dev-libs/sdformat/metadata.xml b/dev-libs/sdformat/metadata.xml
new file mode 100644
index 000000000000..6ca4a599be8f
--- /dev/null
+++ b/dev-libs/sdformat/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="person">
+<email>aballier@gentoo.org</email>
+<name>Alexis Ballier</name>
+</maintainer>
+</pkgmetadata>
diff --git a/dev-libs/sdformat/sdformat-5.2.0.ebuild b/dev-libs/sdformat/sdformat-5.2.0.ebuild
new file mode 100644
index 000000000000..c3c7512d27ef
--- /dev/null
+++ b/dev-libs/sdformat/sdformat-5.2.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit cmake-utils
+
+DESCRIPTION="Simulation Description Format (SDF) parser"
+HOMEPAGE="http://sdformat.org/"
+SRC_URI="http://osrf-distributions.s3.amazonaws.com/sdformat/releases/${P}.tar.bz2"
+
+LICENSE="Apache-2.0"
+# subslot = libsdformat major
+SLOT="0/5"
+KEYWORDS="~amd64"
+IUSE=""
+
+RDEPEND="
+ >=dev-libs/urdfdom-1:=
+ dev-libs/tinyxml
+ dev-libs/boost:=
+ sci-libs/ignition-math:3=
+"
+DEPEND="${RDEPEND}
+ dev-lang/ruby:*
+ virtual/pkgconfig
+"
+CMAKE_BUILD_TYPE=RelWithDebInfo
+PATCHES=( "${FILESDIR}/urdfdom1.patch" )
+
+src_configure() {
+ echo "set (CMAKE_C_FLAGS_ALL \"${CXXFLAGS} \${CMAKE_C_FLAGS_ALL}\")" > "${S}/cmake/HostCFlags.cmake"
+ sed -i -e "s/LINK_FLAGS_RELWITHDEBINFO \" \"/LINK_FLAGS_RELWITHDEBINFO \" ${LDFLAGS} \"/" cmake/DefaultCFlags.cmake || die
+ local mycmakeargs=(
+ "-DUSE_EXTERNAL_URDF=ON"
+ "-DUSE_EXTERNAL_TINYXML=ON"
+ )
+ cmake-utils_src_configure
+}
diff --git a/dev-libs/sdformat/sdformat-5.3.0.ebuild b/dev-libs/sdformat/sdformat-5.3.0.ebuild
new file mode 100644
index 000000000000..c3c7512d27ef
--- /dev/null
+++ b/dev-libs/sdformat/sdformat-5.3.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit cmake-utils
+
+DESCRIPTION="Simulation Description Format (SDF) parser"
+HOMEPAGE="http://sdformat.org/"
+SRC_URI="http://osrf-distributions.s3.amazonaws.com/sdformat/releases/${P}.tar.bz2"
+
+LICENSE="Apache-2.0"
+# subslot = libsdformat major
+SLOT="0/5"
+KEYWORDS="~amd64"
+IUSE=""
+
+RDEPEND="
+ >=dev-libs/urdfdom-1:=
+ dev-libs/tinyxml
+ dev-libs/boost:=
+ sci-libs/ignition-math:3=
+"
+DEPEND="${RDEPEND}
+ dev-lang/ruby:*
+ virtual/pkgconfig
+"
+CMAKE_BUILD_TYPE=RelWithDebInfo
+PATCHES=( "${FILESDIR}/urdfdom1.patch" )
+
+src_configure() {
+ echo "set (CMAKE_C_FLAGS_ALL \"${CXXFLAGS} \${CMAKE_C_FLAGS_ALL}\")" > "${S}/cmake/HostCFlags.cmake"
+ sed -i -e "s/LINK_FLAGS_RELWITHDEBINFO \" \"/LINK_FLAGS_RELWITHDEBINFO \" ${LDFLAGS} \"/" cmake/DefaultCFlags.cmake || die
+ local mycmakeargs=(
+ "-DUSE_EXTERNAL_URDF=ON"
+ "-DUSE_EXTERNAL_TINYXML=ON"
+ )
+ cmake-utils_src_configure
+}
diff --git a/dev-libs/sdformat/sdformat-6.0.0.ebuild b/dev-libs/sdformat/sdformat-6.0.0.ebuild
new file mode 100644
index 000000000000..559a61abd081
--- /dev/null
+++ b/dev-libs/sdformat/sdformat-6.0.0.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit cmake-utils
+
+DESCRIPTION="Simulation Description Format (SDF) parser"
+HOMEPAGE="http://sdformat.org/"
+SRC_URI="http://osrf-distributions.s3.amazonaws.com/sdformat/releases/${P}.tar.bz2"
+
+LICENSE="Apache-2.0"
+# subslot = libsdformat major
+SLOT="0/6"
+KEYWORDS="~amd64"
+IUSE=""
+
+RDEPEND="
+ >=dev-libs/urdfdom-1:=
+ dev-libs/tinyxml
+ dev-libs/boost:=
+ sci-libs/ignition-math:4=
+"
+DEPEND="${RDEPEND}
+ dev-lang/ruby:*
+ virtual/pkgconfig
+"
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+src_configure() {
+ echo "set (CMAKE_C_FLAGS_ALL \"${CXXFLAGS} \${CMAKE_C_FLAGS_ALL}\")" > "${S}/cmake/HostCFlags.cmake"
+ sed -i -e "s/LINK_FLAGS_RELWITHDEBINFO \" \"/LINK_FLAGS_RELWITHDEBINFO \" ${LDFLAGS} \"/" cmake/DefaultCFlags.cmake || die
+ local mycmakeargs=(
+ "-DUSE_INTERNAL_URDF=OFF"
+ "-DUSE_EXTERNAL_TINYXML=ON"
+ )
+ cmake-utils_src_configure
+}