################################################################################ # # CMake script for finding An Orocos RTT Plugin in case you require it during build time. # If the optional RTT_COMPONENT_PATH environment variable exists, header files and # libraries will be searched in the RTT_COMPONENT_PATH/include and RTT_COMPONENT_PATH/lib/orocos/plugins # directories, respectively. Otherwise the default CMake search process will be # used. Use the RTT_HINTS variable to hint the location of the orocos-rtt installation directory. # # Usage: find_package( RTTPlugin COMPONENTS rtt-scripting ) # # This script creates the following variables: # RTT_PLUGIN_<COMPONENT>_FOUND: Boolean that indicates if the plugin was found # RTT_PLUGIN_<COMPONENT>_INCLUDE_DIRS: Path to the plugin header files (equal to OROCOS_RTT_INCLUDE_DIRS) # RTT_PLUGIN_<COMPONENT>_LIBRARIES: Plugin library # ################################################################################
include(LibFindMacros)
find_package(Orocos-RTT REQUIRED ${RTT_HINTS})
FOREACH(COMPONENT ${RTTPlugin_FIND_COMPONENTS})
# We search for both 'given name' and 'given name + -target'
set(PLUGIN_NAME ${COMPONENT} ${COMPONENT}-${OROCOS_TARGET} )
#STRING(TOUPPER ${COMPONENT} COMPONENT)
set(RTT_PLUGIN_${COMPONENT}_INCLUDE_DIR ${OROCOS-RTT_INCLUDE_DIRS} )
# Find plugins
if(OROCOS-RTT_PLUGIN_PATH)
# Use location specified by environment variable
find_library(RTT_PLUGIN_${COMPONENT}_LIBRARY NAMES ${PLUGIN_NAME} PATHS ${OROCOS-RTT_PLUGIN_PATH} PATH_SUFFIXES ${OROCOS_TARGET} NO_DEFAULT_PATH)
find_library(RTT_PLUGIN_${COMPONENT}D_LIBRARY NAMES ${PLUGIN_NAME}${CMAKE_DEBUG_POSTFIX} PATHS ${OROCOS-RTT_PLUGIN_PATH} PATH_SUFFIXES ${OROCOS_TARGET} NO_DEFAULT_PATH)
else()
# Use default CMake search process
find_library(RTT_PLUGIN_${COMPONENT}_LIBRARY NAMES ${PLUGIN_NAME} PATHS ${OROCOS-RTT_PLUGIN_PATH} PATH_SUFFIXES ${OROCOS_TARGET})
find_library(RTT_PLUGIN_${COMPONENT}D_LIBRARY NAMES ${PLUGIN_NAME}${CMAKE_DEBUG_POSTFIX} PATHS ${OROCOS-RTT_PLUGIN_PATH} PATH_SUFFIXES ${OROCOS_TARGET})
endif()
# Set the include dir variables and the libraries and let libfind_process do the rest.
# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
set(RTT_PLUGIN_${COMPONENT}_PROCESS_INCLUDES RTT_PLUGIN_${COMPONENT}_INCLUDE_DIR )
if ( RTT_PLUGIN_${COMPONENT}D_LIBRARY )
list(APPEND RTT_PLUGIN_${COMPONENT}_PROCESS_LIBS RTT_PLUGIN_${COMPONENT}D_LIBRARY)
endif()
if ( RTT_PLUGIN_${COMPONENT}_LIBRARY )
list(APPEND RTT_PLUGIN_${COMPONENT}_PROCESS_LIBS RTT_PLUGIN_${COMPONENT}_LIBRARY)
endif()
libfind_process( RTT_PLUGIN_${COMPONENT} )
ENDFOREACH(COMPONENT)