|
|
|
Allow CATKIN_PREFIX_PATH to override/complement CMAKE_PREFIX_PATH.
|
|
|
|
This serves two goals: when SYSROOT!=/, CMAKE_PREFIX_PATH is the same as when
|
|
|
|
SYSROOT=/ but we need to find packages in SYSROOT/CMAKE_PREFIX_PATH.
|
|
|
|
|
|
|
|
Moreover, this allows to set CATKIN_PREFIX_PATH in global environment so that
|
|
|
|
ROS packages are properly configured without needed to source a shellrc file in
|
|
|
|
every shell session. This can't be done with CMAKE_PREFIX_PATH which is way too
|
|
|
|
generic.
|
|
|
|
|
|
|
|
Index: catkin-0.6.16/cmake/all.cmake
|
|
|
|
===================================================================
|
|
|
|
--- catkin-0.6.16.orig/cmake/all.cmake
|
|
|
|
+++ catkin-0.6.16/cmake/all.cmake
|
|
|
|
@@ -52,7 +52,11 @@ set(CMAKE_PREFIX_PATH_AS_IS ${CMAKE_PREF
|
|
|
|
|
|
|
|
# list of unique catkin workspaces based on CMAKE_PREFIX_PATH
|
|
|
|
set(CATKIN_WORKSPACES "")
|
|
|
|
-foreach(path ${CMAKE_PREFIX_PATH})
|
|
|
|
+if(NOT DEFINED CATKIN_PREFIX_PATH)
|
|
|
|
+ set(CATKIN_PREFIX_PATH ${CMAKE_PREFIX_PATH})
|
|
|
|
+endif()
|
|
|
|
+
|
|
|
|
+foreach(path ${CATKIN_PREFIX_PATH})
|
|
|
|
if(EXISTS "${path}/.catkin")
|
|
|
|
list(FIND CATKIN_WORKSPACES ${path} _index)
|
|
|
|
if(_index EQUAL -1)
|
|
|
|
Index: catkin-0.6.16/python/catkin/workspace.py
|
|
|
|
===================================================================
|
|
|
|
--- catkin-0.6.16.orig/python/catkin/workspace.py
|
|
|
|
+++ catkin-0.6.16/python/catkin/workspace.py
|
|
|
|
@@ -44,7 +44,7 @@ def get_workspaces():
|
|
|
|
"""
|
|
|
|
# get all cmake prefix paths
|
|
|
|
env_name = 'CMAKE_PREFIX_PATH'
|
|
|
|
- paths = [path for path in os.environ.get(env_name, '').split(os.pathsep) if path]
|
|
|
|
+ paths = [path for path in os.environ.get(env_name, '').split(os.pathsep) + os.environ.get('CATKIN_PREFIX_PATH', '').split(os.pathsep) if path]
|
|
|
|
# remove non-workspace paths
|
|
|
|
workspaces = [path for path in paths if os.path.isfile(os.path.join(path, CATKIN_MARKER_FILE))]
|
|
|
|
return workspaces
|
|
|
|
Index: catkin-0.6.16/cmake/catkinConfig.cmake.in
|
|
|
|
===================================================================
|
|
|
|
--- catkin-0.6.16.orig/cmake/catkinConfig.cmake.in
|
|
|
|
+++ catkin-0.6.16/cmake/catkinConfig.cmake.in
|
|
|
|
@@ -64,6 +64,11 @@ if(catkin_FIND_COMPONENTS)
|
|
|
|
|
|
|
|
# get search paths from CMAKE_PREFIX_PATH (which includes devel space)
|
|
|
|
set(paths "")
|
|
|
|
+ foreach(path ${CATKIN_PREFIX_PATH})
|
|
|
|
+ if(IS_DIRECTORY ${path}/share/${component}/cmake)
|
|
|
|
+ list(APPEND paths ${path}/share/${component}/cmake)
|
|
|
|
+ endif()
|
|
|
|
+ endforeach()
|
|
|
|
foreach(path ${CMAKE_PREFIX_PATH})
|
|
|
|
if(IS_DIRECTORY ${path}/share/${component}/cmake)
|
|
|
|
list(APPEND paths ${path}/share/${component}/cmake)
|
|
|
|
Index: catkin-0.6.16/cmake/toplevel.cmake
|
|
|
|
===================================================================
|
|
|
|
--- catkin-0.6.16.orig/cmake/toplevel.cmake
|
|
|
|
+++ catkin-0.6.16/cmake/toplevel.cmake
|
|
|
|
@@ -35,10 +35,15 @@ else()
|
|
|
|
string(REPLACE ":" ";" CMAKE_PREFIX_PATH $ENV{CMAKE_PREFIX_PATH})
|
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
+ if(NOT DEFINED CATKIN_PREFIX_PATH)
|
|
|
|
+ if(NOT "$ENV{CATKIN_PREFIX_PATH}" STREQUAL "")
|
|
|
|
+ string(REPLACE ":" ";" CATKIN_PREFIX_PATH $ENV{CATKIN_PREFIX_PATH})
|
|
|
|
+ endif()
|
|
|
|
+ endif()
|
|
|
|
|
|
|
|
# list of catkin workspaces
|
|
|
|
set(catkin_search_path "")
|
|
|
|
- foreach(path ${CMAKE_PREFIX_PATH})
|
|
|
|
+ foreach(path ${CMAKE_PREFIX_PATH} ${CATKIN_PREFIX_PATH})
|
|
|
|
if(EXISTS "${path}/.catkin")
|
|
|
|
list(FIND catkin_search_path ${path} _index)
|
|
|
|
if(_index EQUAL -1)
|