Created
October 28, 2017 12:13
-
-
Save jihobak/787f81c2639138c306fce91ebba47445 to your computer and use it in GitHub Desktop.
cv_bridgeConfig.cmake
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# generated from catkin/cmake/template/pkgConfig.cmake.in | |
# append elements to a list and remove existing duplicates from the list | |
# copied from catkin/cmake/list_append_deduplicate.cmake to keep pkgConfig | |
# self contained | |
macro(_list_append_deduplicate listname) | |
if(NOT "${ARGN}" STREQUAL "") | |
if(${listname}) | |
list(REMOVE_ITEM ${listname} ${ARGN}) | |
endif() | |
list(APPEND ${listname} ${ARGN}) | |
endif() | |
endmacro() | |
# append elements to a list if they are not already in the list | |
# copied from catkin/cmake/list_append_unique.cmake to keep pkgConfig | |
# self contained | |
macro(_list_append_unique listname) | |
foreach(_item ${ARGN}) | |
list(FIND ${listname} ${_item} _index) | |
if(_index EQUAL -1) | |
list(APPEND ${listname} ${_item}) | |
endif() | |
endforeach() | |
endmacro() | |
# pack a list of libraries with optional build configuration keywords | |
# copied from catkin/cmake/catkin_libraries.cmake to keep pkgConfig | |
# self contained | |
macro(_pack_libraries_with_build_configuration VAR) | |
set(${VAR} "") | |
set(_argn ${ARGN}) | |
list(LENGTH _argn _count) | |
set(_index 0) | |
while(${_index} LESS ${_count}) | |
list(GET _argn ${_index} lib) | |
if("${lib}" MATCHES "^debug|optimized|general$") | |
math(EXPR _index "${_index} + 1") | |
if(${_index} EQUAL ${_count}) | |
message(FATAL_ERROR "_pack_libraries_with_build_configuration() the list of libraries '${ARGN}' ends with '${lib}' which is a build configuration keyword and must be followed by a library") | |
endif() | |
list(GET _argn ${_index} library) | |
list(APPEND ${VAR} "${lib}${CATKIN_BUILD_CONFIGURATION_KEYWORD_SEPARATOR}${library}") | |
else() | |
list(APPEND ${VAR} "${lib}") | |
endif() | |
math(EXPR _index "${_index} + 1") | |
endwhile() | |
endmacro() | |
# unpack a list of libraries with optional build configuration keyword prefixes | |
# copied from catkin/cmake/catkin_libraries.cmake to keep pkgConfig | |
# self contained | |
macro(_unpack_libraries_with_build_configuration VAR) | |
set(${VAR} "") | |
foreach(lib ${ARGN}) | |
string(REGEX REPLACE "^(debug|optimized|general)${CATKIN_BUILD_CONFIGURATION_KEYWORD_SEPARATOR}(.+)$" "\\1;\\2" lib "${lib}") | |
list(APPEND ${VAR} "${lib}") | |
endforeach() | |
endmacro() | |
if(cv_bridge_CONFIG_INCLUDED) | |
return() | |
endif() | |
set(cv_bridge_CONFIG_INCLUDED TRUE) | |
# set variables for source/devel/install prefixes | |
if("FALSE" STREQUAL "TRUE") | |
set(cv_bridge_SOURCE_PREFIX /tmp/buildd/ros-indigo-cv-bridge-1.11.6-0trusty-20141201-2058) | |
set(cv_bridge_DEVEL_PREFIX /tmp/buildd/ros-indigo-cv-bridge-1.11.6-0trusty-20141201-2058/obj-arm-linux-gnueabihf/devel) | |
set(cv_bridge_INSTALL_PREFIX "") | |
set(cv_bridge_PREFIX ${cv_bridge_DEVEL_PREFIX}) | |
else() | |
set(cv_bridge_SOURCE_PREFIX "") | |
set(cv_bridge_DEVEL_PREFIX "") | |
set(cv_bridge_INSTALL_PREFIX /opt/ros/indigo) | |
set(cv_bridge_PREFIX ${cv_bridge_INSTALL_PREFIX}) | |
endif() | |
# warn when using a deprecated package | |
if(NOT "" STREQUAL "") | |
set(_msg "WARNING: package 'cv_bridge' is deprecated") | |
# append custom deprecation text if available | |
if(NOT "" STREQUAL "TRUE") | |
set(_msg "${_msg} ()") | |
endif() | |
message("${_msg}") | |
endif() | |
# flag project as catkin-based to distinguish if a find_package()-ed project is a catkin project | |
set(cv_bridge_FOUND_CATKIN_PROJECT TRUE) | |
if(NOT "include;/usr/include/opencv;/usr/include" STREQUAL "") | |
set(cv_bridge_INCLUDE_DIRS "") | |
set(_include_dirs "include;/usr/include/opencv;/usr/include") | |
foreach(idir ${_include_dirs}) | |
if(IS_ABSOLUTE ${idir} AND IS_DIRECTORY ${idir}) | |
set(include ${idir}) | |
elseif("${idir}" STREQUAL "include") | |
get_filename_component(include "${cv_bridge_DIR}/../../../include" ABSOLUTE) | |
if(NOT IS_DIRECTORY ${include}) | |
message(FATAL_ERROR "Project 'cv_bridge' specifies '${idir}' as an include dir, which is not found. It does not exist in '${include}'. Ask the maintainer 'Vincent Rabaud <[email protected]>' to fix it.") | |
endif() | |
else() | |
message(FATAL_ERROR "Project 'cv_bridge' specifies '${idir}' as an include dir, which is not found. It does neither exist as an absolute directory nor in '/opt/ros/indigo/${idir}'. Ask the maintainer 'Vincent Rabaud <[email protected]>' to fix it.") | |
endif() | |
_list_append_unique(cv_bridge_INCLUDE_DIRS ${include}) | |
endforeach() | |
endif() | |
set(libraries "cv_bridge;/usr/lib/libopencv_videostab.so.2.4.12;/usr/lib/libopencv_video.so.2.4.12;/usr/lib/libopencv_superres.so.2.4.12;/usr/lib/libopencv_stitching.so.2.4.12;/usr/lib/libopencv_photo.so.2.4.12;/usr/lib/libopencv_objdetect.so.2.4.12;/usr/lib/libopencv_ml.so.2.4.12;/usr/lib/libopencv_legacy.so.2.4.12;/usr/lib/libopencv_imgproc.so.2.4.12;/usr/lib/libopencv_highgui.so.2.4.12;/usr/lib/libopencv_gpu.so.2.4.12;/usr/lib/libopencv_flann.so.2.4.12;/usr/lib/libopencv_features2d.so.2.4.12;/usr/lib/libopencv_core.so.2.4.12;/usr/lib/libopencv_contrib.so.2.4.12;/usr/lib/libopencv_calib3d.so.2.4.12") | |
foreach(library ${libraries}) | |
# keep build configuration keywords, target names and absolute libraries as-is | |
if("${library}" MATCHES "^debug|optimized|general$") | |
list(APPEND cv_bridge_LIBRARIES ${library}) | |
elseif(TARGET ${library}) | |
list(APPEND cv_bridge_LIBRARIES ${library}) | |
elseif(IS_ABSOLUTE ${library}) | |
list(APPEND cv_bridge_LIBRARIES ${library}) | |
else() | |
set(lib_path "") | |
set(lib "${library}-NOTFOUND") | |
# since the path where the library is found is returned we have to iterate over the paths manually | |
foreach(path /opt/ros/indigo/lib;/opt/ros/indigo/lib) | |
find_library(lib ${library} | |
PATHS ${path} | |
NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH) | |
if(lib) | |
set(lib_path ${path}) | |
break() | |
endif() | |
endforeach() | |
if(lib) | |
_list_append_unique(cv_bridge_LIBRARY_DIRS ${lib_path}) | |
list(APPEND cv_bridge_LIBRARIES ${lib}) | |
else() | |
# as a fall back for non-catkin libraries try to search globally | |
find_library(lib ${library}) | |
if(NOT lib) | |
message(FATAL_ERROR "Project '${PROJECT_NAME}' tried to find library '${library}'. The library is neither a target nor built/installed properly. Did you compile project 'cv_bridge'? Did you find_package() it before the subdirectory containing its code is included?") | |
endif() | |
list(APPEND cv_bridge_LIBRARIES ${lib}) | |
endif() | |
endif() | |
endforeach() | |
set(cv_bridge_EXPORTED_TARGETS "") | |
# create dummy targets for exported code generation targets to make life of users easier | |
foreach(t ${cv_bridge_EXPORTED_TARGETS}) | |
if(NOT TARGET ${t}) | |
add_custom_target(${t}) | |
endif() | |
endforeach() | |
set(depends "rosconsole;sensor_msgs") | |
foreach(depend ${depends}) | |
string(REPLACE " " ";" depend_list ${depend}) | |
# the package name of the dependency must be kept in a unique variable so that it is not overwritten in recursive calls | |
list(GET depend_list 0 cv_bridge_dep) | |
list(LENGTH depend_list count) | |
if(${count} EQUAL 1) | |
# simple dependencies must only be find_package()-ed once | |
if(NOT ${cv_bridge_dep}_FOUND) | |
find_package(${cv_bridge_dep} REQUIRED) | |
endif() | |
else() | |
# dependencies with components must be find_package()-ed again | |
list(REMOVE_AT depend_list 0) | |
find_package(${cv_bridge_dep} REQUIRED ${depend_list}) | |
endif() | |
_list_append_unique(cv_bridge_INCLUDE_DIRS ${${cv_bridge_dep}_INCLUDE_DIRS}) | |
# merge build configuration keywords with library names to correctly deduplicate | |
_pack_libraries_with_build_configuration(cv_bridge_LIBRARIES ${cv_bridge_LIBRARIES}) | |
_pack_libraries_with_build_configuration(_libraries ${${cv_bridge_dep}_LIBRARIES}) | |
_list_append_deduplicate(cv_bridge_LIBRARIES ${_libraries}) | |
# undo build configuration keyword merging after deduplication | |
_unpack_libraries_with_build_configuration(cv_bridge_LIBRARIES ${cv_bridge_LIBRARIES}) | |
_list_append_unique(cv_bridge_LIBRARY_DIRS ${${cv_bridge_dep}_LIBRARY_DIRS}) | |
list(APPEND cv_bridge_EXPORTED_TARGETS ${${cv_bridge_dep}_EXPORTED_TARGETS}) | |
endforeach() | |
set(pkg_cfg_extras "") | |
foreach(extra ${pkg_cfg_extras}) | |
if(NOT IS_ABSOLUTE ${extra}) | |
set(extra ${cv_bridge_DIR}/${extra}) | |
endif() | |
include(${extra}) | |
endforeach() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment