Skip to content
Snippets Groups Projects
Commit 3348f2d8 authored by Lukas Bulwahn's avatar Lukas Bulwahn
Browse files

Merge pull request #47 from herbrechtsmeier/native-rework

Work on catkin and updating all recipes to improve the aspect of which native packages the packages really depend on. 
parents d9ee34e6 36f0eb3c
No related branches found
No related tags found
No related merge requests found
Showing
with 123 additions and 157 deletions
......@@ -6,7 +6,6 @@ inherit cmake distutils-base
DEPENDS_prepend = "${@['catkin-native ', ''][d.getVar('BPN', True) == 'catkin']}"
EXTRA_OECMAKE_CATKIN = "\
-DCMAKE_PREFIX_PATH='${STAGING_DIR_HOST}/usr;${STAGING_DIR_NATIVE}/usr' \
"
......@@ -37,9 +36,7 @@ ROS_BP = "${BPN}-${PV}"
FILES_${PN} += "\
${prefix}/etc \
${datadir}/ros/config/${ROS_BPN}.config \
${datadir}/${ROS_BPN}/conf \
${datadir}/${ROS_BPN}/scripts \
${datadir}/${ROS_BPN}/msg \
${datadir}/${ROS_BPN} \
"
FILES_${PN}-dev += "\
......@@ -47,3 +44,5 @@ FILES_${PN}-dev += "\
${datadir}/${ROS_BPN}/package.xml \
${datadir}/${ROS_BPN}/*.template \
"
BBCLASSEXTEND += "native"
From a34e7d9d7f77c123cb8cbf464ead628f97e42fd4 Mon Sep 17 00:00:00 2001
From: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
Date: Wed, 13 Mar 2013 11:49:17 +0100
Subject: [PATCH] CATKIN_WORKSPACES: Don't require .catkin file
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
---
cmake/all.cmake | 8 +++-----
cmake/list_insert_in_workspace_order.cmake | 9 ++++-----
2 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/cmake/all.cmake b/cmake/all.cmake
index 83da965..a5f9df9 100644
--- a/cmake/all.cmake
+++ b/cmake/all.cmake
@@ -44,11 +44,9 @@ set(CMAKE_PREFIX_PATH_AS_IS ${CMAKE_PREFIX_PATH})
# list of unique catkin workspaces based on CMAKE_PREFIX_PATH
set(CATKIN_WORKSPACES "")
foreach(path ${CMAKE_PREFIX_PATH})
- if(EXISTS "${path}/.catkin")
- list(FIND CATKIN_WORKSPACES ${path} _index)
- if(_index EQUAL -1)
- list(APPEND CATKIN_WORKSPACES ${path})
- endif()
+ list(FIND CATKIN_WORKSPACES ${path} _index)
+ if(_index EQUAL -1)
+ list(APPEND CATKIN_WORKSPACES ${path})
endif()
endforeach()
if(CATKIN_WORKSPACES)
diff --git a/cmake/list_insert_in_workspace_order.cmake b/cmake/list_insert_in_workspace_order.cmake
index 57ade4a..46887af 100644
--- a/cmake/list_insert_in_workspace_order.cmake
+++ b/cmake/list_insert_in_workspace_order.cmake
@@ -4,12 +4,11 @@
set(CATKIN_ORDERED_SPACES "")
foreach(_space ${CATKIN_DEVEL_PREFIX} ${CATKIN_WORKSPACES})
list(APPEND CATKIN_ORDERED_SPACES ${_space})
- if(NOT EXISTS "${_space}/.catkin")
- message(FATAL_ERROR "The path '${_space}' is in CATKIN_WORKSPACES but does not have a .catkin file")
+ if(EXISTS "${_space}/.catkin")
+ # prepend to existing list of sourcespaces
+ file(READ "${_space}/.catkin" _sourcespaces)
+ list(APPEND CATKIN_ORDERED_SPACES ${_sourcespaces})
endif()
- # prepend to existing list of sourcespaces
- file(READ "${_space}/.catkin" _sourcespaces)
- list(APPEND CATKIN_ORDERED_SPACES ${_sourcespaces})
endforeach()
debug_message(10 "CATKIN_ORDERED_SPACES ${CATKIN_ORDERED_SPACES}")
--
1.7.0.4
From 0f10cb9e60b4556e80535c4d67183f056520f4ab Mon Sep 17 00:00:00 2001
From: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
Date: Tue, 26 Feb 2013 16:46:27 +0100
Subject: [PATCH 1/2] pkgConfig.cmake: use filenames in PKG_CFG_EXTRAS
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
---
cmake/catkin_package.cmake | 16 ++++++++++------
cmake/templates/pkgConfig.cmake.in | 4 +++-
2 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/cmake/catkin_package.cmake b/cmake/catkin_package.cmake
index 7c37d03..c758dae 100644
--- a/cmake/catkin_package.cmake
+++ b/cmake/catkin_package.cmake
@@ -328,7 +328,7 @@ function(_catkin_package)
${CMAKE_CURRENT_BINARY_DIR}/catkin_generated/${extra}.develspace.context.cmake.py
${em_template}
${CATKIN_DEVEL_PREFIX}/share/${PROJECT_NAME}/cmake/${extra})
- list(APPEND PKG_CFG_EXTRAS ${CATKIN_DEVEL_PREFIX}/share/${PROJECT_NAME}/cmake/${extra})
+ list(APPEND PKG_CFG_EXTRAS ${extra})
elseif(EXISTS ${base}.in OR EXISTS ${base}.develspace.in)
if(EXISTS ${base}.develspace.in)
set(in_template ${base}.develspace.in)
@@ -339,9 +339,13 @@ function(_catkin_package)
${CATKIN_DEVEL_PREFIX}/share/${PROJECT_NAME}/cmake/${extra}
@ONLY
)
- list(APPEND PKG_CFG_EXTRAS ${CATKIN_DEVEL_PREFIX}/share/${PROJECT_NAME}/cmake/${extra})
+ list(APPEND PKG_CFG_EXTRAS ${extra})
elseif(EXISTS ${base})
- list(APPEND PKG_CFG_EXTRAS ${base})
+ configure_file(${base}
+ ${CATKIN_DEVEL_PREFIX}/share/${PROJECT_NAME}/cmake/${extra}
+ COPYONLY
+ )
+ list(APPEND PKG_CFG_EXTRAS ${extra})
elseif(NOT EXISTS ${base}.installspace.em AND NOT EXISTS ${base}.installspace.in)
message(FATAL_ERROR "catkin_package() could not find CFG_EXTRAS file. Either 'cmake/${extra}.develspace.em', 'cmake/${extra}.em', 'cmake/${extra}.develspace.in', 'cmake/${extra}.in', 'cmake/${extra}' or a variant specific to the installspace must exist.")
endif()
@@ -430,7 +434,7 @@ function(_catkin_package)
${em_template}
${CMAKE_CURRENT_BINARY_DIR}/catkin_generated/installspace/${extra})
list(APPEND installable_cfg_extras ${CMAKE_CURRENT_BINARY_DIR}/catkin_generated/installspace/${extra})
- list(APPEND PKG_CFG_EXTRAS ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/cmake/${extra})
+ list(APPEND PKG_CFG_EXTRAS ${extra})
elseif(EXISTS ${base}.in OR EXISTS ${base}.installspace.in)
if(EXISTS ${base}.installspace.in)
set(in_template ${base}.installspace.in)
@@ -442,10 +446,10 @@ function(_catkin_package)
@ONLY
)
list(APPEND installable_cfg_extras ${CMAKE_CURRENT_BINARY_DIR}/catkin_generated/installspace/${extra})
- list(APPEND PKG_CFG_EXTRAS ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/cmake/${extra})
+ list(APPEND PKG_CFG_EXTRAS ${extra})
elseif(EXISTS ${base})
list(APPEND installable_cfg_extras ${base})
- list(APPEND PKG_CFG_EXTRAS ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/cmake/${extra})
+ list(APPEND PKG_CFG_EXTRAS ${extra})
elseif(NOT EXISTS ${base}.develspace.em AND NOT EXISTS ${base}.develspace.in)
message(FATAL_ERROR "catkin_package() could not find CFG_EXTRAS file. Either 'cmake/${extra}.installspace.em', 'cmake/${extra}.em', 'cmake/${extra}.installspace.in', 'cmake/${extra}.in', 'cmake/${extra}'or a variant specific to the develspace must exist.")
endif()
diff --git a/cmake/templates/pkgConfig.cmake.in b/cmake/templates/pkgConfig.cmake.in
index 03e8a1c..0ee9231 100644
--- a/cmake/templates/pkgConfig.cmake.in
+++ b/cmake/templates/pkgConfig.cmake.in
@@ -70,6 +70,8 @@ else()
set(@PROJECT_NAME@_PREFIX ${@PROJECT_NAME@_INSTALL_PREFIX})
endif()
+set(@PROJECT_NAME@_EXTRAS_DIR ${CMAKE_CURRENT_LIST_DIR})
+
# warn when using a deprecated package
if(NOT "@PROJECT_DEPRECATED@" STREQUAL "")
set(_msg "WARNING: package '@PROJECT_NAME@' is deprecated")
@@ -165,5 +167,5 @@ if(@PROJECT_NAME@_LIBRARIES)
endif()
foreach(extra @PKG_CFG_EXTRAS@)
- include(${extra})
+ include(${@PROJECT_NAME@_EXTRAS_DIR}/${extra})
endforeach()
--
1.7.0.4
From 11807c9e751f53781419cfc5503e2544aac354d8 Mon Sep 17 00:00:00 2001
From: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
Date: Tue, 26 Feb 2013 16:51:30 +0100
Subject: [PATCH 2/2] catkin_package.cmake: use ${PROJECT_NAME}_EXTRAS_DIR for PKG_CMAKE_DIR
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
---
cmake/catkinConfig.cmake.in | 2 +-
cmake/catkin_package.cmake | 7 ++-----
2 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/cmake/catkinConfig.cmake.in b/cmake/catkinConfig.cmake.in
index f265b59..2b4fafa 100644
--- a/cmake/catkinConfig.cmake.in
+++ b/cmake/catkinConfig.cmake.in
@@ -11,7 +11,7 @@
# contains the include dirs / library dirs / libraries of the searched component <comp>.
if(CATKIN_TOPLEVEL_FIND_PACKAGE OR NOT CATKIN_TOPLEVEL)
- set(catkin_EXTRAS_DIR "@PKG_CMAKE_DIR@")
+ set(catkin_EXTRAS_DIR ${CMAKE_CURRENT_LIST_DIR})
# prevent multiple inclusion from repeated find_package() calls in non-workspace context
# as long as this variable is in the scope the variables from all.cmake are also, so no need to be evaluated again
diff --git a/cmake/catkin_package.cmake b/cmake/catkin_package.cmake
index c758dae..b1b7811 100644
--- a/cmake/catkin_package.cmake
+++ b/cmake/catkin_package.cmake
@@ -294,10 +294,7 @@ function(_catkin_package)
# prepend library path of this workspace
set(PKG_CONFIG_LIB_PATHS ${lib_paths})
list(INSERT PKG_CONFIG_LIB_PATHS 0 ${PROJECT_SPACE_DIR}/lib)
- set(PKG_CMAKE_DIR ${PROJECT_SPACE_DIR}/share/${PROJECT_NAME}/cmake)
- if("${PROJECT_NAME}" STREQUAL "catkin")
- set(PKG_CMAKE_DIR "${catkin_EXTRAS_DIR}")
- endif()
+ set(PKG_CMAKE_DIR "\${${PROJECT_NAME}_EXTRAS_DIR}")
if(NOT PROJECT_SKIP_PKG_CONFIG_GENERATION)
# ensure that output folder exists
@@ -398,7 +395,7 @@ function(_catkin_package)
# prepend library path of this workspace
set(PKG_CONFIG_LIB_PATHS ${lib_paths})
list(INSERT PKG_CONFIG_LIB_PATHS 0 ${PROJECT_SPACE_DIR}/lib)
- set(PKG_CMAKE_DIR ${PROJECT_SPACE_DIR}/share/${PROJECT_NAME}/cmake)
+ set(PKG_CMAKE_DIR "\${${PROJECT_NAME}_EXTRAS_DIR}")
if(NOT PROJECT_SKIP_PKG_CONFIG_GENERATION)
# ensure that output folder exists
--
1.7.0.4
......@@ -6,12 +6,11 @@ LIC_FILES_CHKSUM = "file://package.xml;beginline=7;endline=7;md5=d566ef916e9dedc
DEPENDS = "cmake python-empy python-catkin-pkg"
SRC_URI = "git://github.com/ros/${BPN}.git \
file://0001-pkgConfig.cmake-use-filenames-in-PKG_CFG_EXTRAS.patch \
file://0002-catkin_package.cmake-use-PROJECT_NAME-_EXTRAS_DIR-fo.patch \
file://0001-CATKIN_WORKSPACES-Don-t-require-.catkin-file.patch \
"
SRCREV = "cbe6a0ce3ac6d13914d3b4b010148f72e7984149"
PV = "0.5.63+gitr${SRCPV}"
SRCREV = "041f6fc530b56cb6664824db399416f17c1961dd"
PV = "0.5.64+gitr${SRCPV}"
S = "${WORKDIR}/git"
......
......@@ -3,7 +3,7 @@ SECTION = "devel"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://package.xml;beginline=7;endline=7;md5=d566ef916e9dedc494f5f793a6690ba5"
DEPENDS = "genmsg"
DEPENDS = "genmsg-native"
SRC_URI = "https://github.com/ros/${BPN}/archive/${PV}.tar.gz;downloadfilename=${BP}.tar.gz"
SRC_URI[md5sum] = "be0b3986e98f3370fef4c1fffe3a69f4"
......
......@@ -3,7 +3,7 @@ SECTION = "devel"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://package.xml;beginline=9;endline=9;md5=d566ef916e9dedc494f5f793a6690ba5"
DEPENDS = "genmsg"
DEPENDS = "genmsg-native"
SRC_URI = "https://github.com/ros/${BPN}/archive/${PV}.tar.gz;downloadfilename=${BP}.tar.gz"
SRC_URI[md5sum] = "ae3026fd36a31d286f79a9111450adfa"
......
diff -Naur a/cmake/genmsg-extras.cmake.em b/cmake/genmsg-extras.cmake.em
--- a/cmake/genmsg-extras.cmake.em 2013-01-19 20:01:11.000000000 +0100
+++ b/cmake/genmsg-extras.cmake.em 2013-03-13 16:39:51.000000000 +0100
@@ -172,8 +172,7 @@
${CATKIN_DEVEL_PREFIX}/share/${PROJECT_NAME}/cmake/${PROJECT_NAME}-msg-paths.cmake
@@ONLY)
# generate and install config of message include dirs for project
- _prepend_path(${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME} "${${PROJECT_NAME}_MSG_INCLUDE_DIRS_INSTALLSPACE}" INCLUDE_DIRS_W_PATH)
- set(PKG_MSG_INCLUDE_DIRS "${INCLUDE_DIRS_W_PATH}")
+ set(PKG_MSG_INCLUDE_DIRS "${${PROJECT_NAME}_MSG_INCLUDE_DIRS_INSTALLSPACE}")
configure_file(
${genmsg_CMAKE_DIR}/pkg-msg-paths.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/catkin_generated/installspace/${PROJECT_NAME}-msg-paths.cmake
diff -Naur a/cmake/pkg-msg-paths.cmake.in b/cmake/pkg-msg-paths.cmake.in
--- a/cmake/pkg-msg-paths.cmake.in 2013-01-19 20:01:11.000000000 +0100
+++ b/cmake/pkg-msg-paths.cmake.in 2013-03-13 16:37:32.000000000 +0100
@@ -1,2 +1,5 @@
set(@PROJECT_NAME@_MSG_INCLUDE_DIRS @PKG_MSG_INCLUDE_DIRS@)
+if(NOT IS_ABSOLUTE ${@PROJECT_NAME@_MSG_INCLUDE_DIRS})
+ set(@PROJECT_NAME@_MSG_INCLUDE_DIRS ${@PROJECT_NAME@_DIR}/../${@PROJECT_NAME@_MSG_INCLUDE_DIRS})
+endif()
set(@PROJECT_NAME@_MSG_DEPENDENCIES @ARG_DEPENDENCIES@)
......@@ -3,7 +3,10 @@ SECTION = "devel"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://package.xml;beginline=9;endline=9;md5=d566ef916e9dedc494f5f793a6690ba5"
SRC_URI = "https://github.com/ros/${BPN}/archive/${PV}.tar.gz;downloadfilename=${BP}.tar.gz"
SRC_URI = "https://github.com/ros/${BPN}/archive/${PV}.tar.gz;downloadfilename=${BP}.tar.gz \
file://0001-modify-msg-file-handling-to-reference-them-relatively.patch \
"
SRC_URI[md5sum] = "de385f1796bf025915ed7b20e1e1acc4"
SRC_URI[sha256sum] = "e510caa7692a4b0a0948688b9d2d8f6ff2f329980d7f78787276afec030806b7"
......
......@@ -3,7 +3,7 @@ SECTION = "devel"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://package.xml;beginline=7;endline=7;md5=d566ef916e9dedc494f5f793a6690ba5"
DEPENDS = "genmsg"
DEPENDS = "genmsg-native"
SRC_URI = "https://github.com/ros/${BPN}/archive/${PV}.tar.gz;downloadfilename=${BP}.tar.gz"
SRC_URI[md5sum] = "23915e68167ba6d58c65920bfabd2fad"
......
......@@ -3,7 +3,7 @@ SECTION = "devel"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://package.xml;beginline=7;endline=7;md5=d566ef916e9dedc494f5f793a6690ba5"
DEPENDS = "gencpp"
DEPENDS = "gencpp-native genlisp-native genmsg-native genpy-native"
SRC_URI = "https://github.com/ros/${ROS_BPN}/archive/${PV}.tar.gz;downloadfilename=${ROS_BP}.tar.gz"
SRC_URI[md5sum] = "b3086fbe24cc103f412cb30d83362e36"
......
......@@ -3,7 +3,7 @@ SECTION = "devel"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://package.xml;beginline=7;endline=7;md5=d566ef916e9dedc494f5f793a6690ba5"
DEPENDS = "gencpp"
DEPENDS = "gencpp-native"
SRC_URI = "https://github.com/ros/${ROS_BPN}/archive/${PV}.tar.gz;downloadfilename=${ROS_BP}.tar.gz"
SRC_URI[md5sum] = "10a516326a3bf18f5b5b4523c6e53940"
......
......@@ -12,19 +12,41 @@ RDEPENDS_${PN} = "\
genmsg \
rosgraph \
genpy \
rosbuild \
rospack \
rosmake \
rosboost-cfg \
rosbash \
roslib \
roscreate \
mk \
rosclean \
rosunit \
roslang \
roscpp \
rosout \
roscpp-serialization \
roscpp-traits \
topic-tools \
rostest \
rostopic \
message-generation \
cpp-common \
genlisp \
message-filters \
rosservice \
rospy \
rosgraph-msgs \
rosnode \
std-srvs \
xmlrpcpp \
roslaunch \
rosmaster \
roswtf \
rosbag \
rosmsg \
std-msgs \
message-runtime \
rostime \
gencpp \
"
......@@ -3,7 +3,7 @@ SECTION = "devel"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://package.xml;beginline=8;endline=8;md5=d566ef916e9dedc494f5f793a6690ba5"
DEPENDS = "boost rosconsole roscpp rostest rosunit xmlrpcpp"
DEPENDS = "boost rosconsole roscpp rostest-native rosunit-native xmlrpcpp"
require ros-comm.inc
......
......@@ -7,10 +7,12 @@ LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://package.xml;beginline=16;endline=16;md5=d566ef916e9dedc494f5f793a6690ba5"
DEPENDS = "\
catkin-native cpp-common message-generation rosconsole roscpp-serialization \
catkin-native cpp-common message-generation-native rosconsole roscpp-serialization \
roscpp-traits rosgraph-msgs roslang rostime std-msgs xmlrpcpp \
"
require ros-comm.inc
S = "${WORKDIR}/ros_comm-${PV}/clients/${BPN}"
CXXFLAGS_append = " -I${OECMAKE_BUILDPATH}/devel/include"
......@@ -3,7 +3,7 @@ SECTION = "devel"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://package.xml;beginline=8;endline=8;md5=d566ef916e9dedc494f5f793a6690ba5"
DEPENDS = "message-generation message-runtime std-msgs"
DEPENDS = "message-generation-native message-runtime-native std-msgs roscpp-serialization"
require ros-comm.inc
......
......@@ -4,7 +4,7 @@ SECTION = "devel"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://package.xml;beginline=12;endline=12;md5=d566ef916e9dedc494f5f793a6690ba5"
DEPENDS = "rostest"
DEPENDS = "rostest-native"
require ros-comm.inc
......
......@@ -8,3 +8,5 @@ DEPENDS = "boost rosunit-native"
require ros-comm.inc
S = "${WORKDIR}/ros_comm-${PV}/tools/${BPN}"
OECMAKE_EXTRA_ROOT_PATH_class-native = "${OECMAKE_BUILDPATH}/devel"
......@@ -4,7 +4,7 @@ SECTION = "devel"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://package.xml;beginline=17;endline=17;md5=d566ef916e9dedc494f5f793a6690ba5"
DEPENDS = "rostest"
DEPENDS = "rostest-native"
require ros-comm.inc
......
......@@ -3,7 +3,7 @@ SECTION = "devel"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://package.xml;beginline=8;endline=8;md5=d566ef916e9dedc494f5f793a6690ba5"
DEPENDS = "rostest"
DEPENDS = "rostest-native"
require ros-comm.inc
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment