catkin: updating to 0.5.73
The catkin recipe was updated to 0.5.73 to be in line with
4551e7c32d/hydro/release.yaml
.
The previously applied patch has been included in 0.5.73 and is
removed from the recipe and this repository.
This commit is contained in:
parent
2d056bff2a
commit
8f4d4ad2a6
|
@ -1,515 +0,0 @@
|
|||
From a0d699a08f10424adad38eee25673c9a66120ec4 Mon Sep 17 00:00:00 2001
|
||||
From: Dirk Thomas <dthomas@osrfoundation.org>
|
||||
Date: Thu, 25 Jul 2013 14:54:43 -0700
|
||||
Subject: [PATCH 1/4] modify logic of sourcing env hooks to provide context of
|
||||
workspace to each env hook (#490)
|
||||
|
||||
---
|
||||
cmake/templates/_setup_util.py.in | 26 +++++++++++++++++++++-----
|
||||
cmake/templates/setup.sh.in | 34 +++++++++++-----------------------
|
||||
2 files changed, 32 insertions(+), 28 deletions(-)
|
||||
|
||||
diff --git a/cmake/templates/_setup_util.py.in b/cmake/templates/_setup_util.py.in
|
||||
index 6957b10..e7e57ee 100755
|
||||
--- a/cmake/templates/_setup_util.py.in
|
||||
+++ b/cmake/templates/_setup_util.py.in
|
||||
@@ -200,7 +200,9 @@ def find_env_hooks(environ, cmake_prefix_path):
|
||||
lines.append(comment('found environment hooks in workspaces'))
|
||||
|
||||
generic_env_hooks = []
|
||||
+ generic_env_hooks_workspace = []
|
||||
specific_env_hooks = []
|
||||
+ specific_env_hooks_workspace = []
|
||||
generic_env_hooks_by_filename = {}
|
||||
specific_env_hooks_by_filename = {}
|
||||
generic_env_hook_ext = 'bat' if IS_WINDOWS else 'sh'
|
||||
@@ -212,18 +214,32 @@ def find_env_hooks(environ, cmake_prefix_path):
|
||||
if os.path.isdir(env_hook_dir):
|
||||
for filename in sorted(os.listdir(env_hook_dir)):
|
||||
if filename.endswith('.%s' % generic_env_hook_ext):
|
||||
- generic_env_hooks.append(os.path.join(env_hook_dir, filename))
|
||||
# remove previous env hook with same name if present
|
||||
if filename in generic_env_hooks_by_filename:
|
||||
- generic_env_hooks.remove(generic_env_hooks_by_filename[filename])
|
||||
+ i = generic_env_hooks.index(generic_env_hooks_by_filename[filename])
|
||||
+ generic_env_hooks.pop(i)
|
||||
+ generic_env_hooks_workspace.pop(i)
|
||||
+ # append env hook
|
||||
+ generic_env_hooks.append(os.path.join(env_hook_dir, filename))
|
||||
+ generic_env_hooks_workspace.append(workspace)
|
||||
generic_env_hooks_by_filename[filename] = generic_env_hooks[-1]
|
||||
elif specific_env_hook_ext is not None and filename.endswith('.%s' % specific_env_hook_ext):
|
||||
- specific_env_hooks.append(os.path.join(env_hook_dir, filename))
|
||||
# remove previous env hook with same name if present
|
||||
if filename in specific_env_hooks_by_filename:
|
||||
- specific_env_hooks.remove(specific_env_hooks_by_filename[filename])
|
||||
+ i = specific_env_hooks.index(specific_env_hooks_by_filename[filename])
|
||||
+ specific_env_hooks.pop(i)
|
||||
+ specific_env_hooks_workspace.pop(i)
|
||||
+ # append env hook
|
||||
+ specific_env_hooks.append(os.path.join(env_hook_dir, filename))
|
||||
+ specific_env_hooks_workspace.append(workspace)
|
||||
specific_env_hooks_by_filename[filename] = specific_env_hooks[-1]
|
||||
- lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS', os.pathsep.join(generic_env_hooks + specific_env_hooks)))
|
||||
+ env_hooks = generic_env_hooks + specific_env_hooks
|
||||
+ env_hooks_workspace = generic_env_hooks_workspace + specific_env_hooks_workspace
|
||||
+ count = len(env_hooks)
|
||||
+ lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_COUNT', count))
|
||||
+ for i in range(count):
|
||||
+ lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_%d' % i, env_hooks[i]))
|
||||
+ lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_%d_WORKSPACE' % i, env_hooks_workspace[i]))
|
||||
return lines
|
||||
|
||||
|
||||
diff --git a/cmake/templates/setup.sh.in b/cmake/templates/setup.sh.in
|
||||
index c29adf5..fa28dfb 100644
|
||||
--- a/cmake/templates/setup.sh.in
|
||||
+++ b/cmake/templates/setup.sh.in
|
||||
@@ -47,30 +47,18 @@ CATKIN_SHELL=$CATKIN_SHELL "$_SETUP_UTIL" $@ > $_SETUP_TMP
|
||||
. $_SETUP_TMP
|
||||
rm -f $_SETUP_TMP
|
||||
|
||||
-# save value of IFS, including if it was unset
|
||||
-# the "+x" syntax helps differentiate unset from empty
|
||||
-_IFS=$IFS
|
||||
-if [ -z ${IFS+x} ]; then
|
||||
- _IFS_WAS_UNSET=1
|
||||
-fi
|
||||
-
|
||||
# source all environment hooks
|
||||
-IFS=":"
|
||||
-for _envfile in $_CATKIN_ENVIRONMENT_HOOKS; do
|
||||
- # restore value of IFS, including if it was unset
|
||||
- IFS=$_IFS
|
||||
- if [ $_IFS_WAS_UNSET ]; then
|
||||
- unset IFS
|
||||
- fi
|
||||
+_i=0
|
||||
+while [ $_i -lt $_CATKIN_ENVIRONMENT_HOOKS_COUNT ]; do
|
||||
+ eval _envfile=\$_CATKIN_ENVIRONMENT_HOOKS_$_i
|
||||
+ unset _CATKIN_ENVIRONMENT_HOOKS_$_i
|
||||
+ eval _envfile_workspace=\$_CATKIN_ENVIRONMENT_HOOKS_${_i}_WORKSPACE
|
||||
+ unset _CATKIN_ENVIRONMENT_HOOKS_${_i}_WORKSPACE
|
||||
+ # set workspace for environment hook
|
||||
+ CATKIN_ENV_HOOK_WORKSPACE=$_envfile_workspace
|
||||
. "$_envfile"
|
||||
+ unset CATKIN_ENV_HOOK_WORKSPACE
|
||||
+ _i=$((_i + 1))
|
||||
done
|
||||
|
||||
-# restore value of IFS, including if it was unset
|
||||
-IFS=$_IFS
|
||||
-if [ $_IFS_WAS_UNSET ]; then
|
||||
- unset IFS
|
||||
- unset _IFS_WAS_UNSET
|
||||
-fi
|
||||
-unset _IFS
|
||||
-
|
||||
-unset _CATKIN_ENVIRONMENT_HOOKS
|
||||
+unset _CATKIN_ENVIRONMENT_HOOKS_COUNT
|
||||
--
|
||||
1.8.1.6
|
||||
|
||||
|
||||
From 644daf7443bf3f3ed3f178800478cb5724298a16 Mon Sep 17 00:00:00 2001
|
||||
From: Dirk Thomas <dthomas@osrfoundation.org>
|
||||
Date: Thu, 25 Jul 2013 17:01:11 -0700
|
||||
Subject: [PATCH 2/4] update shell scripts to define or allow override
|
||||
CATKIN_SETUP_DIR (#490)
|
||||
|
||||
---
|
||||
cmake/templates/_setup_util.py.in | 15 ++++++++-------
|
||||
cmake/templates/env.sh.in | 8 +++++---
|
||||
cmake/templates/setup.bash.in | 5 ++++-
|
||||
cmake/templates/setup.sh.in | 5 ++++-
|
||||
cmake/templates/setup.zsh.in | 3 ++-
|
||||
5 files changed, 23 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/cmake/templates/_setup_util.py.in b/cmake/templates/_setup_util.py.in
|
||||
index e7e57ee..0d3c86a 100755
|
||||
--- a/cmake/templates/_setup_util.py.in
|
||||
+++ b/cmake/templates/_setup_util.py.in
|
||||
@@ -41,13 +41,6 @@ import os
|
||||
import platform
|
||||
import sys
|
||||
|
||||
-# environment at generation time
|
||||
-CMAKE_PREFIX_PATH = '@CMAKE_PREFIX_PATH_AS_IS@'.split(';')
|
||||
-setup_dir = '@SETUP_DIR@'
|
||||
-if setup_dir and setup_dir not in CMAKE_PREFIX_PATH:
|
||||
- CMAKE_PREFIX_PATH.insert(0, setup_dir)
|
||||
-CMAKE_PREFIX_PATH = os.pathsep.join(CMAKE_PREFIX_PATH)
|
||||
-
|
||||
CATKIN_MARKER_FILE = '.catkin'
|
||||
|
||||
system = platform.system()
|
||||
@@ -256,6 +249,14 @@ if __name__ == '__main__':
|
||||
print(e, file=sys.stderr)
|
||||
exit(1)
|
||||
|
||||
+ # environment at generation time
|
||||
+ CMAKE_PREFIX_PATH = '@CMAKE_PREFIX_PATH_AS_IS@'.split(';')
|
||||
+ # prepend current workspace if not already part of CPP
|
||||
+ base_path = os.path.dirname(__file__)
|
||||
+ if base_path not in CMAKE_PREFIX_PATH:
|
||||
+ CMAKE_PREFIX_PATH.insert(0, base_path)
|
||||
+ CMAKE_PREFIX_PATH = os.pathsep.join(CMAKE_PREFIX_PATH)
|
||||
+
|
||||
environ = dict(os.environ)
|
||||
lines = []
|
||||
if not args.extend:
|
||||
diff --git a/cmake/templates/env.sh.in b/cmake/templates/env.sh.in
|
||||
index 5d04650..ad259ea 100755
|
||||
--- a/cmake/templates/env.sh.in
|
||||
+++ b/cmake/templates/env.sh.in
|
||||
@@ -5,7 +5,9 @@ if [ $# -eq 0 ] ; then
|
||||
/bin/echo "Usage: env.sh COMMANDS"
|
||||
/bin/echo "Calling env.sh without arguments is not supported anymore. Instead spawn a subshell and source a setup file manually."
|
||||
exit 1
|
||||
-else
|
||||
- . "@SETUP_DIR@/@SETUP_FILENAME@.sh"
|
||||
- exec "$@"
|
||||
fi
|
||||
+
|
||||
+# source @SETUP_FILENAME@.sh from same directory as this file
|
||||
+CATKIN_SETUP_DIR=$(cd `dirname $0`;pwd)
|
||||
+. "$CATKIN_SETUP_DIR/@SETUP_FILENAME@.sh"
|
||||
+exec "$@"
|
||||
diff --git a/cmake/templates/setup.bash.in b/cmake/templates/setup.bash.in
|
||||
index 078fd13..97e9e70 100644
|
||||
--- a/cmake/templates/setup.bash.in
|
||||
+++ b/cmake/templates/setup.bash.in
|
||||
@@ -2,4 +2,7 @@
|
||||
# generated from catkin/cmake/templates/setup.bash.in
|
||||
|
||||
CATKIN_SHELL=bash
|
||||
-. "@SETUP_DIR@/setup.sh"
|
||||
+
|
||||
+# source setup.sh from same directory as this file
|
||||
+CATKIN_SETUP_DIR=$(cd `dirname ${BASH_SOURCE[0]}`;pwd)
|
||||
+. "$CATKIN_SETUP_DIR/setup.sh"
|
||||
diff --git a/cmake/templates/setup.sh.in b/cmake/templates/setup.sh.in
|
||||
index fa28dfb..66b91ca 100644
|
||||
--- a/cmake/templates/setup.sh.in
|
||||
+++ b/cmake/templates/setup.sh.in
|
||||
@@ -6,7 +6,10 @@
|
||||
# Supported command line options:
|
||||
# --extend: skips the undoing of changes from a previously sourced setup file
|
||||
|
||||
-_SETUP_UTIL="@SETUP_DIR@/_setup_util.py"
|
||||
+# since this file is sourced either use the provided CATKIN_SETUP_DIR
|
||||
+# or fall back to the destination set at configure time
|
||||
+: ${CATKIN_SETUP_DIR:=@SETUP_DIR@}
|
||||
+_SETUP_UTIL="$CATKIN_SETUP_DIR/_setup_util.py"
|
||||
|
||||
if [ ! -f "$_SETUP_UTIL" ]; then
|
||||
echo "Missing Python script: $_SETUP_UTIL"
|
||||
diff --git a/cmake/templates/setup.zsh.in b/cmake/templates/setup.zsh.in
|
||||
index 220d1fb..5e681e4 100644
|
||||
--- a/cmake/templates/setup.zsh.in
|
||||
+++ b/cmake/templates/setup.zsh.in
|
||||
@@ -2,6 +2,7 @@
|
||||
# generated from catkin/cmake/templates/setup.zsh.in
|
||||
|
||||
CATKIN_SHELL=zsh
|
||||
+CATKIN_SETUP_DIR=$(cd `dirname $0`;pwd)
|
||||
emulate sh # emulate POSIX
|
||||
-. "@SETUP_DIR@/setup.sh"
|
||||
+. "$CATKIN_SETUP_DIR/setup.sh"
|
||||
emulate zsh # back to zsh mode
|
||||
--
|
||||
1.8.1.6
|
||||
|
||||
|
||||
From 198c7b8afafc4e92ed912959e299935b301ac434 Mon Sep 17 00:00:00 2001
|
||||
From: Dirk Thomas <dthomas@osrfoundation.org>
|
||||
Date: Thu, 25 Jul 2013 17:02:08 -0700
|
||||
Subject: [PATCH 3/4] update exported include dirs in generated cmake config
|
||||
files to not contain absolute paths (#490)
|
||||
|
||||
---
|
||||
cmake/catkin_package.cmake | 2 +-
|
||||
cmake/templates/pkgConfig.cmake.in | 7 +++++--
|
||||
2 files changed, 6 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/cmake/catkin_package.cmake b/cmake/catkin_package.cmake
|
||||
index 574bce9..a543864 100644
|
||||
--- a/cmake/catkin_package.cmake
|
||||
+++ b/cmake/catkin_package.cmake
|
||||
@@ -434,7 +434,7 @@ function(_catkin_package)
|
||||
# absolute path to include dir under install prefix if any include dir is set
|
||||
set(PROJECT_ABSOLUTE_INCLUDE_DIRS "")
|
||||
if(NOT "${PROJECT_INCLUDE_DIRS}" STREQUAL "")
|
||||
- set(PROJECT_ABSOLUTE_INCLUDE_DIRS ${PKG_INCLUDE_PREFIX}/include)
|
||||
+ set(PROJECT_ABSOLUTE_INCLUDE_DIRS "${CATKIN_GLOBAL_INCLUDE_DESTINATION}")
|
||||
endif()
|
||||
if(PROJECT_DEPENDENCIES_INCLUDE_DIRS)
|
||||
list(APPEND PROJECT_ABSOLUTE_INCLUDE_DIRS ${PROJECT_DEPENDENCIES_INCLUDE_DIRS})
|
||||
diff --git a/cmake/templates/pkgConfig.cmake.in b/cmake/templates/pkgConfig.cmake.in
|
||||
index dce3158..334e5f2 100644
|
||||
--- a/cmake/templates/pkgConfig.cmake.in
|
||||
+++ b/cmake/templates/pkgConfig.cmake.in
|
||||
@@ -89,8 +89,11 @@ if(NOT "@PROJECT_ABSOLUTE_INCLUDE_DIRS@" STREQUAL "")
|
||||
foreach(idir ${absolute_include_dirs})
|
||||
if(IS_ABSOLUTE ${idir} AND IS_DIRECTORY ${idir})
|
||||
set(include ${idir})
|
||||
- elseif(IS_DIRECTORY @PKG_INCLUDE_PREFIX@/${idir})
|
||||
- set(include @PKG_INCLUDE_PREFIX@/${idir})
|
||||
+ elseif("${idir}" STREQUAL "${CATKIN_GLOBAL_INCLUDE_DESTINATION}")
|
||||
+ get_filename_component(include "${@PROJECT_NAME@_DIR}/../../../${CATKIN_GLOBAL_INCLUDE_DESTINATION}" ABSOLUTE)
|
||||
+ if(NOT IS_DIRECTORY ${include})
|
||||
+ message(FATAL_ERROR "Project '@PROJECT_NAME@' specifies '${idir}' as an include dir, which is not found. It does not exist in '${include}'. Ask the maintainer '@PROJECT_MAINTAINER@' to fix it.")
|
||||
+ endif()
|
||||
else()
|
||||
message(FATAL_ERROR "Project '@PROJECT_NAME@' specifies '${idir}' as an include dir, which is not found. It does neither exist as an absolute directory nor in '@PKG_INCLUDE_PREFIX@/${idir}'. Ask the maintainer '@PROJECT_MAINTAINER@' to fix it.")
|
||||
endif()
|
||||
--
|
||||
1.8.1.6
|
||||
|
||||
|
||||
From 8067802506d0b66926b665ee301ca6ce77ab3deb Mon Sep 17 00:00:00 2001
|
||||
From: Dirk Thomas <dthomas@osrfoundation.org>
|
||||
Date: Thu, 25 Jul 2013 17:06:48 -0700
|
||||
Subject: [PATCH 4/4] update catkin_make_isolated to support installation with
|
||||
DESTDIR (#490)
|
||||
|
||||
---
|
||||
bin/catkin_make_isolated | 5 +++-
|
||||
python/catkin/builder.py | 63 +++++++++++++++++++++++++++++++++---------------
|
||||
2 files changed, 47 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/bin/catkin_make_isolated b/bin/catkin_make_isolated
|
||||
index 25ed5db..6ea7d4d 100755
|
||||
--- a/bin/catkin_make_isolated
|
||||
+++ b/bin/catkin_make_isolated
|
||||
@@ -107,6 +107,8 @@ def main():
|
||||
if not sys.stdout.isatty():
|
||||
opts.no_color = True
|
||||
|
||||
+ destdir = os.environ['DESTDIR'] if 'DESTDIR' in os.environ else None
|
||||
+
|
||||
build_workspace_isolated(
|
||||
workspace=opts.workspace or '.',
|
||||
sourcespace=opts.source,
|
||||
@@ -122,7 +124,8 @@ def main():
|
||||
cmake_args=cmake_args,
|
||||
make_args=opts.make_args,
|
||||
catkin_make_args=opts.catkin_make_args,
|
||||
- continue_from_pkg=opts.from_package is not None
|
||||
+ continue_from_pkg=opts.from_package is not None,
|
||||
+ destdir=destdir
|
||||
)
|
||||
|
||||
if __name__ == '__main__':
|
||||
diff --git a/python/catkin/builder.py b/python/catkin/builder.py
|
||||
index b157d6e..932e720 100644
|
||||
--- a/python/catkin/builder.py
|
||||
+++ b/python/catkin/builder.py
|
||||
@@ -163,18 +163,23 @@ def print_command_banner(cmd, cwd, color):
|
||||
print('####')
|
||||
|
||||
|
||||
-def run_command_colorized(cmd, cwd, quiet=False):
|
||||
- run_command(cmd, cwd, quiet=quiet, colorize=True)
|
||||
+def run_command_colorized(cmd, cwd, quiet=False, add_env=None):
|
||||
+ run_command(cmd, cwd, quiet=quiet, colorize=True, add_env=add_env)
|
||||
|
||||
|
||||
-def run_command(cmd, cwd, quiet=False, colorize=False):
|
||||
+def run_command(cmd, cwd, quiet=False, colorize=False, add_env=None):
|
||||
capture = (quiet or colorize)
|
||||
stdout_pipe = subprocess.PIPE if capture else None
|
||||
stderr_pipe = subprocess.STDOUT if capture else None
|
||||
+ env = None
|
||||
+ if add_env:
|
||||
+ env = copy.copy(os.environ)
|
||||
+ env.update(add_env)
|
||||
try:
|
||||
proc = subprocess.Popen(
|
||||
cmd, cwd=cwd, shell=False,
|
||||
- stdout=stdout_pipe, stderr=stderr_pipe
|
||||
+ stdout=stdout_pipe, stderr=stderr_pipe,
|
||||
+ env=env
|
||||
)
|
||||
except OSError as e:
|
||||
raise OSError("Failed command '%s': %s" % (cmd, e))
|
||||
@@ -213,10 +218,11 @@ def _check_build_dir(name, workspace, buildspace):
|
||||
return package_build_dir
|
||||
|
||||
|
||||
-def isolation_print_command(cmd, path=None):
|
||||
+def isolation_print_command(cmd, path=None, add_env=None):
|
||||
cprint(
|
||||
blue_arrow + " " + sanitize(cmd) + "@|" +
|
||||
- (" @!@{kf}in@| '@!" + sanitize(path) + "@|'" if path else '')
|
||||
+ (" @!@{kf}in@| '@!" + sanitize(path) + "@|'" if path else '') +
|
||||
+ (" @!@{kf}with@| '@!" + ' '.join(['%s=%s' % (k, v) for k, v in add_env.items()]) + "@|'" if add_env else '')
|
||||
)
|
||||
|
||||
|
||||
@@ -280,7 +286,8 @@ def extract_jobs_flags(mflags):
|
||||
def build_catkin_package(
|
||||
path, package,
|
||||
workspace, buildspace, develspace, installspace,
|
||||
- install, force_cmake, quiet, last_env, cmake_args, make_args
|
||||
+ install, force_cmake, quiet, last_env, cmake_args, make_args,
|
||||
+ destdir=None
|
||||
):
|
||||
cprint(
|
||||
"Processing @{cf}catkin@| package: '@!@{bf}" +
|
||||
@@ -324,11 +331,12 @@ def build_catkin_package(
|
||||
'-DCMAKE_INSTALL_PREFIX=' + installspace
|
||||
]
|
||||
cmake_cmd.extend(cmake_args)
|
||||
- isolation_print_command(' '.join(cmake_cmd), build_dir)
|
||||
+ add_env = get_additional_environment(install, destdir, installspace)
|
||||
+ isolation_print_command(' '.join(cmake_cmd), build_dir, add_env=add_env)
|
||||
if last_env is not None:
|
||||
cmake_cmd = [last_env] + cmake_cmd
|
||||
try:
|
||||
- run_command_colorized(cmake_cmd, build_dir, quiet)
|
||||
+ run_command_colorized(cmake_cmd, build_dir, quiet, add_env=add_env)
|
||||
except subprocess.CalledProcessError as e:
|
||||
if os.path.exists(makefile):
|
||||
# remove Makefile to force CMake invocation next time
|
||||
@@ -338,11 +346,12 @@ def build_catkin_package(
|
||||
print('Makefile exists, skipping explicit cmake invocation...')
|
||||
# Check to see if cmake needs to be run via make
|
||||
make_check_cmake_cmd = ['make', 'cmake_check_build_system']
|
||||
- isolation_print_command(' '.join(make_check_cmake_cmd), build_dir)
|
||||
+ add_env = get_additional_environment(install, destdir, installspace)
|
||||
+ isolation_print_command(' '.join(make_check_cmake_cmd), build_dir, add_env=add_env)
|
||||
if last_env is not None:
|
||||
make_check_cmake_cmd = [last_env] + make_check_cmake_cmd
|
||||
run_command_colorized(
|
||||
- make_check_cmake_cmd, build_dir, quiet
|
||||
+ make_check_cmake_cmd, build_dir, quiet, add_env=add_env
|
||||
)
|
||||
|
||||
# Run make
|
||||
@@ -372,10 +381,18 @@ def has_make_target(path, target):
|
||||
return target in targets
|
||||
|
||||
|
||||
+def get_additional_environment(install, destdir, installspace):
|
||||
+ add_env = {}
|
||||
+ if install and destdir:
|
||||
+ add_env['CATKIN_SETUP_DIR'] = os.path.join(destdir, installspace[1:])
|
||||
+ return add_env
|
||||
+
|
||||
+
|
||||
def build_cmake_package(
|
||||
path, package,
|
||||
workspace, buildspace, develspace, installspace,
|
||||
- install, force_cmake, quiet, last_env, cmake_args, make_args
|
||||
+ install, force_cmake, quiet, last_env, cmake_args, make_args,
|
||||
+ destdir=None
|
||||
):
|
||||
# Notify the user that we are processing a plain cmake package
|
||||
cprint(
|
||||
@@ -496,19 +513,21 @@ def build_package(
|
||||
path, package,
|
||||
workspace, buildspace, develspace, installspace,
|
||||
install, force_cmake, quiet, last_env, cmake_args, make_args, catkin_make_args,
|
||||
+ destdir=None,
|
||||
number=None, of=None
|
||||
):
|
||||
if platform.system() in ['Linux', 'Darwin']:
|
||||
status_msg = '{package_name} [{number} of {total}]'.format(package_name=package.name, number=number, total=of)
|
||||
sys.stdout.write("\x1b]2;" + status_msg + "\x07")
|
||||
cprint('@!@{gf}==>@| ', end='')
|
||||
- new_last_env = get_new_env(package, develspace, installspace, install, last_env)
|
||||
+ new_last_env = get_new_env(package, develspace, installspace, install, last_env, destdir)
|
||||
build_type = _get_build_type(package)
|
||||
if build_type == 'catkin':
|
||||
build_catkin_package(
|
||||
path, package,
|
||||
workspace, buildspace, develspace, installspace,
|
||||
- install, force_cmake, quiet, last_env, cmake_args, make_args + catkin_make_args
|
||||
+ install, force_cmake, quiet, last_env, cmake_args, make_args + catkin_make_args,
|
||||
+ destdir=destdir
|
||||
)
|
||||
if not os.path.exists(new_last_env):
|
||||
raise RuntimeError(
|
||||
@@ -521,7 +540,8 @@ def build_package(
|
||||
build_cmake_package(
|
||||
path, package,
|
||||
workspace, buildspace, develspace, installspace,
|
||||
- install, force_cmake, quiet, last_env, cmake_args, make_args
|
||||
+ install, force_cmake, quiet, last_env, cmake_args, make_args,
|
||||
+ destdir=destdir
|
||||
)
|
||||
else:
|
||||
sys.exit('Can not build package with unknown build_type')
|
||||
@@ -534,7 +554,7 @@ def build_package(
|
||||
return new_last_env
|
||||
|
||||
|
||||
-def get_new_env(package, develspace, installspace, install, last_env):
|
||||
+def get_new_env(package, develspace, installspace, install, last_env, destdir=None):
|
||||
new_env = None
|
||||
build_type = _get_build_type(package)
|
||||
if build_type in ['catkin', 'cmake']:
|
||||
@@ -542,6 +562,8 @@ def get_new_env(package, develspace, installspace, install, last_env):
|
||||
installspace if install else develspace,
|
||||
'env.sh'
|
||||
)
|
||||
+ if destdir is not None:
|
||||
+ new_env = os.path.join(destdir, new_env[1:])
|
||||
return new_env
|
||||
|
||||
|
||||
@@ -572,7 +594,8 @@ def build_workspace_isolated(
|
||||
cmake_args=None,
|
||||
make_args=None,
|
||||
catkin_make_args=None,
|
||||
- continue_from_pkg=False
|
||||
+ continue_from_pkg=False,
|
||||
+ destdir=None
|
||||
):
|
||||
'''
|
||||
Runs ``cmake``, ``make`` and optionally ``make install`` for all
|
||||
@@ -603,6 +626,7 @@ def build_workspace_isolated(
|
||||
packages, ``[str]``
|
||||
:param continue_from_pkg: indicates whether or not cmi should continue
|
||||
when a package is reached, ``bool``
|
||||
+ :param destdir: define DESTDIR for cmake/invocation, ``string``
|
||||
'''
|
||||
if not colorize:
|
||||
disable_ANSI_colors()
|
||||
@@ -738,6 +762,7 @@ def build_workspace_isolated(
|
||||
workspace, buildspace, pkg_develspace, installspace,
|
||||
install, force_cmake or (install_toggled and is_cmake_package),
|
||||
quiet, last_env, cmake_args, make_args, catkin_make_args,
|
||||
+ destdir=destdir,
|
||||
number=index + 1, of=len(ordered_packages)
|
||||
)
|
||||
except subprocess.CalledProcessError as e:
|
||||
@@ -758,7 +783,7 @@ def build_workspace_isolated(
|
||||
sys.exit('Command failed, exiting.')
|
||||
else:
|
||||
cprint("Skipping package: '@!@{bf}" + package.name + "@|'")
|
||||
- last_env = get_new_env(package, pkg_develspace, installspace, install, last_env)
|
||||
+ last_env = get_new_env(package, pkg_develspace, installspace, install, last_env, destdir)
|
||||
|
||||
# Provide a top level devel space environment setup script
|
||||
if not os.path.exists(develspace):
|
||||
@@ -793,7 +818,6 @@ def build_workspace_isolated(
|
||||
'CATKIN_GLOBAL_LIB_DESTINATION': 'lib',
|
||||
'CMAKE_PREFIX_PATH_AS_IS': ';'.join(os.environ['CMAKE_PREFIX_PATH'].split(os.pathsep)),
|
||||
'PYTHON_INSTALL_DIR': get_python_install_dir(),
|
||||
- 'SETUP_DIR': '',
|
||||
}
|
||||
with open(generated_setup_util_py, 'w') as f:
|
||||
f.write(configure_file(os.path.join(get_cmake_path(), 'templates', '_setup_util.py.in'), variables))
|
||||
@@ -802,7 +826,6 @@ def build_workspace_isolated(
|
||||
sys.exit("Unable to process CMAKE_PREFIX_PATH from environment. Cannot generate environment files.")
|
||||
|
||||
variables = {
|
||||
- 'SETUP_DIR': develspace,
|
||||
'SETUP_FILENAME': 'setup'
|
||||
}
|
||||
with open(generated_env_sh, 'w') as f:
|
||||
--
|
||||
1.8.1.6
|
||||
|
|
@ -3,15 +3,12 @@ SECTION = "devel"
|
|||
LICENSE = "BSD"
|
||||
LIC_FILES_CHKSUM = "file://package.xml;beginline=7;endline=7;md5=d566ef916e9dedc494f5f793a6690ba5"
|
||||
|
||||
PR = "r1"
|
||||
|
||||
DEPENDS = "cmake python-empy python-catkin-pkg python-empy-native python-catkin-pkg-native"
|
||||
|
||||
SRC_URI = "https://github.com/ros/${ROS_SPN}/archive/${PV}.tar.gz;downloadfilename=${ROS_SP}.tar.gz"
|
||||
SRC_URI[md5sum] = "1c30ac4fcc82ce2aedf610ea972ab4d2"
|
||||
SRC_URI[sha256sum] = "2494dbe3446fe94a55f57c74260e072f97d72944d89610fe4994dbc79cf1a561"
|
||||
SRC_URI[md5sum] = "ea720dbabb693235f7377165aec55381"
|
||||
SRC_URI[sha256sum] = "7f45a2889c80754f60995225f0378733bfc013a0549f25c98415b475eba560ae"
|
||||
|
||||
SRC_URI += "file://0001-modify-logic-of-sourcing-env-hooks-to-provide-contex.patch"
|
||||
SRC_URI += "file://0001-CATKIN_WORKSPACES-Don-t-require-.catkin-file.patch"
|
||||
|
||||
inherit catkin
|
Loading…
Reference in New Issue