diff --git a/.gitignore b/.gitignore index 0f81468e120707b1d33b33e68e8d724d84a8618c..3a28e141fad9fc3cc4a8a9324c20d14c1ff31110 100644 --- a/.gitignore +++ b/.gitignore @@ -166,7 +166,6 @@ StyleCopReport.xml *.pgd *.rsp *.sbr -*.tlb *.tli *.tlh *.tmp diff --git a/CMakeLists.txt b/CMakeLists.txt index 151f71f6284aad8734cba60e61fec8e0769dac45..e9e4960ed3681be0ea031193b3b6e43038049d04 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -111,13 +111,26 @@ include( ${OROCOS-RTT_USE_FILE_PATH}/UseOROCOS-RTT.cmake ) include_directories(${PROJECT_SOURCE_DIR}/include) # set(ENV{CPLUS_INCLUDE_PATH} ${PROJECT_SOURCE_DIR}/modules/config_tools/include/) # include_directories(${PROJECT_SOURCE_DIR}/modules/config_tools/include/) -orocos_typegen_headers(${PROJECT_SOURCE_DIR}/include/robot_brain/ethercat_frame_types.hpp - ${PROJECT_SOURCE_DIR}/include/robot_brain/command_types.hpp - ) # ...you may add multiple header files +# orocos_typegen_headers(${PROJECT_SOURCE_DIR}/include/robot_brain/ethercat_frame_types.hpp +# ${PROJECT_SOURCE_DIR}/include/robot_brain/command_types.hpp +# ) # ...you may add multiple header files + +find_package (Eigen3 3.3 REQUIRED NO_MODULE) +message(STATUS "FIND Eigen3 " ${EIGEN3_INCLUDE_DIR}) +include_directories(${EIGEN3_INCLUDE_DIR}) + +find_package(gRPC CONFIG REQUIRED) +message(STATUS "Using gRPC ${gRPC_VERSION}") + +include_directories(${OROCOS_INSTALL_PREFIX}/include/orocos) +message(STATUS "OROCOS_INSTALL_PREFIX: ${OROCOS_INSTALL_PREFIX}") + install(DIRECTORY include/robot_brain DESTINATION include ) +add_subdirectory(typekit) + # 添加源码模块所在位置 add_subdirectory(modules) diff --git a/bootstrap b/bootstrap old mode 100644 new mode 100755 diff --git a/config.h b/config.h new file mode 100644 index 0000000000000000000000000000000000000000..5e6d17d5485231e4ffc0edff1759cd7bd9cc1394 --- /dev/null +++ b/config.h @@ -0,0 +1,52 @@ +/** + * @file config.h + * @author QingfengLi (liqingfengzzu@163.com) + * @brief robot_brain库的配置相关头文件 + * @details config.h为库编译的相关配置,该文件为自动生成文件,不要手动编辑,如有需要,可以对应的config.h.in文件 + * @version 0.1 + * @date 2021-05-27 + * + * @copyright Copyright (c) 2021 ROSC + * + */ +#ifndef ROBOT_BRAIN_CONFIG_H_ +#define ROBOT_BRAIN_CONFIG_H_ + +#define ROSC_ROBOT_TYPE ROBOT_TYPE_ZERO_6 + +#define ROBOT_TYPE_ZERO_6 + + +typedef enum SlaveType { + MOTOR_SERVO, + IO_SERVO, + IO_SERVO_IN, + IO_SERVO_OUT +} SlaveType; + +typedef enum ArmType { ZERO_6, SCARA, XB4S } ArmType; + +const int kDofMax = 6; +const int kSLAVENUMMAX = 9; + +#ifdef ROBOT_TYPE_ZERO_6 +const int kDof = 6; +#endif + +#ifdef ROBOT_TYPE_PANASONIC_2_SLAVE +const int kSLAVENUM = 2; +const int kDof = 2; + +#endif + +#ifdef ROBOT_TYPE_ROKAE_XB4S +const ArmType ARMTYPE = ArmType::XB4S; +const int kSLAVENUM = 6; +const int kDof = 6; +#endif + +// const char *const kDefaultDataPointFilePath = +// "../../../../../../data/test_data/robot/data/POINT.yml"; +// "/robot/config/data/POINT.yml"; + +#endif // ROBOT_BRAIN_CONFIG_H_ diff --git a/modules/components/CMakeLists.txt b/modules/components/CMakeLists.txt index a72b8c41e6e23b4473f3eab92a6ac928925e8be8..73861ff78666f6bdfd8fb3d1a99138e857b34a10 100644 --- a/modules/components/CMakeLists.txt +++ b/modules/components/CMakeLists.txt @@ -4,6 +4,6 @@ add_subdirectory(ethercat_component) add_subdirectory(exception_component) add_subdirectory(robot_component) add_subdirectory(trajectory_component) -add_subdirectory(grpc_service_component) +# add_subdirectory(grpc_service_component) add_subdirectory(robot_service_component) add_subdirectory(interlock_component) \ No newline at end of file diff --git a/modules/components/ethercat_component/test/CMakeLists.txt b/modules/components/ethercat_component/test/CMakeLists.txt index d20688f61be3e0c9e3ab8048bd766a319477d906..c0e877e83b86719dcb2761f00c38cec82166fd85 100644 --- a/modules/components/ethercat_component/test/CMakeLists.txt +++ b/modules/components/ethercat_component/test/CMakeLists.txt @@ -19,7 +19,7 @@ include( ${OROCOS-RTT_USE_FILE_PATH}/UseOROCOS-RTT.cmake ) aux_source_directory(./ TEST_DIR_SRCS) -add_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) +orocos_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) add_test(NAME ${TEST_BINARY} COMMAND ${TEST_BINARY}) target_include_directories(${MODULE_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/modules/core/include diff --git a/modules/components/exception_component/src/CMakeLists.txt b/modules/components/exception_component/src/CMakeLists.txt index 7c530f49f3a8bbbba704f18e5cb778ac77d1142c..4fa4abfbe7628dcb34cd690c8a088da3df587f0d 100644 --- a/modules/components/exception_component/src/CMakeLists.txt +++ b/modules/components/exception_component/src/CMakeLists.txt @@ -14,7 +14,7 @@ find_package (glog 0.6.0 REQUIRED) find_package (Threads REQUIRED) find_package (Eigen3 3.3 REQUIRED NO_MODULE) message(STATUS "FIND Eigen3 " ${EIGEN3_INCLUDE_DIR}) -find_package(protobuf CONFIG REQUIRED) +# find_package(protobuf CONFIG REQUIRED) message(STATUS "Using protobuf ${protobuf_VERSION}") orocos_component(${MODULE_NAME} ${DIR_SRCS}) @@ -38,7 +38,7 @@ target_link_libraries(${MODULE_NAME} core) target_link_libraries(${MODULE_NAME} glog::glog) target_link_libraries(${MODULE_NAME} yaml-cpp) target_link_libraries(${MODULE_NAME} Eigen3::Eigen) -target_link_libraries(${MODULE_NAME} ${_REFLECTION} ${_GRPC_GRPCPP} ${_PROTOBUF_LIBPROTOBUF}) +# target_link_libraries(${MODULE_NAME} ${_REFLECTION} ${_GRPC_GRPCPP} ${_PROTOBUF_LIBPROTOBUF}) # You may add multiple orocos_component statements. # diff --git a/modules/components/exception_component/test/CMakeLists.txt b/modules/components/exception_component/test/CMakeLists.txt index db90beb9ef73bc910d31f968a58930566783e415..d4db6649396836a5c2a93916561e66510682c1a4 100644 --- a/modules/components/exception_component/test/CMakeLists.txt +++ b/modules/components/exception_component/test/CMakeLists.txt @@ -12,10 +12,6 @@ if (NOT OROCOS-RTT_FOUND) message (FATAL_ERROR "\nCould not find Orocos. Please use the shell command\n 'source orocos_toolchain/env.sh' and then run cmake again.") endif() -set(_PROTOBUF_LIBPROTOBUF protobuf) -set(_REFLECTION grpc++_reflection) -set(_GRPC_GRPCPP grpc++) - # Defines the orocos_* cmake macros. See that file for additional # documentation. @@ -23,7 +19,7 @@ include( ${OROCOS-RTT_USE_FILE_PATH}/UseOROCOS-RTT.cmake ) aux_source_directory(./ TEST_DIR_SRCS) -add_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) +orocos_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) add_test(NAME ${TEST_BINARY} COMMAND ${TEST_BINARY}) target_link_libraries(${TEST_BINARY} gtest) diff --git a/modules/components/grpc_service_component/src/CMakeLists.txt b/modules/components/grpc_service_component/src/CMakeLists.txt index eb139fa55d27fec55c372eaffe951a8a7c46bd76..0eccabe5a6fdb875be8f021ab86a10c0b251e71c 100644 --- a/modules/components/grpc_service_component/src/CMakeLists.txt +++ b/modules/components/grpc_service_component/src/CMakeLists.txt @@ -17,8 +17,9 @@ find_package (glog 0.6.0 REQUIRED) find_package(Threads REQUIRED) find_package (Eigen3 3.3 REQUIRED NO_MODULE) message(STATUS "FIND Eigen3 " ${EIGEN3_INCLUDE_DIR}) -find_package(protobuf CONFIG REQUIRED) -message(STATUS "Using protobuf ${protobuf_VERSION}") +find_package(PkgConfig REQUIRED) +pkg_check_modules(Protobuf REQUIRED protobuf) +# message(STATUS "Using protobuf ${protobuf_VERSION}") # gRPC find_package(absl REQUIRED) @@ -31,17 +32,17 @@ set(_PROTOBUF_LIBPROTOBUF protobuf) set(_REFLECTION grpc++_reflection) -if(CMAKE_CROSSCOMPILING) +# if(CMAKE_CROSSCOMPILING) find_program(_PROTOBUF_PROTOC protoc) -else() - set(_PROTOBUF_PROTOC $) -endif() +# else() +# set(_PROTOBUF_PROTOC $) +# endif() set(_GRPC_GRPCPP grpc++) -if(CMAKE_CROSSCOMPILING) +# if(CMAKE_CROSSCOMPILING) find_program(_GRPC_CPP_PLUGIN_EXECUTABLE grpc_cpp_plugin) -else() - set(_GRPC_CPP_PLUGIN_EXECUTABLE $) -endif() +# else() +# set(_GRPC_CPP_PLUGIN_EXECUTABLE $ +# endif() MESSAGE(STATUS "GRPC PLUGIN:" ${_GRPC_CPP_PLUGIN_EXECUTABLE}) @@ -87,6 +88,7 @@ target_include_directories(${MODULE_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/3rdparty/include ${PROJECT_SOURCE_DIR}/modules/core/include ${PROJECT_SOURCE_DIR}/modules/components/robot_service_component/include + ) target_link_libraries(${MODULE_NAME} yaml-cpp) target_link_libraries(${MODULE_NAME} robot_exception) diff --git a/modules/components/grpc_service_component/test/CMakeLists.txt b/modules/components/grpc_service_component/test/CMakeLists.txt index fa380ecda374b53de1ef84e2160a2bcd31b76eaa..32a08c2dd773c60c48790c3a751672d884b1708c 100644 --- a/modules/components/grpc_service_component/test/CMakeLists.txt +++ b/modules/components/grpc_service_component/test/CMakeLists.txt @@ -14,12 +14,12 @@ find_package (glog 0.6.0 REQUIRED) find_package (Eigen3 3.3 REQUIRED NO_MODULE) message(STATUS "FIND Eigen3 " ${EIGEN3_INCLUDE_DIR}) -find_path(OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR NAMES orocos/robot_brain_cpp PATH_SUFFIXES include) -if (NOT OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR) - message(FATAL_ERROR "Could not find orocos/robot_brain_cpp") -endif() -# OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR=${OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR}/orocos/robot_brain_cpp -set(OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR ${OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR}/orocos/robot_brain_cpp) +# find_path(OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR NAMES orocos/robot_brain_cpp PATH_SUFFIXES include) +# if (NOT OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR) +# message(FATAL_ERROR "Could not find orocos/robot_brain_cpp") +# endif() +# # OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR=${OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR}/orocos/robot_brain_cpp +# set(OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR ${OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR}/orocos/robot_brain_cpp) set(_PROTOBUF_LIBPROTOBUF protobuf) set(_REFLECTION grpc++_reflection) @@ -29,11 +29,11 @@ aux_source_directory(./ TEST_DIR_SRCS) # file(GLOB DIR_SRCS "../src/*.cc" "../include/*.cc") # list(FILTER DIR_SRCS EXCLUDE REGEX ".*_main.cc$") -add_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) +orocos_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) add_test(NAME ${TEST_BINARY} COMMAND ${TEST_BINARY}) target_include_directories(${TEST_BINARY} PUBLIC - ${OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR} + # ${OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR} ${PROJECT_SOURCE_DIR}/modules/core/include ${PROJECT_SOURCE_DIR}/modules/components/ethercat_component/include ${PROJECT_SOURCE_DIR}/modules/components/robot_component/include diff --git a/modules/components/robot_component/test/CMakeLists.txt b/modules/components/robot_component/test/CMakeLists.txt index df10e1d18ae65cca02884967a0580eb6c1add550..f143e32a8e8d4c752b093c658334c8823245ac4c 100644 --- a/modules/components/robot_component/test/CMakeLists.txt +++ b/modules/components/robot_component/test/CMakeLists.txt @@ -20,7 +20,7 @@ include( ${OROCOS-RTT_USE_FILE_PATH}/UseOROCOS-RTT.cmake ) aux_source_directory(./ TEST_DIR_SRCS) -add_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) +orocos_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) add_test(NAME ${TEST_BINARY} COMMAND ${TEST_BINARY}) diff --git a/modules/components/robot_service_component/test/CMakeLists.txt b/modules/components/robot_service_component/test/CMakeLists.txt index d4aa963fb27ec9e908a0bf8eb40743f382773139..8ea3f001e0be7f4775e9ec2bd346f77d21862df1 100644 --- a/modules/components/robot_service_component/test/CMakeLists.txt +++ b/modules/components/robot_service_component/test/CMakeLists.txt @@ -7,18 +7,18 @@ find_package (Eigen3 3.3 REQUIRED NO_MODULE) aux_source_directory(./ TEST_DIR_SRCS) -add_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) +orocos_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) add_test(NAME ${TEST_BINARY} COMMAND ${TEST_BINARY}) -find_path(OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR NAMES orocos/robot_brain_cpp PATH_SUFFIXES include) -if (NOT OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR) - message(FATAL_ERROR "Could not find orocos/robot_brain_cpp") -endif() -set(OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR ${OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR}/orocos/robot_brain_cpp) +# find_path(OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR NAMES orocos/robot_brain_cpp PATH_SUFFIXES include) +# if (NOT OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR) +# message(FATAL_ERROR "Could not find orocos/robot_brain_cpp") +# endif() +# set(OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR ${OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR}/orocos/robot_brain_cpp) target_include_directories(${TEST_BINARY} PUBLIC ${PROJECT_SOURCE_DIR}/modules/core/include - ${OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR} + # ${OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR} ${PROJECT_SOURCE_DIR}/modules/components/ethercat_component/include ${PROJECT_SOURCE_DIR}/modules/components/robot_component/include ${PROJECT_SOURCE_DIR}/modules/components/robot_service_component/include @@ -41,6 +41,6 @@ target_link_libraries(${TEST_BINARY} interlock_component) # target_link_libraries(${TEST_BINARY} /home/robot/projects/robot_brain_cpp/out/build/typekit/transports/typelib/librobot_brain_cpp-transport-typelib-gnulinux.so) # target_link_libraries(${TEST_BINARY} /home/robot/projects/robot_brain_cpp/out/build/typekit/transports/corba/librobot_brain_cpp-transport-corba-gnulinux.so) # TARGET_LINK_LIBRARIES(${TEST_BINARY} orocos-rtt-${OROCOS_TARGET}) -target_link_libraries(${TEST_BINARY} orocos-rtt-mqueue-${OROCOS_TARGET}) +# target_link_libraries(${TEST_BINARY} orocos-rtt-mqueue-${OROCOS_TARGET}) target_link_libraries(${TEST_BINARY} glog::glog gtest) target_link_libraries(${TEST_BINARY} Eigen3::Eigen) diff --git a/modules/components/test_com/test/CMakeLists.txt b/modules/components/test_com/test/CMakeLists.txt index 5b03b87c79f3172665d8396eebc5e43cf708c4df..882698241d6e169c6a60e0de05f73bb7c3c77384 100644 --- a/modules/components/test_com/test/CMakeLists.txt +++ b/modules/components/test_com/test/CMakeLists.txt @@ -19,7 +19,7 @@ include( ${OROCOS-RTT_USE_FILE_PATH}/UseOROCOS-RTT.cmake ) aux_source_directory(./ TEST_DIR_SRCS) -add_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) +orocos_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) add_test(NAME ${TEST_BINARY} COMMAND ${TEST_BINARY}) target_include_directories(${MODULE_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/modules/core/include diff --git a/modules/components/trajectory_component/test/CMakeLists.txt b/modules/components/trajectory_component/test/CMakeLists.txt index ef2c1883e0a00c0b980e172e42975fa46b0db431..b9c7168df0c24d4e37014940925542f1c9ee1e13 100644 --- a/modules/components/trajectory_component/test/CMakeLists.txt +++ b/modules/components/trajectory_component/test/CMakeLists.txt @@ -17,7 +17,7 @@ include( ${OROCOS-RTT_USE_FILE_PATH}/UseOROCOS-RTT.cmake ) aux_source_directory(./ TEST_DIR_SRCS) -add_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) +orocos_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) add_test(NAME ${TEST_BINARY} COMMAND ${TEST_BINARY}) diff --git a/modules/core/src/CMakeLists.txt b/modules/core/src/CMakeLists.txt index ec791796417f96821ce495952bc8ca485ae6739a..b39ac6a2ad7371753e7ffa96ae2fa480ab74e025 100644 --- a/modules/core/src/CMakeLists.txt +++ b/modules/core/src/CMakeLists.txt @@ -3,9 +3,6 @@ aux_source_directory(./ DIR_SRCS) find_package (glog 0.6.0 REQUIRED) find_package(Threads REQUIRED) -find_package(SWIG 1.1) -find_package(Lua51 REQUIRED) -include(${SWIG_USE_FILE}) # Use 'source orocos_toolchain/env.sh' if the command below fails: find_package(OROCOS-RTT QUIET) @@ -27,15 +24,7 @@ include( ${OROCOS-RTT_USE_FILE_PATH}/UseOROCOS-RTT.cmake ) # # ...you may add multiple header files -if (${SWIG_FOUND}) - set_property(SOURCE application.i PROPERTY CPLUSPLUS ON) - SWIG_ADD_LIBRARY(${MODULE_NAME} TYPE SHARED LANGUAGE lua SOURCES application.i ${DIR_SRCS}) - # 去掉生成so的lib前缀,保证生成的so名称为example.so,与lua脚本文件保持一致 - # set_target_properties(${MODULE_NAME} PROPERTIES PREFIX "") - target_include_directories(${MODULE_NAME} PUBLIC ${LUA_INCLUDE_DIR}) -else() - message(FATAL_ERROR "Can not found swig") -endif() +add_library(${MODULE_NAME} SHARED ${DIR_SRCS}) # ADD_LIBRARY(${MODULE_NAME} SHARED ${DIR_SRCS}) target_link_options(${MODULE_NAME} PRIVATE LINKER:-Bsymbolic) diff --git a/modules/core/src/config.cc b/modules/core/src/config.cc index a97768ce462fe19d966f218d17ae8e9633dade66..e4ac514bc11ab4e8dc2a740c3bc8badeed8bcdd0 100644 --- a/modules/core/src/config.cc +++ b/modules/core/src/config.cc @@ -24,7 +24,7 @@ #include #include #include - +#include namespace rosc { namespace fs = boost::filesystem; diff --git a/modules/core/test/CMakeLists.txt b/modules/core/test/CMakeLists.txt index dee0b870e45e1c5d7657a5806d475a2917e493ff..b3e98afc7f0f43d5bac8915f7a27f2834e009fe2 100644 --- a/modules/core/test/CMakeLists.txt +++ b/modules/core/test/CMakeLists.txt @@ -22,12 +22,12 @@ if(NOT TARGET Boost::filesystem) INTERFACE_LINK_LIBRARIES ${Boost_LIBRARIES}) endif() -add_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) +orocos_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) add_test(NAME ${TEST_BINARY} COMMAND ${TEST_BINARY}) -target_link_libraries(${TEST_BINARY} PRIVATE yaml-cpp) -target_link_libraries(${TEST_BINARY} PRIVATE glog::glog) -target_link_libraries(${TEST_BINARY} PRIVATE ${MODULE_NAME} gtest) -target_link_libraries(${TEST_BINARY} PRIVATE Eigen3::Eigen) -target_link_libraries(${TEST_BINARY} PRIVATE Boost::filesystem) +target_link_libraries(${TEST_BINARY} yaml-cpp) +target_link_libraries(${TEST_BINARY} glog::glog) +target_link_libraries(${TEST_BINARY} ${MODULE_NAME} gtest) +target_link_libraries(${TEST_BINARY} Eigen3::Eigen) +target_link_libraries(${TEST_BINARY} Boost::filesystem) diff --git a/modules/robot_brain/test/CMakeLists.txt b/modules/robot_brain/test/CMakeLists.txt index f93407b2a8cc3c91f597acfaf2f0172a4702249c..6c5266328b45880b1c476035d740f24c161b2070 100644 --- a/modules/robot_brain/test/CMakeLists.txt +++ b/modules/robot_brain/test/CMakeLists.txt @@ -15,7 +15,7 @@ endif() include( ${OROCOS-RTT_USE_FILE_PATH}/UseOROCOS-RTT.cmake ) aux_source_directory(./ TEST_DIR_SRCS) -add_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) +orocos_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) # target_link_libraries(${TEST_BINARY} PRIVATE ${MODULE_NAME}) add_test(NAME ${TEST_BINARY} COMMAND ${TEST_BINARY}) diff --git a/modules/robot_ctl/test/CMakeLists.txt b/modules/robot_ctl/test/CMakeLists.txt index a53a509cb905b9fea7e0140594d8d2365488a1a8..ac8ce80799a06db9db19e5d0ec254ad8eff82c86 100644 --- a/modules/robot_ctl/test/CMakeLists.txt +++ b/modules/robot_ctl/test/CMakeLists.txt @@ -5,7 +5,7 @@ include_directories("../include") set(TEST_BINARY ${ROBOT_CTL_EXE}_unittest) aux_source_directory(./ TEST_DIR_SRCS) -add_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) +orocos_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) add_test(NAME ${TEST_BINARY} COMMAND ${TEST_BINARY}) target_link_libraries(${TEST_BINARY} PUBLIC glog::glog gtest) diff --git a/modules/robot_exception/test/CMakeLists.txt b/modules/robot_exception/test/CMakeLists.txt index f17baa18c7eaf0a398c5a4006bc412182181a090..71653241fd1039f3cb3add3bc531877dabe80823 100644 --- a/modules/robot_exception/test/CMakeLists.txt +++ b/modules/robot_exception/test/CMakeLists.txt @@ -7,7 +7,7 @@ set(TEST_BINARY ${MODULE_NAME}_unittest) aux_source_directory(./ TEST_DIR_SRCS) -add_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) +orocos_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) add_test(NAME ${TEST_BINARY} COMMAND ${TEST_BINARY}) -target_link_libraries(${TEST_BINARY} PUBLIC ${MODULE_NAME} gtest glog::glog) \ No newline at end of file +target_link_libraries(${TEST_BINARY} ${MODULE_NAME} gtest glog::glog) \ No newline at end of file diff --git a/modules/robot_interpolation/test/CMakeLists.txt b/modules/robot_interpolation/test/CMakeLists.txt index c3da3bfd618a91b82f14836b6e518cc22c5fa3e5..205f38c463dfccea740ee41425e7ccb348d19c85 100644 --- a/modules/robot_interpolation/test/CMakeLists.txt +++ b/modules/robot_interpolation/test/CMakeLists.txt @@ -22,10 +22,10 @@ if(NOT TARGET Boost::filesystem) endif() aux_source_directory(./ TEST_DIR_SRCS) -add_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) +orocos_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) add_test(NAME ${TEST_BINARY} COMMAND ${TEST_BINARY}) -target_link_libraries(${TEST_BINARY} PUBLIC ${MODULE_NAME} gtest orocos-kdl yaml-cpp robot_interpolation) -target_link_libraries(${TEST_BINARY} PUBLIC Eigen3::Eigen) -target_link_libraries(${TEST_BINARY} PUBLIC glog::glog) -target_link_libraries(${TEST_BINARY} PUBLIC Boost::filesystem) +target_link_libraries(${TEST_BINARY} ${MODULE_NAME} gtest orocos-kdl yaml-cpp robot_interpolation) +target_link_libraries(${TEST_BINARY} Eigen3::Eigen) +target_link_libraries(${TEST_BINARY} glog::glog) +target_link_libraries(${TEST_BINARY} Boost::filesystem) diff --git a/modules/robot_planning/test/CMakeLists.txt b/modules/robot_planning/test/CMakeLists.txt index dd632ea8434ba926d35433547c0d24ed7fa3bb50..48abae0661172e78cd68d95e4bcf72e403a72231 100644 --- a/modules/robot_planning/test/CMakeLists.txt +++ b/modules/robot_planning/test/CMakeLists.txt @@ -25,7 +25,7 @@ aux_source_directory(./ TEST_DIR_SRCS) add_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) add_test(NAME ${TEST_BINARY} COMMAND ${TEST_BINARY}) -target_link_libraries(${TEST_BINARY} PUBLIC ${MODULE_NAME} gtest orocos-kdl yaml-cpp) -target_link_libraries(${TEST_BINARY} PUBLIC Eigen3::Eigen) -target_link_libraries(${TEST_BINARY} PUBLIC glog::glog) -target_link_libraries(${TEST_BINARY} PUBLIC Boost::filesystem) +target_link_libraries(${TEST_BINARY} ${MODULE_NAME} gtest orocos-kdl yaml-cpp) +target_link_libraries(${TEST_BINARY} Eigen3::Eigen) +target_link_libraries(${TEST_BINARY} glog::glog) +target_link_libraries(${TEST_BINARY} Boost::filesystem) diff --git a/modules/robot_server/src/CMakeLists.txt b/modules/robot_server/src/CMakeLists.txt index 631ee6f6d9e95204c1b2da909e0fa1f494fbd993..ab195911d9168a0a0affa0519dc8586fa1bff9bb 100644 --- a/modules/robot_server/src/CMakeLists.txt +++ b/modules/robot_server/src/CMakeLists.txt @@ -6,12 +6,12 @@ aux_source_directory(./ DIR_SRCS) find_package (glog 0.6.0 REQUIRED) # 将源代码添加到此项目的可执行文件。 -add_executable(${ROBOT_SERVER_EXE} ${DIR_SRCS}) -find_path(OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR NAMES orocos/robot_brain_cpp PATH_SUFFIXES include) -if (NOT OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR) - message(FATAL_ERROR "Could not find orocos/robot_brain_cpp") -endif() -set(OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR ${OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR}/orocos/robot_brain_cpp) +orocos_executable(${ROBOT_SERVER_EXE} ${DIR_SRCS}) +# find_path(OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR NAMES orocos/robot_brain_cpp PATH_SUFFIXES include) +# if (NOT OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR) +# message(FATAL_ERROR "Could not find orocos/robot_brain_cpp") +# endif() +# set(OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR ${OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR}/orocos/robot_brain_cpp) target_include_directories(${ROBOT_SERVER_EXE} PUBLIC ${PROJECT_SOURCE_DIR}/modules/components/ethercat_component/include @@ -21,8 +21,7 @@ target_include_directories(${ROBOT_SERVER_EXE} PUBLIC ${PROJECT_SOURCE_DIR}/modules/components/exception_component/include #${PROJECT_SOURCE_DIR}/modules/components/grpc_service_component/include ${PROJECT_SOURCE_DIR}/modules/components/interlock_component/include - - ${OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR} + # ${OROCOS_ROBOT_BRAIN_CPP_INCLUDE_DIR} ) #target_link_directories(${ROBOT_SERVER_EXE} PUBLIC $ENV{RTT_COMPONENT_PATH}/${OROCOS_TARGET}/robot_brain_cpp/) @@ -35,6 +34,6 @@ target_link_libraries(${ROBOT_SERVER_EXE} robot_service_component) target_link_libraries(${ROBOT_SERVER_EXE} interlock_component) #target_link_libraries(${ROBOT_SERVER_EXE} grpc_service_component) target_link_libraries(${ROBOT_SERVER_EXE} core) -target_link_libraries(${ROBOT_SERVER_EXE} orocos-rtt-mqueue-${OROCOS_TARGET}) +# target_link_libraries(${ROBOT_SERVER_EXE} orocos-rtt-mqueue-${OROCOS_TARGET}) #target_link_libraries(${ROBOT_SERVER_EXE} Eigen3::Eigen) install(TARGETS ${ROBOT_SERVER_EXE} DESTINATION bin) diff --git a/modules/robot_server/test/CMakeLists.txt b/modules/robot_server/test/CMakeLists.txt index 2b1af36fedf2a7545b6551f78fdab74b1cc850b7..d1f759e0ad5639a95e45b1d8c481325b5ea916bc 100644 --- a/modules/robot_server/test/CMakeLists.txt +++ b/modules/robot_server/test/CMakeLists.txt @@ -5,8 +5,8 @@ include_directories("../include") set(TEST_BINARY ${ROBOT_SERVER_EXE}_unittest) aux_source_directory(./ TEST_DIR_SRCS) -add_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) +orocos_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) add_test(NAME ${TEST_BINARY} COMMAND ${TEST_BINARY}) -target_link_libraries(${TEST_BINARY} PUBLIC glog::glog gtest) +target_link_libraries(${TEST_BINARY} glog::glog gtest) diff --git a/modules/robot_teach/src/CMakeLists.txt b/modules/robot_teach/src/CMakeLists.txt index 54a9fb3b503dd567b2ab4a759adcecdd6824819a..54192b4e0bcad3d8876e55b28d5d595626e884d5 100644 --- a/modules/robot_teach/src/CMakeLists.txt +++ b/modules/robot_teach/src/CMakeLists.txt @@ -13,7 +13,7 @@ target_include_directories(${MODULE_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/3rdparty/include ${PROJECT_SOURCE_DIR}/modules/core/include ${PROJECT_SOURCE_DIR}/modules/robot_planning/include - ) +) target_link_libraries(${MODULE_NAME} PRIVATE orocos-kdl) target_link_libraries(${MODULE_NAME} PUBLIC core) diff --git a/modules/robot_teach/test/CMakeLists.txt b/modules/robot_teach/test/CMakeLists.txt index a3a0681e390e850f32b3ce461dc47a95377a3ac9..e4e3f8986ae021a8eac25df44645f6e54d96f6dc 100644 --- a/modules/robot_teach/test/CMakeLists.txt +++ b/modules/robot_teach/test/CMakeLists.txt @@ -7,11 +7,11 @@ include_directories("../include") set(TEST_BINARY ${MODULE_NAME}_unittest) aux_source_directory(./ TEST_DIR_SRCS) -add_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) -target_link_libraries(${TEST_BINARY} PRIVATE ${MODULE_NAME}) +orocos_executable(${TEST_BINARY} ${TEST_DIR_SRCS}) +target_link_libraries(${TEST_BINARY} ${MODULE_NAME}) add_test(NAME ${TEST_BINARY} COMMAND ${TEST_BINARY}) -target_link_libraries(${TEST_BINARY} PRIVATE ${MODULE_NAME} gtest yaml-cpp) -target_link_libraries(${TEST_BINARY} PRIVATE glog::glog) -target_link_libraries(${TEST_BINARY} PRIVATE Eigen3::Eigen) +target_link_libraries(${TEST_BINARY} ${MODULE_NAME} gtest yaml-cpp) +target_link_libraries(${TEST_BINARY} glog::glog) +target_link_libraries(${TEST_BINARY} Eigen3::Eigen) diff --git a/modules/robot_teach/test/test_save_point.cpp b/modules/robot_teach/test/test_save_point.cpp index 6bfd48288c78227bf330b0f9f0afe37846acde7f..ae78ed2395c2cf365653874e733d7f6a74c129f1 100644 --- a/modules/robot_teach/test/test_save_point.cpp +++ b/modules/robot_teach/test/test_save_point.cpp @@ -8,19 +8,7 @@ * @copyright Copyright (c) 2021 ROSC * */ -#include -#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include + TEST(RobotTeach, test_point) {} diff --git a/typekit/CMakeLists.txt b/typekit/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..0b992d23830e0df5b67de74e4fb84e496bc88a85 --- /dev/null +++ b/typekit/CMakeLists.txt @@ -0,0 +1,165 @@ +# Generated from orogen/lib/orogen/templates/typekit/CMakeLists.txt + +## +# Header for typegen-generated typekits +# +project("robot_brain-typekit") +cmake_minimum_required(VERSION 2.6) + +SET (CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/config") + +# In Orogen components, the build target is specified at generation time +# But we allow to override in case of typegen/USE_OROCOS_RTT: +if (NOT OROCOS_TARGET) + set(OROCOS_TARGET "gnulinux") +endif() +# If UseOrocos-RTT.cmake is used, install libs in /target/package subdir in order to allow +# multi-target/package installs. +if ( USE_OROCOS_RTT ) + if ( NOT OROCOS_SUFFIX ) + set (OROCOS_SUFFIX "/${OROCOS_TARGET}") + endif() + set(OROCOS_PKG_DIR "${OROCOS_SUFFIX}/robot_brain") +endif() + +# Enable -Wall for compilers that know it +include(CheckCXXCompilerFlag) +CHECK_CXX_COMPILER_FLAG("-Wall" CXX_SUPPORTS_WALL) +if (CXX_SUPPORTS_WALL) + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") +endif (CXX_SUPPORTS_WALL) + +# Define the necessary RPath information for all binaries. That can be stripped +# later +option(WITH_RPATH "enables or disables embedding RPath information in binaries" ON) +if(WITH_RPATH) + include(RPATHHandling) + CMAKE_USE_FULL_RPATH("${CMAKE_INSTALL_PREFIX}/lib;${CMAKE_INSTALL_PREFIX}/lib/orocos;${CMAKE_INSTALL_PREFIX}/lib/orocos${OROCOS_PKG_DIR}/types") +endif(WITH_RPATH) + +# Set the build type to debug by default +IF ( NOT CMAKE_BUILD_TYPE ) + SET( CMAKE_BUILD_TYPE Debug ) +ENDIF ( NOT CMAKE_BUILD_TYPE ) + +include(OrogenPkgCheckModules) +orogen_pkg_check_modules(OrocosRTT REQUIRED "orocos-rtt-${OROCOS_TARGET}>=1.99.4") + +ADD_CUSTOM_TARGET(regen + + typegen --transports=typelib --output=./typekit robot_brain include/robot_brain/ethercat_frame_types.hpp include/robot_brain/command_types.hpp + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/..) + +# END if typekit.standalone? +## + +# Manually define '-DIS_ROS_PACKAGE' or include the UseOrocos.cmake file to automatically detect&set this flag. +if ( IS_ROS_PACKAGE ) + # When we import a typekit in a ROS package, we expect it to be in the package/lib directory + set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${${CMAKE_PROJECT_NAME}_SOURCE_DIR}/lib/orocos${OROCOS_SUFFIX}/types) +endif( IS_ROS_PACKAGE ) + +execute_process(COMMAND cmake -E create_symlink + ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/robot_brain) + +include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}) +include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}/types) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) + +include_directories(${OrocosRTT_INCLUDE_DIRS}) +add_definitions(${OrocosRTT_CFLAGS_OTHER}) +link_directories(${OrocosRTT_LIBRARY_DIRS}) + + +# Now set up the dependencies +set(DEPS_CFLAGS_OTHER "") + +list(REMOVE_DUPLICATES DEPS_CFLAGS_OTHER) +add_definitions(${DEPS_CFLAGS_OTHER}) + +set(PKG_CFLAGS ${OrocosRTT_CFLAGS}) + +list(REMOVE_DUPLICATES PKG_CFLAGS) +string(REPLACE ";" "\" \"" PKG_CFLAGS "\"${PKG_CFLAGS}\"") + +# Generate the base typekit shared library +set(libname robot_brain-typekit-${OROCOS_TARGET}) +add_library(${libname} SHARED + Plugin.cpp + type_info/__rosc__Arm_pos___rosc__AxisNum.cpp + type_info/__rosc__CommandExecResult___rosc__CommandType.cpp + type_info/__rosc__DigitIOFrame___rosc__EncoderFrame.cpp + type_info/__rosc__EthercatCtlFrame___rosc__EthercatFrameSendStatus.cpp + type_info/__rosc__EthercatStatusFrame___rosc__ExecStatus.cpp + type_info/__rosc__MotionMode___rosc__ServoState.cpp + type_info/__rosc__TransferSpeedType___std__vector____std__string__.cpp + type_info/boost__int16_t[]_boost__int32_t[].cpp + type_info/boost__int8_t[]_boost__uint16_t[].cpp + type_info/boost__uint8_t[]_double[].cpp + ${TYPEKIT_ADDITIONAL_SOURCES} + ${TOOLKIT_ADDITIONAL_SOURCES}) + + +target_link_libraries(${libname} ${OrocosRTT_LIBRARIES} ${TYPEKIT_ADDITIONAL_LIBRARIES} ${TOOLKIT_ADDITIONAL_LIBRARIES}) +set_target_properties(${libname} PROPERTIES LINK_INTERFACE_LIBRARIES ${OrocosRTT_LIBRARIES}) +set_target_properties(${libname} PROPERTIES INTERFACE_LINK_LIBRARIES ${OrocosRTT_LIBRARIES}) +if(WITH_RPATH AND APPLE) + set_target_properties( ${libname} PROPERTIES + INSTALL_NAME_DIR "@rpath") + SET(CMAKE_BUILD_WITH_INSTALL_RPATH ON) +endif() +set(PKG_CONFIG_FILE ${CMAKE_CURRENT_BINARY_DIR}/robot_brain-typekit-${OROCOS_TARGET}.pc) +configure_file(robot_brain-typekit.pc.in ${PKG_CONFIG_FILE} @ONLY) + +install(TARGETS ${libname} LIBRARY DESTINATION lib/orocos${OROCOS_PKG_DIR}/types) +install(FILES Types.hpp Opaques.hpp + DESTINATION include/orocos/robot_brain) +install(FILES + + + DESTINATION include/orocos/robot_brain/typekit) + + +install(FILES types/robot_brain/typekit/Types.hpp + DESTINATION include/orocos/robot_brain/typekit) + +install(FILES types/robot_brain/typekit/BoostSerialization.hpp + DESTINATION include/orocos/robot_brain/typekit) + +install(FILES types/robot_brain/typekit/Plugin.hpp + DESTINATION include/orocos/robot_brain/typekit) + +install(FILES ../include/robot_brain/ethercat_frame_types.hpp + DESTINATION include/orocos/robot_brain) + +install(FILES ../include/robot_brain/command_types.hpp + DESTINATION include/orocos/robot_brain) +install(FILES ${PKG_CONFIG_FILE} + DESTINATION lib/pkgconfig) +install(FILES robot_brain.tlb + robot_brain.typelist + DESTINATION share/orogen) + + + add_subdirectory(transports/typelib) + + +# Force the user to regenerate its typekit if the inputs changed +set(TK_STAMP "${CMAKE_CURRENT_SOURCE_DIR}/stamp") +get_directory_property(include_path INCLUDE_DIRECTORIES) +foreach(dep robot_brain/command_types.hpp robot_brain/ethercat_frame_types.hpp) + find_file(dep_full_path ${dep} PATHS ${include_path}) + if (NOT dep_full_path) + message(FATAL_ERROR "cannot find ${dep} in ${include_path}. This should never happen, report this as an oroGen bug") + endif() + list(APPEND TYPEKIT_SOURCE_HEADERS ${dep_full_path}) + unset(dep_full_path CACHE) +endforeach() +add_custom_command( + OUTPUT "${TK_STAMP}" + DEPENDS ${TYPEKIT_SOURCE_HEADERS} + COMMENT "Typekit input changed. Run make regen in your build directory first" + COMMAND /bin/false) +add_custom_target(check-typekit-uptodate ALL DEPENDS "${TK_STAMP}") +add_dependencies(${libname} check-typekit-uptodate) + diff --git a/typekit/Opaques.hpp b/typekit/Opaques.hpp new file mode 100644 index 0000000000000000000000000000000000000000..462bae17436b8f8df6ff512e84d3c2d17ebdf7ce --- /dev/null +++ b/typekit/Opaques.hpp @@ -0,0 +1,6 @@ +#warning including robot_brain/Opaques.hpp is deprecated \ + If in typekit/Opaques.cpp, you should include robot_brain/typekit/OpaqueTypes.hpp and robot_brain/typekit/Opaques.hpp. \ + In doubt, see templates/typekit/Opaques.cpp. +#include +#include + diff --git a/typekit/Plugin.cpp b/typekit/Plugin.cpp new file mode 100644 index 0000000000000000000000000000000000000000..2d54ef111ccb4c8391179f2f55a374ba7eab5ee2 --- /dev/null +++ b/typekit/Plugin.cpp @@ -0,0 +1,154 @@ +/* Generated from orogen/lib/orogen/templates/typekit/Plugin.cpp */ + +// First load all RTT interfaces so that we get all "extern template" +// declarations in the TypekitImpl files +#include + +#include + +#include +#include "type_info/Registration.hpp" + +using namespace RTT; + +orogen_typekits::robot_brainTypekitPlugin::robot_brainTypekitPlugin() +{} + +orogen_typekits::robot_brainTypekitPlugin::~robot_brainTypekitPlugin() +{} + + +#define TYPEKIT_PACKAGE_NAME_aux0(target) #target +#define TYPEKIT_PACKAGE_NAME_aux(target) "robot_brain-typekit-" TYPEKIT_PACKAGE_NAME_aux0(target) +#define TYPEKIT_PACKAGE_NAME TYPEKIT_PACKAGE_NAME_aux(OROCOS_TARGET) +bool orogen_typekits::robot_brainTypekitPlugin::loadTypes() +{ + RTT::types::TypeInfoRepository::shared_ptr ti_repository = RTT::types::TypeInfoRepository::Instance(); + + + RTT::types::TypeInfoGenerator* ti = 0; + + + ti = double_ArrayTypeInfo(); + ti_repository->addType( ti ); + + + + ti = double_ArrayTypeInfo(); + ti_repository->addType( ti ); + + + + ti = int16_t_ArrayTypeInfo(); + ti_repository->addType( ti ); + + + + ti = int32_t_ArrayTypeInfo(); + ti_repository->addType( ti ); + + + + ti = int8_t_ArrayTypeInfo(); + ti_repository->addType( ti ); + + + + ti = int8_t_ArrayTypeInfo(); + ti_repository->addType( ti ); + + + + ti = rosc_Arm_pos_TypeInfo(); + ti_repository->addType( ti ); + + + + ti = rosc_AxisNum_TypeInfo(); + ti_repository->addType( ti ); + + + + ti = rosc_CommandExecResult_TypeInfo(); + ti_repository->addType( ti ); + + + + ti = rosc_CommandType_TypeInfo(); + ti_repository->addType( ti ); + + + + ti = rosc_DigitIOFrame_TypeInfo(); + ti_repository->addType( ti ); + + + + ti = rosc_EncoderFrame_TypeInfo(); + ti_repository->addType( ti ); + + + + ti = rosc_EthercatCtlFrame_TypeInfo(); + ti_repository->addType( ti ); + + + + ti = rosc_EthercatFrameSendStatus_TypeInfo(); + ti_repository->addType( ti ); + + + + ti = rosc_EthercatStatusFrame_TypeInfo(); + ti_repository->addType( ti ); + + + + ti = rosc_ExecStatus_TypeInfo(); + ti_repository->addType( ti ); + + + + ti = rosc_MotionMode_TypeInfo(); + ti_repository->addType( ti ); + + + + ti = rosc_ServoState_TypeInfo(); + ti_repository->addType( ti ); + + + + ti = rosc_TransferSpeedType_TypeInfo(); + ti_repository->addType( ti ); + + + + ti = std_vector_LT__std_string_GT__TypeInfo(); + ti_repository->addType( ti ); + + + + ti = uint16_t_ArrayTypeInfo(); + ti_repository->addType( ti ); + + + + ti = uint8_t_ArrayTypeInfo(); + ti_repository->addType( ti ); + + + + + return true; +} + +bool orogen_typekits::robot_brainTypekitPlugin::loadOperators() +{ return true; } +bool orogen_typekits::robot_brainTypekitPlugin::loadConstructors() +{ return true; } +std::string orogen_typekits::robot_brainTypekitPlugin::getName() +{ return "robot_brain"; } + +ORO_TYPEKIT_PLUGIN(orogen_typekits::robot_brainTypekitPlugin); + diff --git a/typekit/Types.hpp b/typekit/Types.hpp new file mode 100644 index 0000000000000000000000000000000000000000..823ee0e5138e989fff0062b823d773c52b229566 --- /dev/null +++ b/typekit/Types.hpp @@ -0,0 +1,17 @@ +/* Generated from orogen/lib/orogen/templates/typekit/TypesDeprecated.hpp */ + +#ifndef __OROGEN_GENERATED_ROBOT_BRAIN_TYPES_DEPRECATED_HPP +#define __OROGEN_GENERATED_ROBOT_BRAIN_TYPES_DEPRECATED_HPP + +#warning including robot_brain/Types.hpp directly is deprecated \ + You should include the headers that define your types directly. \ + typekit/Opaques.hpp should include robot_brain/typekit/OpaqueFwd.hpp and \ + typekit/Opaques.cpp should include robot_brain/typekit/OpaqueTypes.hpp. \ + (in doubt, see the files in templates/typekit for both of these) \ + Finally, if you are reall really sure, you can still include \ + robot_brain/typekit/Types.hpp \ + Be warned that this last option may disappear at any moment +#include + +#endif + diff --git a/typekit/config/Deployment.cmake b/typekit/config/Deployment.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ce969aed12f2a53fc907029d90e9792ddc73d358 --- /dev/null +++ b/typekit/config/Deployment.cmake @@ -0,0 +1,71 @@ +# Task files could be using headers in tasks/ so add the relevant directory in +# our include path +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/<%= Generation::AUTOMATIC_AREA_NAME %>/<%= project.name %>) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/<%= Generation::AUTOMATIC_AREA_NAME %>) + +<% dependencies = deployer.dependencies %> +<%= Generation.cmake_pkgconfig_require(dependencies) %> + +# Link directories need to be set before(!) providing the target +orogen_pkg_check_modules(service_discovery service_discovery) +if(service_discovery_FOUND) + add_definitions(-DOROGEN_SERVICE_DISCOVERY_ACTIVATED) + message(STATUS "ServiceDiscovery library found: activating service discovery functionality for tasks") + include_directories(${service_discovery_INCLUDE_DIRS}) + add_definitions(${service_discovery_CFLAGS_OTHER}) + link_directories(${service_discovery_LIBRARY_DIRS}) +endif() + +find_package(Boost REQUIRED COMPONENTS system program_options) +include_directories(${Boost_INCLUDE_DIRS}) +link_directories(${Boost_LIBRARY_DIRS}) + +add_definitions(-DRTT_COMPONENT) +add_executable(<%= deployer.name %> ${CMAKE_CURRENT_SOURCE_DIR}/<%= Generation::AUTOMATIC_AREA_NAME %>/main-<%= deployer.name %>.cpp) +<% if project.typekit %> +target_link_libraries(<%= deployer.name %> <%= project.name %>-typekit-${OROCOS_TARGET}) +<% deployer.transports.each do |transport_name| %> +target_link_libraries(<%= deployer.name %> <%= project.name %>-transport-<%= transport_name %>-${OROCOS_TARGET}) +<% end %> +<% end %> + +if(service_discovery_FOUND) + target_link_libraries(<%= deployer.name %> ${service_discovery_LIBRARIES}) +endif() + +target_link_libraries(<%= deployer.name %> ${Boost_PROGRAM_OPTIONS_LIBRARIES} ${Boost_SYSTEM_LIBRARIES}) + +<% deployer.each_needed_global_cpp_initializer do |init| %> +<%= ERB.new(init.deployment_cmake).result(binding) %> +<% end %> + +list(APPEND CMAKE_PREFIX_PATH ${OrocosRTT_PREFIX}) +find_package(RTTPlugin COMPONENTS rtt-typekit <%= deployer.rtt_transports.map { |transport_name| "rtt-transport-#{transport_name}" }.join(" ") %>) +target_link_libraries(<%= deployer.name %> ${RTT_PLUGIN_rtt-typekit_LIBRARY}) +<% deployer.rtt_transports.each do |transport_name| %> +target_link_libraries(<%= deployer.name %> ${RTT_PLUGIN_rtt-transport-<%= transport_name %>_LIBRARY}) +<% end %> +<% if !project.self_tasks.empty? %> +target_link_libraries(<%= deployer.name %> <%= project.name %>-tasks-${OROCOS_TARGET}) +<% end %> +<%= Generation.cmake_pkgconfig_link_noncorba(deployer.name, dependencies) %> + +<%= if deployer.corba_enabled? +Generation.cmake_pkgconfig_link_corba(deployer.name, dependencies) +end %> + +<% if deployer.install? %> +install(TARGETS <%= deployer.name %> + RUNTIME DESTINATION bin) +<% end %> + +add_dependencies(<%= deployer.name %> + check-uptodate) + +configure_file(<%= Generation::AUTOMATIC_AREA_NAME %>/<%= deployer.name %>.pc.in + orogen-<%= deployer.name %>.pc @ONLY) +<% if deployer.install? %> +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/orogen-<%= deployer.name %>.pc + DESTINATION lib/pkgconfig) +<% end %> + diff --git a/typekit/config/FindBoost.cmake b/typekit/config/FindBoost.cmake new file mode 100644 index 0000000000000000000000000000000000000000..67637bf46a4a82a9820a29fe3be5caf8881d9580 --- /dev/null +++ b/typekit/config/FindBoost.cmake @@ -0,0 +1,1065 @@ +# - Try to find Boost include dirs and libraries +# Usage of this module as follows: +# +# NOTE: Take note of the Boost_ADDITIONAL_VERSIONS variable below. +# Due to Boost naming conventions and limitations in CMake this find +# module is NOT future safe with respect to Boost version numbers, +# and may break. +# +# == Using Header-Only libraries from within Boost: == +# +# find_package( Boost 1.36.0 ) +# if(Boost_FOUND) +# include_directories(${Boost_INCLUDE_DIRS}) +# add_executable(foo foo.cc) +# endif() +# +# +# == Using actual libraries from within Boost: == +# +# set(Boost_USE_STATIC_LIBS ON) +# set(Boost_USE_MULTITHREADED ON) +# find_package( Boost 1.36.0 COMPONENTS date_time filesystem system ... ) +# +# if(Boost_FOUND) +# include_directories(${Boost_INCLUDE_DIRS}) +# add_executable(foo foo.cc) +# target_link_libraries(foo ${Boost_LIBRARIES}) +# endif() +# +# +# The components list needs to contain actual names of boost libraries only, +# such as "date_time" for "libboost_date_time". If you're using parts of +# Boost that contain header files only (e.g. foreach) you do not need to +# specify COMPONENTS. +# +# You should provide a minimum version number that should be used. If you provide this +# version number and specify the REQUIRED attribute, this module will fail if it +# can't find the specified or a later version. If you specify a version number this is +# automatically put into the considered list of version numbers and thus doesn't need +# to be specified in the Boost_ADDITIONAL_VERSIONS variable (see below). +# +# NOTE for Visual Studio Users: +# Automatic linking is used on MSVC & Borland compilers by default when +# #including things in Boost. It's important to note that setting +# Boost_USE_STATIC_LIBS to OFF is NOT enough to get you dynamic linking, +# should you need this feature. Automatic linking typically uses static +# libraries with a few exceptions (Boost.Python is one). +# +# Please see the section below near Boost_LIB_DIAGNOSTIC_DEFINITIONS for +# more details. Adding a TARGET_LINK_LIBRARIES() as shown in the example +# above appears to cause VS to link dynamically if Boost_USE_STATIC_LIBS +# gets set to OFF. It is suggested you avoid automatic linking since it +# will make your application less portable. +# +# =========== The mess that is Boost_ADDITIONAL_VERSIONS (sorry?) ============ +# +# OK, so the Boost_ADDITIONAL_VERSIONS variable can be used to specify a list of +# boost version numbers that should be taken into account when searching +# for Boost. Unfortunately boost puts the version number into the +# actual filename for the libraries, so this variable will certainly be needed +# in the future when new Boost versions are released. +# +# Currently this module searches for the following version numbers: +# 1.33, 1.33.0, 1.33.1, 1.34, 1.34.0, 1.34.1, 1.35, 1.35.0, 1.35.1, +# 1.36, 1.36.0, 1.36.1, 1.37, 1.37.0, 1.38, 1.38.0, 1.39, 1.39.0, +# 1.40, 1.40.0, 1.41, 1.41.0 +# +# NOTE: If you add a new major 1.x version in Boost_ADDITIONAL_VERSIONS you should +# add both 1.x and 1.x.0 as shown above. Official Boost include directories +# omit the 3rd version number from include paths if it is 0 although not all +# binary Boost releases do so. +# +# SET(Boost_ADDITIONAL_VERSIONS "1.78" "1.78.0" "1.79" "1.79.0") +# +# ===================================== ============= ======================== +# +# Variables used by this module, they can change the default behaviour and +# need to be set before calling find_package: +# +# Boost_USE_MULTITHREADED Can be set to OFF to use the non-multithreaded +# boost libraries. If not specified, defaults +# to ON. +# +# Boost_USE_STATIC_LIBS Can be set to ON to force the use of the static +# boost libraries. Defaults to OFF. +# +# Other Variables used by this module which you may want to set. +# +# Boost_ADDITIONAL_VERSIONS A list of version numbers to use for searching +# the boost include directory. Please see +# the documentation above regarding this +# annoying, but necessary variable :( +# +# Boost_DEBUG Set this to TRUE to enable debugging output +# of FindBoost.cmake if you are having problems. +# Please enable this before filing any bug +# reports. +# +# Boost_DETAILED_FAILURE_MSG FindBoost doesn't output detailed information +# about why it failed or how to fix the problem +# unless this is set to TRUE or the REQUIRED +# keyword is specified in find_package(). +# [Since CMake 2.8.0] +# +# Boost_COMPILER Set this to the compiler suffix used by Boost +# (e.g. "-gcc43") if FindBoost has problems finding +# the proper Boost installation +# +# These last three variables are available also as environment variables: +# +# BOOST_ROOT or BOOSTROOT The preferred installation prefix for searching for +# Boost. Set this if the module has problems finding +# the proper Boost installation. +# +# BOOST_INCLUDEDIR Set this to the include directory of Boost, if the +# module has problems finding the proper Boost installation +# +# BOOST_LIBRARYDIR Set this to the lib directory of Boost, if the +# module has problems finding the proper Boost installation +# +# Variables defined by this module: +# +# Boost_FOUND System has Boost, this means the include dir was +# found, as well as all the libraries specified in +# the COMPONENTS list. +# +# Boost_INCLUDE_DIRS Boost include directories: not cached +# +# Boost_INCLUDE_DIR This is almost the same as above, but this one is +# cached and may be modified by advanced users +# +# Boost_LIBRARIES Link to these to use the Boost libraries that you +# specified: not cached +# +# Boost_LIBRARY_DIRS The path to where the Boost library files are. +# +# Boost_VERSION The version number of the boost libraries that +# have been found, same as in version.hpp from Boost +# +# Boost_LIB_VERSION The version number in filename form as +# it's appended to the library filenames +# +# Boost_MAJOR_VERSION major version number of boost +# Boost_MINOR_VERSION minor version number of boost +# Boost_SUBMINOR_VERSION subminor version number of boost +# +# Boost_LIB_DIAGNOSTIC_DEFINITIONS [WIN32 Only] You can call +# add_definitions(${Boost_LIB_DIAGNOSTIC_DEFINITIONS}) +# to have diagnostic information about Boost's +# automatic linking outputted during compilation time. +# +# For each component you specify in find_package(), the following (UPPER-CASE) +# variables are set. You can use these variables if you would like to pick and +# choose components for your targets instead of just using Boost_LIBRARIES. +# +# Boost_${COMPONENT}_FOUND True IF the Boost library "component" was found. +# +# Boost_${COMPONENT}_LIBRARY Contains the libraries for the specified Boost +# "component" (includes debug and optimized keywords +# when needed). + +#============================================================================= +# Copyright 2006-2009 Kitware, Inc. +# Copyright 2006-2008 Andreas Schneider +# Copyright 2007 Wengo +# Copyright 2007 Mike Jackson +# Copyright 2008 Andreas Pakulat +# Copyright 2008-2009 Philip Lowman +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distributed this file outside of CMake, substitute the full +# License text for the above reference.) + +#------------------------------------------------------------------------------- +# FindBoost functions & macros +# +############################################ +# +# Check the existence of the libraries. +# +############################################ +# This macro was taken directly from the FindQt4.cmake file that is included +# with the CMake distribution. This is NOT my work. All work was done by the +# original authors of the FindQt4.cmake file. Only minor modifications were +# made to remove references to Qt and make this file more generally applicable +# And ELSE/ENDIF pairs were removed for readability. +######################################################################### + +####################################################################### +# For downward compatibility with CMake 2.6.0 the VERSION_LESS +# functionality is being replaced with the help of following MACRO +# +# Input: a_in - value, not variable +# b_in - value, not variable +# result_out - variable with value: +# -1 : a_in < b_in +# 0 : a_in == b_in +# 1 : a_in > b_in +# +# Written by James Bigler. +MACRO(COMPARE_VERSION_STRINGS a_in b_in result_out) + # Since SEPARATE_ARGUMENTS using ' ' as the separation token, + # replace '.' with ' ' to allow easy tokenization of the string. + STRING(REPLACE "." " " a ${a_in}) + STRING(REPLACE "." " " b ${b_in}) + SEPARATE_ARGUMENTS(a) + SEPARATE_ARGUMENTS(b) + + # Check the size of each list to see if they are equal. + LIST(LENGTH a a_length) + LIST(LENGTH b b_length) + + # Pad the shorter list with zeros. + + # Note that range needs to be one less than the length as the for + # loop is inclusive (silly CMake). + IF(a_length LESS b_length) + # a is shorter + SET(shorter a) + MATH(EXPR range "${b_length} - 1") + MATH(EXPR pad_range "${b_length} - ${a_length} - 1") + ELSE(a_length LESS b_length) + # b is shorter + SET(shorter b) + MATH(EXPR range "${a_length} - 1") + MATH(EXPR pad_range "${a_length} - ${b_length} - 1") + ENDIF(a_length LESS b_length) + + # PAD out if we need to + IF(NOT pad_range LESS 0) + FOREACH(pad RANGE ${pad_range}) + # Since shorter is an alias for b, we need to get to it by by dereferencing shorter. + LIST(APPEND ${shorter} 0) + ENDFOREACH(pad RANGE ${pad_range}) + ENDIF(NOT pad_range LESS 0) + + SET(result 0) + FOREACH(index RANGE ${range}) + IF(result EQUAL 0) + # Only continue to compare things as long as they are equal + LIST(GET a ${index} a_version) + LIST(GET b ${index} b_version) + # LESS + IF(a_version LESS b_version) + SET(result -1) + ENDIF(a_version LESS b_version) + # GREATER + IF(a_version GREATER b_version) + SET(result 1) + ENDIF(a_version GREATER b_version) + ENDIF(result EQUAL 0) + ENDFOREACH(index) + + # Copy out the return result + SET(${result_out} ${result}) +ENDMACRO(COMPARE_VERSION_STRINGS) + +MACRO(COMPARE_VERSION a OP b) + set(COMPARE_VERSION_EVAL false) + COMPARE_VERSION_STRINGS(${a} ${b} result) + if( "${OP}" STREQUAL "VERSION_LESS") + if(result LESS 0) + set(COMPARE_VERSION_EVAL true) + endif() + elseif( "${OP}" STREQUAL "VERSION_GREATER") + if(result GREATER 0) + set(COMPARE_VERSION_EVAL true) + endif() + elseif( "${OP}" STREQUAL "VERSION_EQUAL") + set(COMPARE_VERSION_EVAL true) + endif() +ENDMACRO(COMPARE_VERSION) +###################################################################### + +###################################################################### +MACRO (_Boost_ADJUST_LIB_VARS basename) + IF (Boost_INCLUDE_DIR ) + IF (Boost_${basename}_LIBRARY_DEBUG AND Boost_${basename}_LIBRARY_RELEASE) + # if the generator supports configuration types then set + # optimized and debug libraries, or if the CMAKE_BUILD_TYPE has a value + IF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) + SET(Boost_${basename}_LIBRARY optimized ${Boost_${basename}_LIBRARY_RELEASE} debug ${Boost_${basename}_LIBRARY_DEBUG}) + ELSE() + # if there are no configuration types and CMAKE_BUILD_TYPE has no value + # then just use the release libraries + SET(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY_RELEASE} ) + ENDIF() + # FIXME: This probably should be set for both cases + SET(Boost_${basename}_LIBRARIES optimized ${Boost_${basename}_LIBRARY_RELEASE} debug ${Boost_${basename}_LIBRARY_DEBUG}) + ENDIF() + + # if only the release version was found, set the debug variable also to the release version + IF (Boost_${basename}_LIBRARY_RELEASE AND NOT Boost_${basename}_LIBRARY_DEBUG) + SET(Boost_${basename}_LIBRARY_DEBUG ${Boost_${basename}_LIBRARY_RELEASE}) + SET(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY_RELEASE}) + SET(Boost_${basename}_LIBRARIES ${Boost_${basename}_LIBRARY_RELEASE}) + ENDIF() + + # if only the debug version was found, set the release variable also to the debug version + IF (Boost_${basename}_LIBRARY_DEBUG AND NOT Boost_${basename}_LIBRARY_RELEASE) + SET(Boost_${basename}_LIBRARY_RELEASE ${Boost_${basename}_LIBRARY_DEBUG}) + SET(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY_DEBUG}) + SET(Boost_${basename}_LIBRARIES ${Boost_${basename}_LIBRARY_DEBUG}) + ENDIF() + + IF (Boost_${basename}_LIBRARY) + set(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY} CACHE FILEPATH "The Boost ${basename} library") + + # Remove superfluous "debug" / "optimized" keywords from + # Boost_LIBRARY_DIRS + FOREACH(_boost_my_lib ${Boost_${basename}_LIBRARY}) + GET_FILENAME_COMPONENT(_boost_my_lib_path "${_boost_my_lib}" PATH) + LIST(APPEND Boost_LIBRARY_DIRS ${_boost_my_lib_path}) + ENDFOREACH() + LIST(REMOVE_DUPLICATES Boost_LIBRARY_DIRS) + + set(Boost_LIBRARY_DIRS ${Boost_LIBRARY_DIRS} CACHE FILEPATH "Boost library directory") + SET(Boost_${basename}_FOUND ON CACHE INTERNAL "Whether the Boost ${basename} library found") + ENDIF(Boost_${basename}_LIBRARY) + + ENDIF (Boost_INCLUDE_DIR ) + # Make variables changeble to the advanced user + MARK_AS_ADVANCED( + Boost_${basename}_LIBRARY + Boost_${basename}_LIBRARY_RELEASE + Boost_${basename}_LIBRARY_DEBUG + ) +ENDMACRO (_Boost_ADJUST_LIB_VARS) + +#------------------------------------------------------------------------------- + +# +# Runs compiler with "-dumpversion" and parses major/minor +# version with a regex. +# +FUNCTION(_Boost_COMPILER_DUMPVERSION _OUTPUT_VERSION) + + EXEC_PROGRAM(${CMAKE_CXX_COMPILER} + ARGS ${CMAKE_CXX_COMPILER_ARG1} -dumpversion + OUTPUT_VARIABLE _boost_COMPILER_VERSION + ) + STRING(REGEX REPLACE "([0-9])\\.([0-9])(\\.[0-9])?" "\\1\\2" + _boost_COMPILER_VERSION ${_boost_COMPILER_VERSION}) + + SET(${_OUTPUT_VERSION} ${_boost_COMPILER_VERSION} PARENT_SCOPE) +ENDFUNCTION() + +# +# A convenience function for marking desired components +# as found or not +# +function(_Boost_MARK_COMPONENTS_FOUND _yes_or_no) + foreach(COMPONENT ${Boost_FIND_COMPONENTS}) + string(TOUPPER ${COMPONENT} UPPERCOMPONENT) + set(Boost_${UPPERCOMPONENT}_FOUND ${_yes_or_no} CACHE INTERNAL "Whether the Boost ${COMPONENT} library found" FORCE) + endforeach() +endfunction() + +# +# End functions/macros +# +#------------------------------------------------------------------------------- + + + + +IF(NOT DEFINED Boost_USE_MULTITHREADED) + SET(Boost_USE_MULTITHREADED TRUE) +ENDIF() + +if(Boost_FIND_VERSION_EXACT) + # The version may appear in a directory with or without the patch + # level, even when the patch level is non-zero. + set(_boost_TEST_VERSIONS + "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}.${Boost_FIND_VERSION_PATCH}" + "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}") +else(Boost_FIND_VERSION_EXACT) + # The user has not requested an exact version. Among known + # versions, find those that are acceptable to the user request. + set(_Boost_KNOWN_VERSIONS ${Boost_ADDITIONAL_VERSIONS} + "1.41.0" "1.41" "1.40.0" "1.40" "1.39.0" "1.39" "1.38.0" "1.38" "1.37.0" "1.37" + "1.36.1" "1.36.0" "1.36" "1.35.1" "1.35.0" "1.35" "1.34.1" "1.34.0" + "1.34" "1.33.1" "1.33.0" "1.33") + set(_boost_TEST_VERSIONS) + if(Boost_FIND_VERSION) + set(_Boost_FIND_VERSION_SHORT "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}") + # Select acceptable versions. + foreach(version ${_Boost_KNOWN_VERSIONS}) + COMPARE_VERSION("${version}" VERSION_GREATER "${Boost_FIND_VERSION}") + if(COMPARE_VERSION_EVAL) + # This version is high enough. + list(APPEND _boost_TEST_VERSIONS "${version}") + else() + COMPARE_VERSION("${version}.99" VERSION_EQUAL "${_Boost_FIND_VERSION_SHORT}.99") + if(COMPARE_VERSION_EVAL) + # This version is a short-form for the requested version with + # the patch level dropped. + list(APPEND _boost_TEST_VERSIONS "${version}") + endif() + endif() + endforeach(version) + else(Boost_FIND_VERSION) + # Any version is acceptable. + set(_boost_TEST_VERSIONS "${_Boost_KNOWN_VERSIONS}") + endif(Boost_FIND_VERSION) +endif(Boost_FIND_VERSION_EXACT) + +# The reason that we failed to find Boost. This will be set to a +# user-friendly message when we fail to find some necessary piece of +# Boost. +set(Boost_ERROR_REASON) + +SET( _boost_IN_CACHE TRUE) +IF(Boost_INCLUDE_DIR) + + # On versions < 1.35, remove the System library from the considered list + # since it wasn't added until 1.35. + if(Boost_VERSION AND Boost_FIND_COMPONENTS) + math(EXPR _boost_maj "${Boost_VERSION} / 100000") + math(EXPR _boost_min "${Boost_VERSION} / 100 % 1000") + COMPARE_VERSION(${_boost_maj}.${_boost_min} VERSION_LESS 1.35) + if(COMPARE_VERSION_EVAL) + list(REMOVE_ITEM Boost_FIND_COMPONENTS system) + endif() + endif() + + FOREACH(COMPONENT ${Boost_FIND_COMPONENTS}) + STRING(TOUPPER ${COMPONENT} COMPONENT) + IF(NOT Boost_${COMPONENT}_FOUND) + SET( _boost_IN_CACHE FALSE) + ENDIF(NOT Boost_${COMPONENT}_FOUND) + ENDFOREACH(COMPONENT) +ELSE(Boost_INCLUDE_DIR) + SET( _boost_IN_CACHE FALSE) +ENDIF(Boost_INCLUDE_DIR) + +IF (_boost_IN_CACHE) + # in cache already + SET(Boost_FOUND TRUE) + FOREACH(COMPONENT ${Boost_FIND_COMPONENTS}) + STRING(TOUPPER ${COMPONENT} COMPONENT) + _Boost_ADJUST_LIB_VARS( ${COMPONENT} ) + SET(Boost_LIBRARIES ${Boost_LIBRARIES} ${Boost_${COMPONENT}_LIBRARY}) + ENDFOREACH(COMPONENT) + SET(Boost_INCLUDE_DIRS ${Boost_INCLUDE_DIR}) + IF(Boost_VERSION AND NOT "${Boost_VERSION}" STREQUAL "0") + MATH(EXPR Boost_MAJOR_VERSION "${Boost_VERSION} / 100000") + MATH(EXPR Boost_MINOR_VERSION "${Boost_VERSION} / 100 % 1000") + MATH(EXPR Boost_SUBMINOR_VERSION "${Boost_VERSION} % 100") + ENDIF(Boost_VERSION AND NOT "${Boost_VERSION}" STREQUAL "0") + if(Boost_DEBUG) + message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " + "boost ${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION} " + "is already in the cache. For debugging messages, please clear the cache.") + endif() +ELSE (_boost_IN_CACHE) + # Need to search for boost + if(Boost_DEBUG) + message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " + "Boost not in cache") + # Output some of their choices + message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " + "_boost_TEST_VERSIONS = ${_boost_TEST_VERSIONS}") + message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " + "Boost_USE_MULTITHREADED = ${Boost_USE_MULTITHREADED}") + message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " + "Boost_USE_STATIC_LIBS = ${Boost_USE_STATIC_LIBS}") + endif() + + IF(WIN32) + # In windows, automatic linking is performed, so you do not have + # to specify the libraries. If you are linking to a dynamic + # runtime, then you can choose to link to either a static or a + # dynamic Boost library, the default is to do a static link. You + # can alter this for a specific library "whatever" by defining + # BOOST_WHATEVER_DYN_LINK to force Boost library "whatever" to be + # linked dynamically. Alternatively you can force all Boost + # libraries to dynamic link by defining BOOST_ALL_DYN_LINK. + + # This feature can be disabled for Boost library "whatever" by + # defining BOOST_WHATEVER_NO_LIB, or for all of Boost by defining + # BOOST_ALL_NO_LIB. + + # If you want to observe which libraries are being linked against + # then defining BOOST_LIB_DIAGNOSTIC will cause the auto-linking + # code to emit a #pragma message each time a library is selected + # for linking. + SET(Boost_LIB_DIAGNOSTIC_DEFINITIONS + "-DBOOST_LIB_DIAGNOSTIC" CACHE STRING "Boost diagnostic define") + ENDIF(WIN32) + + SET(_boost_INCLUDE_SEARCH_DIRS + C:/boost/include + C:/boost + "$ENV{ProgramFiles}/boost/include" + "$ENV{ProgramFiles}/boost" + /sw/local/include + ) + + # If BOOST_ROOT was defined in the environment, use it. + if (NOT BOOST_ROOT AND NOT $ENV{BOOST_ROOT} STREQUAL "") + set(BOOST_ROOT $ENV{BOOST_ROOT}) + endif(NOT BOOST_ROOT AND NOT $ENV{BOOST_ROOT} STREQUAL "") + + # If BOOSTROOT was defined in the environment, use it. + if (NOT BOOST_ROOT AND NOT $ENV{BOOSTROOT} STREQUAL "") + set(BOOST_ROOT $ENV{BOOSTROOT}) + endif(NOT BOOST_ROOT AND NOT $ENV{BOOSTROOT} STREQUAL "") + + # If BOOST_INCLUDEDIR was defined in the environment, use it. + IF( NOT $ENV{BOOST_INCLUDEDIR} STREQUAL "" ) + set(BOOST_INCLUDEDIR $ENV{BOOST_INCLUDEDIR}) + ENDIF( NOT $ENV{BOOST_INCLUDEDIR} STREQUAL "" ) + + # If BOOST_LIBRARYDIR was defined in the environment, use it. + IF( NOT $ENV{BOOST_LIBRARYDIR} STREQUAL "" ) + set(BOOST_LIBRARYDIR $ENV{BOOST_LIBRARYDIR}) + ENDIF( NOT $ENV{BOOST_LIBRARYDIR} STREQUAL "" ) + + IF( BOOST_ROOT ) + file(TO_CMAKE_PATH ${BOOST_ROOT} BOOST_ROOT) + ENDIF( BOOST_ROOT ) + + if(Boost_DEBUG) + message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " + "Declared as CMake or Environmental Variables:") + message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " + " BOOST_ROOT = ${BOOST_ROOT}") + message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " + " BOOST_INCLUDEDIR = ${BOOST_INCLUDEDIR}") + message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " + " BOOST_LIBRARYDIR = ${BOOST_LIBRARYDIR}") + message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " + "_boost_TEST_VERSIONS = ${_boost_TEST_VERSIONS}") + endif() + + IF( BOOST_ROOT ) + SET(_boost_INCLUDE_SEARCH_DIRS + ${BOOST_ROOT}/include + ${BOOST_ROOT} + ${_boost_INCLUDE_SEARCH_DIRS}) + ENDIF( BOOST_ROOT ) + + IF( BOOST_INCLUDEDIR ) + file(TO_CMAKE_PATH ${BOOST_INCLUDEDIR} BOOST_INCLUDEDIR) + SET(_boost_INCLUDE_SEARCH_DIRS + ${BOOST_INCLUDEDIR} ${_boost_INCLUDE_SEARCH_DIRS}) + ENDIF( BOOST_INCLUDEDIR ) + + # ------------------------------------------------------------------------ + # Search for Boost include DIR + # ------------------------------------------------------------------------ + # Try to find Boost by stepping backwards through the Boost versions + # we know about. + IF( NOT Boost_INCLUDE_DIR ) + # Build a list of path suffixes for each version. + SET(_boost_PATH_SUFFIXES) + FOREACH(_boost_VER ${_boost_TEST_VERSIONS}) + # Add in a path suffix, based on the required version, ideally + # we could read this from version.hpp, but for that to work we'd + # need to know the include dir already + set(_boost_BOOSTIFIED_VERSION) + + # Transform 1.35 => 1_35 and 1.36.0 => 1_36_0 + IF(_boost_VER MATCHES "[0-9]+\\.[0-9]+\\.[0-9]+") + STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1_\\2_\\3" + _boost_BOOSTIFIED_VERSION ${_boost_VER}) + ELSEIF(_boost_VER MATCHES "[0-9]+\\.[0-9]+") + STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)" "\\1_\\2" + _boost_BOOSTIFIED_VERSION ${_boost_VER}) + ENDIF() + + list(APPEND _boost_PATH_SUFFIXES "boost-${_boost_BOOSTIFIED_VERSION}") + if(WIN32) + # For BoostPro's underscores (and others?) + list(APPEND _boost_PATH_SUFFIXES "boost_${_boost_BOOSTIFIED_VERSION}") + endif() + + ENDFOREACH(_boost_VER) + + if(Boost_DEBUG) + message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " + "Include debugging info:") + message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " + " _boost_INCLUDE_SEARCH_DIRS = ${_boost_INCLUDE_SEARCH_DIRS}") + message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " + " _boost_PATH_SUFFIXES = ${_boost_PATH_SUFFIXES}") + endif() + + # First check the default ones + FIND_PATH(Boost_INCLUDE_DIR + NAMES boost/config.hpp + PATHS ${_boost_INCLUDE_SEARCH_DIRS} + NO_DEFAULT_PATH + ) + + # Look for a standard boost header file. + if(NOT Boost_INCLUDE_DIR) + FIND_PATH(Boost_INCLUDE_DIR + NAMES boost/config.hpp + HINTS ${_boost_INCLUDE_SEARCH_DIRS} + PATH_SUFFIXES ${_boost_PATH_SUFFIXES} + ) + endif() + ENDIF( NOT Boost_INCLUDE_DIR ) + + # ------------------------------------------------------------------------ + # Extract version information from version.hpp + # ------------------------------------------------------------------------ + IF(Boost_INCLUDE_DIR) + # Extract Boost_VERSION and Boost_LIB_VERSION from version.hpp + # Read the whole file: + # + SET(BOOST_VERSION 0) + SET(BOOST_LIB_VERSION "") + FILE(READ "${Boost_INCLUDE_DIR}/boost/version.hpp" _boost_VERSION_HPP_CONTENTS) + if(Boost_DEBUG) + message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " + "location of version.hpp: ${Boost_INCLUDE_DIR}/boost/version.hpp") + endif() + + STRING(REGEX REPLACE ".*#define BOOST_VERSION ([0-9]+).*" "\\1" Boost_VERSION "${_boost_VERSION_HPP_CONTENTS}") + STRING(REGEX REPLACE ".*#define BOOST_LIB_VERSION \"([0-9_]+)\".*" "\\1" Boost_LIB_VERSION "${_boost_VERSION_HPP_CONTENTS}") + + SET(Boost_LIB_VERSION ${Boost_LIB_VERSION} CACHE INTERNAL "The library version string for boost libraries") + SET(Boost_VERSION ${Boost_VERSION} CACHE INTERNAL "The version number for boost libraries") + + IF(NOT "${Boost_VERSION}" STREQUAL "0") + MATH(EXPR Boost_MAJOR_VERSION "${Boost_VERSION} / 100000") + MATH(EXPR Boost_MINOR_VERSION "${Boost_VERSION} / 100 % 1000") + MATH(EXPR Boost_SUBMINOR_VERSION "${Boost_VERSION} % 100") + + set(Boost_ERROR_REASON + "${Boost_ERROR_REASON}Boost version: ${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}\nBoost include path: ${Boost_INCLUDE_DIR}") + ENDIF(NOT "${Boost_VERSION}" STREQUAL "0") + if(Boost_DEBUG) + message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " + "version.hpp reveals boost " + "${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}") + endif() + ELSE(Boost_INCLUDE_DIR) + set(Boost_ERROR_REASON + "${Boost_ERROR_REASON}Unable to find the Boost header files. Please set BOOST_ROOT to the root directory containing Boost or BOOST_INCLUDEDIR to the directory containing Boost's headers.") + ENDIF(Boost_INCLUDE_DIR) + + # ------------------------------------------------------------------------ + # Suffix initialization and compiler suffix detection. + # ------------------------------------------------------------------------ + + # Setting some more suffixes for the library + SET (Boost_LIB_PREFIX "") + if ( WIN32 AND Boost_USE_STATIC_LIBS ) + SET (Boost_LIB_PREFIX "lib") + endif() + + if (Boost_COMPILER) + set(_boost_COMPILER ${Boost_COMPILER}) + if(Boost_DEBUG) + message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " + "using user-specified Boost_COMPILER = ${_boost_COMPILER}") + endif() + else(Boost_COMPILER) + # Attempt to guess the compiler suffix + # NOTE: this is not perfect yet, if you experience any issues + # please report them and use the Boost_COMPILER variable + # to work around the problems. + if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel" + OR "${CMAKE_CXX_COMPILER}" MATCHES "icl" + OR "${CMAKE_CXX_COMPILER}" MATCHES "icpc") + if(WIN32) + set (_boost_COMPILER "-iw") + else() + set (_boost_COMPILER "-il") + endif() + elseif (MSVC90) + SET (_boost_COMPILER "-vc90") + elseif (MSVC10) + SET (_boost_COMPILER "-vc100") + elseif (MSVC80) + SET (_boost_COMPILER "-vc80") + elseif (MSVC71) + SET (_boost_COMPILER "-vc71") + elseif (MSVC70) # Good luck! + SET (_boost_COMPILER "-vc7") # yes, this is correct + elseif (MSVC60) # Good luck! + SET (_boost_COMPILER "-vc6") # yes, this is correct + elseif (BORLAND) + SET (_boost_COMPILER "-bcb") + elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "SunPro") + set(_boost_COMPILER "-sw") + elseif (MINGW) + COMPARE_VERSION(${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION} VERSION_LESS 1.34) + if(COMPARE_VERSION_EVAL) + SET(_boost_COMPILER "-mgw") # no GCC version encoding prior to 1.34 + else() + _Boost_COMPILER_DUMPVERSION(_boost_COMPILER_VERSION) + SET (_boost_COMPILER "-mgw${_boost_COMPILER_VERSION}") + endif() + elseif (UNIX) + if (CMAKE_COMPILER_IS_GNUCXX) + COMPARE_VERSION(${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION} VERSION_LESS 1.34) + if(COMPARE_VERSION_EVAL) + SET(_boost_COMPILER "-gcc") # no GCC version encoding prior to 1.34 + else() + _Boost_COMPILER_DUMPVERSION(_boost_COMPILER_VERSION) + # Determine which version of GCC we have. + IF(APPLE) + IF(Boost_MINOR_VERSION) + IF(${Boost_MINOR_VERSION} GREATER 35) + # In Boost 1.36.0 and newer, the mangled compiler name used + # on Mac OS X/Darwin is "xgcc". + SET(_boost_COMPILER "-xgcc${_boost_COMPILER_VERSION}") + ELSE(${Boost_MINOR_VERSION} GREATER 35) + # In Boost <= 1.35.0, there is no mangled compiler name for + # the Mac OS X/Darwin version of GCC. + SET(_boost_COMPILER "") + ENDIF(${Boost_MINOR_VERSION} GREATER 35) + ELSE(Boost_MINOR_VERSION) + # We don't know the Boost version, so assume it's + # pre-1.36.0. + SET(_boost_COMPILER "") + ENDIF(Boost_MINOR_VERSION) + ELSE() + SET (_boost_COMPILER "-gcc${_boost_COMPILER_VERSION}") + ENDIF() + endif() + endif (CMAKE_COMPILER_IS_GNUCXX) + endif() + if(Boost_DEBUG) + message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " + "guessed _boost_COMPILER = ${_boost_COMPILER}") + endif() + endif(Boost_COMPILER) + + SET (_boost_MULTITHREADED "-mt") + if( NOT Boost_USE_MULTITHREADED ) + set (_boost_MULTITHREADED "") + endif() + if(Boost_DEBUG) + message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " + "_boost_MULTITHREADED = ${_boost_MULTITHREADED}") + endif() + + SET( _boost_STATIC_TAG "") + set( _boost_ABI_TAG "") + IF (WIN32) + IF(MSVC OR "${CMAKE_CXX_COMPILER}" MATCHES "icl" + OR "${CMAKE_CXX_COMPILER}" MATCHES "icpc") + SET (_boost_ABI_TAG "g") + ENDIF() + IF( Boost_USE_STATIC_LIBS ) + SET( _boost_STATIC_TAG "-s") + ENDIF( Boost_USE_STATIC_LIBS ) + ENDIF(WIN32) + SET (_boost_ABI_TAG "${_boost_ABI_TAG}d") + if(Boost_DEBUG) + message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " + "_boost_STATIC_TAG = ${_boost_STATIC_TAG}") + message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " + "_boost_ABI_TAG = ${_boost_ABI_TAG}") + endif() + + # ------------------------------------------------------------------------ + # Begin finding boost libraries + # ------------------------------------------------------------------------ + + SET(_boost_LIBRARIES_SEARCH_DIRS + ${Boost_INCLUDE_DIR}/lib + ${Boost_INCLUDE_DIR}/../lib + C:/boost/lib + C:/boost + "$ENV{ProgramFiles}/boost/boost_${Boost_MAJOR_VERSION}_${Boost_MINOR_VERSION}_${Boost_SUBMINOR_VERSION}/lib" + "$ENV{ProgramFiles}/boost/boost_${Boost_MAJOR_VERSION}_${Boost_MINOR_VERSION}/lib" + "$ENV{ProgramFiles}/boost/lib" + "$ENV{ProgramFiles}/boost" + /sw/local/lib + ) + IF( BOOST_ROOT ) + SET(_boost_LIBRARIES_SEARCH_DIRS + ${BOOST_ROOT}/lib + ${BOOST_ROOT}/stage/lib + ${_boost_LIBRARIES_SEARCH_DIRS}) + ENDIF( BOOST_ROOT ) + + IF( BOOST_LIBRARYDIR ) + file(TO_CMAKE_PATH ${BOOST_LIBRARYDIR} BOOST_LIBRARYDIR) + SET(_boost_LIBRARIES_SEARCH_DIRS + ${BOOST_LIBRARYDIR} ${_boost_LIBRARIES_SEARCH_DIRS}) + ENDIF( BOOST_LIBRARYDIR ) + + if(Boost_DEBUG) + message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " + "_boost_LIBRARIES_SEARCH_DIRS = ${_boost_LIBRARIES_SEARCH_DIRS}") + endif() + + FOREACH(COMPONENT ${Boost_FIND_COMPONENTS}) + STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT) + SET( Boost_${UPPERCOMPONENT}_LIBRARY "Boost_${UPPERCOMPONENT}_LIBRARY-NOTFOUND" ) + SET( Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE "Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE-NOTFOUND" ) + SET( Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG "Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG-NOTFOUND") + + # Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES + IF( Boost_USE_STATIC_LIBS ) + SET( _boost_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES}) + IF(WIN32) + SET(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES}) + ELSE(WIN32) + SET(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES}) + ENDIF(WIN32) + ENDIF( Boost_USE_STATIC_LIBS ) + + # Search first in the user specified locations + FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE + NAMES ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_STATIC_TAG}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG} + ${Boost_LIB_PREFIX}boost_${COMPONENT} + PATHS ${_boost_LIBRARIES_SEARCH_DIRS} + NO_DEFAULT_PATH + ) + FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG + NAMES ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${_boost_ABI_TAG}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}-${_boost_ABI_TAG}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}-${_boost_ABI_TAG} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG} + ${Boost_LIB_PREFIX}boost_${COMPONENT}-${_boost_ABI_TAG} + PATHS ${_boost_LIBRARIES_SEARCH_DIRS} + NO_DEFAULT_PATH + ) + + # Consider system default pathes once custom search failed + if(NOT Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE) + FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE + NAMES ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_STATIC_TAG}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG} + ${Boost_LIB_PREFIX}boost_${COMPONENT} + HINTS ${_boost_LIBRARIES_SEARCH_DIRS} + ) + endif(NOT Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE) + + if(NOT Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG) + FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG + NAMES ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${_boost_ABI_TAG}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}-${_boost_ABI_TAG}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}-${_boost_ABI_TAG} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG} + ${Boost_LIB_PREFIX}boost_${COMPONENT}-${_boost_ABI_TAG} + HINTS ${_boost_LIBRARIES_SEARCH_DIRS} + ) + endif(NOT Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG) + + _Boost_ADJUST_LIB_VARS(${UPPERCOMPONENT}) + IF( Boost_USE_STATIC_LIBS ) + SET(CMAKE_FIND_LIBRARY_SUFFIXES ${_boost_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES}) + ENDIF( Boost_USE_STATIC_LIBS ) + ENDFOREACH(COMPONENT) + # ------------------------------------------------------------------------ + # End finding boost libraries + # ------------------------------------------------------------------------ + + SET(Boost_INCLUDE_DIRS + ${Boost_INCLUDE_DIR} + ) + + SET(Boost_FOUND FALSE) + IF(Boost_INCLUDE_DIR) + SET( Boost_FOUND TRUE ) + + # Check the version of Boost against the requested version. + if (Boost_FIND_VERSION AND NOT Boost_FIND_VERSION_MINOR) + message(SEND_ERROR "When requesting a specific version of Boost, you must provide at least the major and minor version numbers, e.g., 1.34") + endif (Boost_FIND_VERSION AND NOT Boost_FIND_VERSION_MINOR) + if(Boost_MAJOR_VERSION LESS "${Boost_FIND_VERSION_MAJOR}" ) + set( Boost_FOUND FALSE ) + set(_Boost_VERSION_AGE "old") + elseif(Boost_MAJOR_VERSION EQUAL "${Boost_FIND_VERSION_MAJOR}" ) + if(Boost_MINOR_VERSION LESS "${Boost_FIND_VERSION_MINOR}" ) + set( Boost_FOUND FALSE ) + set(_Boost_VERSION_AGE "old") + elseif(Boost_MINOR_VERSION EQUAL "${Boost_FIND_VERSION_MINOR}" ) + if( Boost_FIND_VERSION_PATCH AND Boost_SUBMINOR_VERSION LESS "${Boost_FIND_VERSION_PATCH}" ) + set( Boost_FOUND FALSE ) + set(_Boost_VERSION_AGE "old") + endif( Boost_FIND_VERSION_PATCH AND Boost_SUBMINOR_VERSION LESS "${Boost_FIND_VERSION_PATCH}" ) + endif( Boost_MINOR_VERSION LESS "${Boost_FIND_VERSION_MINOR}" ) + endif( Boost_MAJOR_VERSION LESS "${Boost_FIND_VERSION_MAJOR}" ) + + if (NOT Boost_FOUND) + _Boost_MARK_COMPONENTS_FOUND(OFF) + endif() + + if (Boost_FOUND AND Boost_FIND_VERSION_EXACT) + # If the user requested an exact version of Boost, check + # that. We already know that the Boost version we have is >= the + # requested version. + set(_Boost_VERSION_AGE "new") + + # If the user didn't specify a patchlevel, it's 0. + if (NOT Boost_FIND_VERSION_PATCH) + set(Boost_FIND_VERSION_PATCH 0) + endif (NOT Boost_FIND_VERSION_PATCH) + + # We'll set Boost_FOUND true again if we have an exact version match. + set(Boost_FOUND FALSE) + _Boost_MARK_COMPONENTS_FOUND(OFF) + if(Boost_MAJOR_VERSION EQUAL "${Boost_FIND_VERSION_MAJOR}" ) + if(Boost_MINOR_VERSION EQUAL "${Boost_FIND_VERSION_MINOR}" ) + if(Boost_SUBMINOR_VERSION EQUAL "${Boost_FIND_VERSION_PATCH}" ) + set( Boost_FOUND TRUE ) + _Boost_MARK_COMPONENTS_FOUND(ON) + endif(Boost_SUBMINOR_VERSION EQUAL "${Boost_FIND_VERSION_PATCH}" ) + endif( Boost_MINOR_VERSION EQUAL "${Boost_FIND_VERSION_MINOR}" ) + endif( Boost_MAJOR_VERSION EQUAL "${Boost_FIND_VERSION_MAJOR}" ) + endif (Boost_FOUND AND Boost_FIND_VERSION_EXACT) + + if(NOT Boost_FOUND) + # State that we found a version of Boost that is too new or too old. + set(Boost_ERROR_REASON + "${Boost_ERROR_REASON}\nDetected version of Boost is too ${_Boost_VERSION_AGE}. Requested version was ${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}") + if (Boost_FIND_VERSION_PATCH) + set(Boost_ERROR_REASON + "${Boost_ERROR_REASON}.${Boost_FIND_VERSION_PATCH}") + endif (Boost_FIND_VERSION_PATCH) + if (NOT Boost_FIND_VERSION_EXACT) + set(Boost_ERROR_REASON "${Boost_ERROR_REASON} (or newer)") + endif (NOT Boost_FIND_VERSION_EXACT) + set(Boost_ERROR_REASON "${Boost_ERROR_REASON}.") + endif (NOT Boost_FOUND) + + if (Boost_FOUND) + set(_boost_CHECKED_COMPONENT FALSE) + set(_Boost_MISSING_COMPONENTS) + foreach(COMPONENT ${Boost_FIND_COMPONENTS}) + string(TOUPPER ${COMPONENT} COMPONENT) + set(_boost_CHECKED_COMPONENT TRUE) + if(NOT Boost_${COMPONENT}_FOUND) + string(TOLOWER ${COMPONENT} COMPONENT) + list(APPEND _Boost_MISSING_COMPONENTS ${COMPONENT}) + set( Boost_FOUND FALSE) + endif(NOT Boost_${COMPONENT}_FOUND) + endforeach(COMPONENT) + endif (Boost_FOUND) + + if(Boost_DEBUG) + message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] Boost_FOUND = ${Boost_FOUND}") + endif() + + if (_Boost_MISSING_COMPONENTS) + # We were unable to find some libraries, so generate a sensible + # error message that lists the libraries we were unable to find. + set(Boost_ERROR_REASON + "${Boost_ERROR_REASON}\nThe following Boost libraries could not be found:\n") + foreach(COMPONENT ${_Boost_MISSING_COMPONENTS}) + set(Boost_ERROR_REASON + "${Boost_ERROR_REASON} boost_${COMPONENT}\n") + endforeach(COMPONENT) + + list(LENGTH Boost_FIND_COMPONENTS Boost_NUM_COMPONENTS_WANTED) + list(LENGTH _Boost_MISSING_COMPONENTS Boost_NUM_MISSING_COMPONENTS) + if (${Boost_NUM_COMPONENTS_WANTED} EQUAL ${Boost_NUM_MISSING_COMPONENTS}) + set(Boost_ERROR_REASON + "${Boost_ERROR_REASON}No Boost libraries were found. You may need to set Boost_LIBRARYDIR to the directory containing Boost libraries or BOOST_ROOT to the location of Boost.") + else (${Boost_NUM_COMPONENTS_WANTED} EQUAL ${Boost_NUM_MISSING_COMPONENTS}) + set(Boost_ERROR_REASON + "${Boost_ERROR_REASON}Some (but not all) of the required Boost libraries were found. You may need to install these additional Boost libraries. Alternatively, set Boost_LIBRARYDIR to the directory containing Boost libraries or BOOST_ROOT to the location of Boost.") + endif (${Boost_NUM_COMPONENTS_WANTED} EQUAL ${Boost_NUM_MISSING_COMPONENTS}) + endif (_Boost_MISSING_COMPONENTS) + + IF( NOT Boost_LIBRARY_DIRS AND NOT _boost_CHECKED_COMPONENT ) + # Compatibility Code for backwards compatibility with CMake + # 2.4's FindBoost module. + + # Look for the boost library path. + # Note that the user may not have installed any libraries + # so it is quite possible the Boost_LIBRARY_PATH may not exist. + SET(_boost_LIB_DIR ${Boost_INCLUDE_DIR}) + + IF("${_boost_LIB_DIR}" MATCHES "boost-[0-9]+") + GET_FILENAME_COMPONENT(_boost_LIB_DIR ${_boost_LIB_DIR} PATH) + ENDIF ("${_boost_LIB_DIR}" MATCHES "boost-[0-9]+") + + IF("${_boost_LIB_DIR}" MATCHES "/include$") + # Strip off the trailing "/include" in the path. + GET_FILENAME_COMPONENT(_boost_LIB_DIR ${_boost_LIB_DIR} PATH) + ENDIF("${_boost_LIB_DIR}" MATCHES "/include$") + + IF(EXISTS "${_boost_LIB_DIR}/lib") + SET (_boost_LIB_DIR ${_boost_LIB_DIR}/lib) + ELSE(EXISTS "${_boost_LIB_DIR}/lib") + IF(EXISTS "${_boost_LIB_DIR}/stage/lib") + SET(_boost_LIB_DIR ${_boost_LIB_DIR}/stage/lib) + ELSE(EXISTS "${_boost_LIB_DIR}/stage/lib") + SET(_boost_LIB_DIR "") + ENDIF(EXISTS "${_boost_LIB_DIR}/stage/lib") + ENDIF(EXISTS "${_boost_LIB_DIR}/lib") + + IF(_boost_LIB_DIR AND EXISTS "${_boost_LIB_DIR}") + SET(Boost_LIBRARY_DIRS ${_boost_LIB_DIR} CACHE FILEPATH "Boost library directory") + ENDIF(_boost_LIB_DIR AND EXISTS "${_boost_LIB_DIR}") + + ENDIF( NOT Boost_LIBRARY_DIRS AND NOT _boost_CHECKED_COMPONENT ) + + ELSE(Boost_INCLUDE_DIR) + SET( Boost_FOUND FALSE) + ENDIF(Boost_INCLUDE_DIR) + + IF (Boost_FOUND) + IF (NOT Boost_FIND_QUIETLY) + MESSAGE(STATUS "Boost version: ${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}") + if(Boost_FIND_COMPONENTS) + message(STATUS "Using the following Boost include directory: ${Boost_INCLUDE_DIR}") + message(STATUS "Found the following Boost libraries:") + endif() + ENDIF(NOT Boost_FIND_QUIETLY) + FOREACH ( COMPONENT ${Boost_FIND_COMPONENTS} ) + STRING( TOUPPER ${COMPONENT} UPPERCOMPONENT ) + IF ( Boost_${UPPERCOMPONENT}_FOUND ) + IF (NOT Boost_FIND_QUIETLY) + MESSAGE (STATUS " ${COMPONENT}: ${Boost_${UPPERCOMPONENT}_LIBRARY}") + ENDIF(NOT Boost_FIND_QUIETLY) + SET(Boost_LIBRARIES ${Boost_LIBRARIES} ${Boost_${UPPERCOMPONENT}_LIBRARY}) + ENDIF ( Boost_${UPPERCOMPONENT}_FOUND ) + ENDFOREACH(COMPONENT) + else() + if(Boost_FIND_REQUIRED) + message(SEND_ERROR "Unable to find the requested Boost libraries.\n${Boost_ERROR_REASON}") + else() + if(NOT Boost_FIND_QUIETLY) + # we opt not to automatically output Boost_ERROR_REASON here as + # it could be quite lengthy and somewhat imposing in it's requests + # Since Boost is not always a required dependency we'll leave this + # up to the end-user. + if(Boost_DEBUG OR Boost_DETAILED_FAILURE_MSG) + message(STATUS "Could NOT find Boost\n${Boost_ERROR_REASON}") + else() + message(STATUS "Could NOT find Boost") + endif() + endif() + endif(Boost_FIND_REQUIRED) + endif() + + # show the Boost_INCLUDE_DIRS AND Boost_LIBRARIES variables only in the advanced view + MARK_AS_ADVANCED(Boost_INCLUDE_DIR + Boost_INCLUDE_DIRS + Boost_LIBRARY_DIRS + ) +ENDIF(_boost_IN_CACHE) + diff --git a/typekit/config/FindOrocosCORBA.cmake b/typekit/config/FindOrocosCORBA.cmake new file mode 100644 index 0000000000000000000000000000000000000000..7bc3b1a2206f4624ed754e4c221e5e3308691b13 --- /dev/null +++ b/typekit/config/FindOrocosCORBA.cmake @@ -0,0 +1,74 @@ +IF (NOT OrocosRTT_FOUND) + FIND_PACKAGE(OrocosRTT REQUIRED) +ENDIF(NOT OrocosRTT_FOUND) + +orogen_pkg_check_modules(OrocosCORBA "orocos-rtt-corba-${OROCOS_TARGET}>=2.1.0") +IF(NOT OrocosCORBA_FOUND) + IF (OrocosCORBA_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "RTT has not been built with CORBA support") + ELSEIF(NOT OrocosCORBA_FIND_QUIETLY) + MESSAGE(STATUS "RTT has not been built with CORBA support") + ENDIF (OrocosCORBA_FIND_REQUIRED) + +ELSE(NOT OrocosCORBA_FOUND) + LIST(APPEND OROCOS_COMPONENT_INCLUDE ${OrocosCORBA_INCLUDE_DIRS}) + + # First, find the actual implementation of the used ORB (TAO or OMNIORB) + FIND_FILE( OrocosCORBA_config rtt/transports/corba/rtt-corba-config.h ${OrocosRTT_INCLUDE_DIRS}) + FILE(STRINGS ${OrocosCORBA_config} CORBA_IMPLEMENTATION + REGEX "define RTT_CORBA_IMPLEMENTATION ") + STRING(STRIP ${CORBA_IMPLEMENTATION} CORBA_IMPLEMENTATION) + STRING(REGEX MATCH "[^ ]+$" CORBA_IMPLEMENTATION ${CORBA_IMPLEMENTATION}) + + # In the case of the TAO ORB, we add TAO_Strategies to be able to use + # multiple communication methods + IF (CORBA_IMPLEMENTATION STREQUAL "TAO") + LIST(APPEND OrocosCORBA_LIBRARIES TAO_Strategies TAO_AnyTypeCode) + ENDIF (CORBA_IMPLEMENTATION STREQUAL "TAO") + IF (CORBA_IMPLEMENTATION STREQUAL "OMNIORB") + LIST(APPEND OrocosCORBA_LIBRARIES omniDynamic4) + ENDIF (CORBA_IMPLEMENTATION STREQUAL "OMNIORB") + + + # ORB-specific configuration steps if the TYPEKIT component + # is required + STRING(REGEX MATCH "Typekit" _orocos_corba_typekit "${OrocosCORBA_FIND_COMPONENTS}") + IF (_orocos_corba_typekit) + IF (CORBA_IMPLEMENTATION STREQUAL "TAO") + MESSAGE(STATUS "Orocos reports in ${OrocosCORBA_config} to use the TAO ORB") + + FIND_PROGRAM(OrocosCORBA_IDL_EXECUTABLE tao_idl) + IF (OrocosCORBA_IDL_EXECUTABLE ) + SET(OrocosCORBA_Typekit_FOUND TRUE) + ADD_DEFINITIONS(-D_REENTRANT) + # The ${OrocosRTT_INCLUDE_DIRS}/rtt part is a workaround for RTT's + # includes brokenness + SET(OrocosCORBA_Typekit_INCLUDE_DIR "${OrocosCORBA_INCLUDE_DIRS}") + SET(OrocosCORBA_IDL ${OrocosCORBA_IDL_EXECUTABLE}) + ELSE(OrocosCORBA_IDL_EXECUTABLE ) + IF(NOT OrocosCORBA_FIND_QUIETLY) + MESSAGE(STATUS "cannot find tao_idl or associated development files") + ENDIF(NOT OrocosCORBA_FIND_QUIETLY) + ENDIF (OrocosCORBA_IDL_EXECUTABLE) + + ELSEIF (CORBA_IMPLEMENTATION STREQUAL "OMNIORB") + MESSAGE(STATUS "Orocos reports in ${OrocosCORBA_config} to use the OMNIORB") + + FIND_PROGRAM(OrocosCORBA_IDL_EXECUTABLE omniidl) + IF (OrocosCORBA_IDL_EXECUTABLE) + SET(OrocosCORBA_Typekit_FOUND TRUE) + # The ${OrocosRTT_INCLUDE_DIRS}/rtt part is a workaround for RTT's + # includes brokenness + SET(OrocosCORBA_Typekit_INCLUDE_DIR "${OROCOS_RTT_INCLUDE_DIRS}/rtt;${OROCOS_RTT_INCLUDE_DIRS}/rtt/corba") + SET(OrocosCORBA_IDL ${OrocosCORBA_IDL_EXECUTABLE} -bcxx -Wba -Wbh=C.h -Wbs=C.cpp -Wbd=DynSK.cpp) + ELSE(OrocosCORBA_IDL_EXECUTABLE) + IF(NOT OrocosCORBA_FIND_QUIETLY) + MESSAGE(STATUS "cannot find omniidl or associated development files") + ENDIF(NOT OrocosCORBA_FIND_QUIETLY) + ENDIF (OrocosCORBA_IDL_EXECUTABLE) + ELSE (CORBA_IMPLEMENTATION STREQUAL "TAO") + MESSAGE(FATAL_ERROR "unknown Corba implementation ${CORBA_IMPLEMENTATION}") + ENDIF (CORBA_IMPLEMENTATION STREQUAL "TAO") + ENDIF (_orocos_corba_typekit) +ENDIF(NOT OrocosCORBA_FOUND) + diff --git a/typekit/config/FindRTTPlugin.cmake b/typekit/config/FindRTTPlugin.cmake new file mode 100644 index 0000000000000000000000000000000000000000..1ec38a2977dc95fd8cbb774ed10a1761a27be644 --- /dev/null +++ b/typekit/config/FindRTTPlugin.cmake @@ -0,0 +1,86 @@ +################################################################################ +# +# 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__FOUND: Boolean that indicates if the plugin was found +# RTT_PLUGIN__INCLUDE_DIRS: Path to the plugin header files (equal to OROCOS_RTT_INCLUDE_DIRS) +# RTT_PLUGIN__LIBRARIES: Plugin library for the current OROCOS_TARGET cmake or environment variable. +# RTT_PLUGIN___LIBRARIES: Plugin library for the current OROCOS_TARGET cmake or environment variable (same as above). +# +################################################################################ + +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} ) + set(RTT_PLUGIN_${COMPONENT}_${OROCOS_TARGET}_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) + find_library(RTT_PLUGIN_${COMPONENT}_${OROCOS_TARGET}_LIBRARY NAMES ${PLUGIN_NAME} PATHS ${OROCOS-RTT_PLUGIN_PATH} PATH_SUFFIXES ${OROCOS_TARGET} NO_DEFAULT_PATH) + find_library(RTT_PLUGIN_${COMPONENT}_${OROCOS_TARGET}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}) + find_library(RTT_PLUGIN_${COMPONENT}_${OROCOS_TARGET}_LIBRARY NAMES ${PLUGIN_NAME} PATHS ${OROCOS-RTT_PLUGIN_PATH} PATH_SUFFIXES ${OROCOS_TARGET}) + find_library(RTT_PLUGIN_${COMPONENT}_${OROCOS_TARGET}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}_${OROCOS_TARGET}D_LIBRARY ) + list(APPEND RTT_PLUGIN_${COMPONENT}_${OROCOS_TARGET}_PROCESS_LIBS RTT_PLUGIN_${COMPONENT}_${OROCOS_TARGET}D_LIBRARY) + endif() + if ( RTT_PLUGIN_${COMPONENT}_${OROCOS_TARGET}_LIBRARY ) + list(APPEND RTT_PLUGIN_${COMPONENT}_${OROCOS_TARGET}_PROCESS_LIBS RTT_PLUGIN_${COMPONENT}_${OROCOS_TARGET}_LIBRARY) + endif() + + # Forward FIND_REQUIRED + if(RTTPlugin_FIND_REQUIRED) + set(RTT_PLUGIN_${COMPONENT}_${OROCOS_TARGET}_FIND_REQUIRED TRUE) + endif() + + # Forward FIND_QUIET + if(RTTPlugin_FIND_QUIET) + set(RTT_PLUGIN_${COMPONENT}_${OROCOS_TARGET}_FIND_QUIET TRUE) + endif() + + libfind_process( RTT_PLUGIN_${COMPONENT}_${OROCOS_TARGET} ) + + # Since libfind_process does not deal correctly with "optimized" and "debug" keywords, + # we have to manualy add them thereafter + if(RTT_PLUGIN_${COMPONENT}_${OROCOS_TARGET}_LIBRARY AND RTT_PLUGIN_${COMPONENT}_${OROCOS_TARGET}D_LIBRARY) + set(RTT_PLUGIN_${COMPONENT}_LIBRARIES + debug ${RTT_PLUGIN_${COMPONENT}D_LIBRARY} + optimized ${RTT_PLUGIN_${COMPONENT}_LIBRARY}) + set(RTT_PLUGIN_${COMPONENT}_${OROCOS_TARGET}_LIBRARIES + debug ${RTT_PLUGIN_${COMPONENT}_${OROCOS_TARGET}D_LIBRARY} + optimized ${RTT_PLUGIN_${COMPONENT}_${OROCOS_TARGET}_LIBRARY}) + else() + set(RTT_PLUGIN_${COMPONENT}_LIBRARIES "") + set(RTT_PLUGIN_${COMPONENT}_${OROCOS_TARGET}_LIBRARIES "") + endif() + + if ( NOT "${RTT_PLUGIN_${COMPONENT}_LIBRARIES}" STREQUAL "${RTT_PLUGIN_${COMPONENT}_${OROCOS_TARGET}_LIBRARIES}" ) + # Avoid worst case and disable the generic case: + message("[FindRTTPlugin] Forcing RTT_PLUGIN_${COMPONENT}_LIBRARIES to ${OROCOS_TARGET} since your are switching OROCOS_TARGETs") + set( RTT_PLUGIN_${COMPONENT}_LIBRARIES ${RTT_PLUGIN_${COMPONENT}_${OROCOS_TARGET}_LIBRARIES}) + endif() +ENDFOREACH(COMPONENT) diff --git a/typekit/config/LibFindMacros.cmake b/typekit/config/LibFindMacros.cmake new file mode 100644 index 0000000000000000000000000000000000000000..db880c19b8a79fbe23c808b171f726ef5189eb9a --- /dev/null +++ b/typekit/config/LibFindMacros.cmake @@ -0,0 +1,101 @@ +# Works the same as find_package, but forwards the "REQUIRED" and "QUIET" arguments +# used for the current package. For this to work, the first parameter must be the +# prefix of the current package, then the prefix of the new package etc, which are +# passed to find_package. +macro (libfind_package PREFIX) + set (LIBFIND_PACKAGE_ARGS ${ARGN}) + if (${PREFIX}_FIND_QUIETLY) + set (LIBFIND_PACKAGE_ARGS ${LIBFIND_PACKAGE_ARGS} QUIET) + endif (${PREFIX}_FIND_QUIETLY) + if (${PREFIX}_FIND_REQUIRED) + set (LIBFIND_PACKAGE_ARGS ${LIBFIND_PACKAGE_ARGS} REQUIRED) + endif (${PREFIX}_FIND_REQUIRED) + find_package(${LIBFIND_PACKAGE_ARGS}) +endmacro (libfind_package) + +# Damn CMake developers made the UsePkgConfig system deprecated in the same release (2.6) +# where they added pkg_check_modules. Consequently I need to support both in my scripts +# to avoid those deprecated warnings. Here's a helper that does just that. +# Works identically to pkg_check_modules, except that no checks are needed prior to use. +macro (libfind_pkg_check_modules PREFIX PKGNAME) + if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + include(UsePkgConfig) + pkgconfig(${PKGNAME} ${PREFIX}_INCLUDE_DIRS ${PREFIX}_LIBRARY_DIRS ${PREFIX}_LDFLAGS ${PREFIX}_CFLAGS) + else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + find_package(PkgConfig) + if (PKG_CONFIG_FOUND) + pkg_check_modules(${PREFIX} ${PKGNAME}) + endif (PKG_CONFIG_FOUND) + endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) +endmacro (libfind_pkg_check_modules) + +# Do the final processing once the paths have been detected. +# If include dirs are needed, ${PREFIX}_PROCESS_INCLUDES should be set to contain +# all the variables, each of which contain one include directory. +# Ditto for ${PREFIX}_PROCESS_LIBS and library files. +# Will set ${PREFIX}_FOUND, ${PREFIX}_INCLUDE_DIRS and ${PREFIX}_LIBRARIES. +# Also handles errors in case library detection was required, etc. +macro (libfind_process PREFIX) + # Skip processing if already processed during this run + if (NOT ${PREFIX}_FOUND) + # Start with the assumption that the library was found + set (${PREFIX}_FOUND TRUE) + + # Process all includes and set _FOUND to false if any are missing + foreach (i ${${PREFIX}_PROCESS_INCLUDES}) + if (${i}) + set (${PREFIX}_INCLUDE_DIRS ${${PREFIX}_INCLUDE_DIRS} ${${i}}) + mark_as_advanced(${i}) + else (${i}) + set (${PREFIX}_FOUND FALSE) + endif (${i}) + endforeach (i) + + # Process all libraries and set _FOUND to false if any are missing + foreach (i ${${PREFIX}_PROCESS_LIBS}) + if (${i}) + set (${PREFIX}_LIBRARIES ${${PREFIX}_LIBRARIES} ${${i}}) + mark_as_advanced(${i}) + else (${i}) + set (${PREFIX}_FOUND FALSE) + endif (${i}) + endforeach (i) + + # Print message and/or exit on fatal error + if (${PREFIX}_FOUND) + if (NOT ${PREFIX}_FIND_QUIETLY) + message (STATUS "Found ${PREFIX} ${${PREFIX}_VERSION}") + endif (NOT ${PREFIX}_FIND_QUIETLY) + else (${PREFIX}_FOUND) + if (${PREFIX}_FIND_REQUIRED) + foreach (i ${${PREFIX}_PROCESS_INCLUDES} ${${PREFIX}_PROCESS_LIBS}) + message("${i}=${${i}}") + endforeach (i) + message (FATAL_ERROR "Required library ${PREFIX} NOT FOUND.\nInstall the library (dev version) and try again. If the library is already installed, use the ${PREFIX}_ROOT_DIR environment variable or ccmake to set the missing variables manually.") + else (${PREFIX}_FIND_REQUIRED) # NOTE: else case not included in original file + message (STATUS "Optional library ${PREFIX} NOT FOUND. If the library is already installed, use the ${PREFIX}_ROOT_DIR environment variable or ccmake to set the missing variables manually.") + endif (${PREFIX}_FIND_REQUIRED) + endif (${PREFIX}_FOUND) + endif (NOT ${PREFIX}_FOUND) +endmacro (libfind_process) + +macro(libfind_library PREFIX basename) + set(TMP "") + if(MSVC80) + set(TMP -vc80) + endif(MSVC80) + if(MSVC90) + set(TMP -vc90) + endif(MSVC90) + set(${PREFIX}_LIBNAMES ${basename}${TMP}) + if(${ARGC} GREATER 2) + set(${PREFIX}_LIBNAMES ${basename}${TMP}-${ARGV2}) + string(REGEX REPLACE "\\." "_" TMP ${${PREFIX}_LIBNAMES}) + set(${PREFIX}_LIBNAMES ${${PREFIX}_LIBNAMES} ${TMP}) + endif(${ARGC} GREATER 2) + find_library(${PREFIX}_LIBRARY + NAMES ${${PREFIX}_LIBNAMES} + PATHS ${${PREFIX}_PKGCONF_LIBRARY_DIRS} + ) +endmacro(libfind_library) + diff --git a/typekit/config/OrogenPkgCheckModules.cmake b/typekit/config/OrogenPkgCheckModules.cmake new file mode 100644 index 0000000000000000000000000000000000000000..6d743df33cdfb380574bbcc7bc70f172892ce02c --- /dev/null +++ b/typekit/config/OrogenPkgCheckModules.cmake @@ -0,0 +1,18 @@ +include(FindPkgConfig) # This is the Cmake 2.6 FindPkgConfig macro +macro(orogen_pkg_check_modules VARNAME) + if (NOT ${VARNAME}_FOUND) + pkg_check_modules(${VARNAME} ${ARGN}) + foreach(${VARNAME}_lib ${${VARNAME}_LIBRARIES}) + set(_${VARNAME}_lib NOTFOUND) + find_library(_${VARNAME}_lib NAMES ${${VARNAME}_lib} HINTS ${${VARNAME}_LIBRARY_DIRS}) + if (NOT _${VARNAME}_lib) + set(_${VARNAME}_lib ${${VARNAME}_lib}) + endif() + list(APPEND _${VARNAME}_LIBRARIES ${_${VARNAME}_lib}) + endforeach() + list(APPEND _${VARNAME}_LIBRARIES ${${VARNAME}_LDFLAGS_OTHER}) + set(${VARNAME}_LIBRARIES ${_${VARNAME}_LIBRARIES} CACHE INTERNAL "") + endif() +endmacro() + + diff --git a/typekit/config/RPATHHandling.cmake b/typekit/config/RPATHHandling.cmake new file mode 100644 index 0000000000000000000000000000000000000000..d53af993512303d7a79eb2708bf603956ef88faa --- /dev/null +++ b/typekit/config/RPATHHandling.cmake @@ -0,0 +1,16 @@ +MACRO(CMAKE_USE_FULL_RPATH install_rpath) + # use, i.e. don't skip the full RPATH for the build tree + SET(CMAKE_SKIP_BUILD_RPATH FALSE) + + # when building, don't use the install RPATH already + # (but later on when installing) + SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) + + # the RPATH to be used when installing + SET(CMAKE_INSTALL_RPATH ${install_rpath}) + + # add the automatically determined parts of the RPATH + # which point to directories outside the build tree to the install RPATH + SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) +ENDMACRO(CMAKE_USE_FULL_RPATH) + diff --git a/typekit/manifest.xml b/typekit/manifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..553e28a1191bd71d5a31e50c52d38520fa47f537 --- /dev/null +++ b/typekit/manifest.xml @@ -0,0 +1,14 @@ + + + + robot_brain-typekit description + + + + + + http://ros.org/wiki/robot_brain-typekit + + + + diff --git a/typekit/package.xml b/typekit/package.xml new file mode 100644 index 0000000000000000000000000000000000000000..d0457049500ce9f21dca793bed287ed88235e8c8 --- /dev/null +++ b/typekit/package.xml @@ -0,0 +1,25 @@ + + robot_brain-typekit + 0.0.1 + + robot_brain-typekit description + + + LGPLv2+ + Unknown Author + Unknown Author + + cmake + + rtt + rtt_typelib + rtt + rtt_typelib + + + + cmake + + + + diff --git a/typekit/robot_brain b/typekit/robot_brain new file mode 120000 index 0000000000000000000000000000000000000000..f40499218e1a5e8da9e511a11687917459d4d3df --- /dev/null +++ b/typekit/robot_brain @@ -0,0 +1 @@ +../typekit \ No newline at end of file diff --git a/typekit/robot_brain-typekit.pc.in b/typekit/robot_brain-typekit.pc.in new file mode 100644 index 0000000000000000000000000000000000000000..2b66ad09e237257e81092b5b5156f7e1ff0f2444 --- /dev/null +++ b/typekit/robot_brain-typekit.pc.in @@ -0,0 +1,17 @@ +# Generated from orogen/lib/orogen/templates/typekit/typekit.pc + +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=${prefix} +libdir=${prefix}/lib/orocos@OROCOS_PKG_DIR@/types +includedir=${prefix}/include/orocos + +project_name=robot_brain +type_registry=${prefix}/share/orogen/robot_brain.tlb + +Name: robot_brainTypekit +Version: +Requires: +Description: robot_brain types support for the Orocos type system +Libs: -L${libdir} -l@libname@ +Cflags: -I${includedir} -I${includedir}/robot_brain/types @PKG_CFLAGS@ + diff --git a/typekit/robot_brain.tlb b/typekit/robot_brain.tlb new file mode 100644 index 0000000000000000000000000000000000000000..a578a10d5e752dbd9b45c4d667979a9018199230 --- /dev/null +++ b/typekit/robot_brain.tlb @@ -0,0 +1,424 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/typekit/robot_brain.typelist b/typekit/robot_brain.typelist new file mode 100644 index 0000000000000000000000000000000000000000..af221b8611d422d0df5b8e9ad3f248a1af83efcb --- /dev/null +++ b/typekit/robot_brain.typelist @@ -0,0 +1,44 @@ +/double[6] 1 +/double[9] 1 +/int16_t 0 +/int16_t[9] 1 +/int32_t[9] 1 +/int64_t 0 +/int8_t 0 +/int8_t[100] 1 +/int8_t[4] 1 +/rosc/Arm_pos 1 +/rosc/AxisNum 1 +/rosc/CommandExecResult 1 +/rosc/CommandType 1 +/rosc/DigitIOFrame 1 +/rosc/EncoderFrame 1 +/rosc/EthercatCtlFrame 1 +/rosc/EthercatFrameSendStatus 1 +/rosc/EthercatStatusFrame 1 +/rosc/ExecStatus 1 +/rosc/MotionMode 1 +/rosc/ServoState 1 +/rosc/TransferSpeedType 1 +/rosc/ctrl_word_t 0 +/rosc/ctrl_word_t[9] 1 +/rosc/driver_position_t[9] 1 +/rosc/error_code_t 0 +/rosc/error_code_t[9] 1 +/rosc/ethercat_frame_send_status_t 0 +/rosc/ethercat_frame_send_status_t[9] 1 +/rosc/modes_operation_display_t 0 +/rosc/modes_operation_display_t[9] 1 +/rosc/operation_mode_t 0 +/rosc/operation_mode_t[9] 1 +/rosc/status_word_t 0 +/rosc/status_word_t[9] 1 +/rosc/torque_t 0 +/rosc/torque_t[9] 1 +/rosc/velocity_t[9] 1 +/std/vector 1 +/uint16_t 0 +/uint16_t[9] 1 +/uint32_t 0 +/uint8_t 0 +/uint8_t[9] 1 \ No newline at end of file diff --git a/typekit/stamp b/typekit/stamp new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/typekit/transports/typelib/CMakeLists.txt b/typekit/transports/typelib/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..df6f787c9624164ba1323ff0f0a8dd6c9fd0a8cb --- /dev/null +++ b/typekit/transports/typelib/CMakeLists.txt @@ -0,0 +1,76 @@ +# Generated from orogen/lib/orogen/templates/typekit/typelib/CMakeLists.txt + +# This policy indicates that the code below is cmake 2.6 compliant. This is necessary +# To properly escape the add_definitions arguments. +cmake_policy(VERSION 2.6) + +set(DEPS_CFLAGS_OTHER "") + +list(REMOVE_DUPLICATES DEPS_CFLAGS_OTHER) +add_definitions(${DEPS_CFLAGS_OTHER}) + +orogen_pkg_check_modules(TYPELIB REQUIRED typelib) +include_directories(${TYPELIB_INCLUDE_DIRS}) +link_directories(${TYPELIB_LIBRARY_DIRS}) + +orogen_pkg_check_modules(RTT_Typelib REQUIRED rtt_typelib-${OROCOS_TARGET}) +include_directories(${RTT_Typelib_INCLUDE_DIRS}) +link_directories(${RTT_Typelib_LIBRARY_DIRS}) + +set(TYPEKIT_REGISTRY ${CMAKE_INSTALL_PREFIX}/share/orogen/robot_brain.tlb) +add_definitions(-DTYPEKIT_REGISTRY="${TYPEKIT_REGISTRY}") +set(libname_typelib robot_brain-transport-typelib-${OROCOS_TARGET}) +add_library(${libname_typelib} SHARED + __rosc__Arm_pos___rosc__AxisNum.cpp + __rosc__CommandExecResult___rosc__CommandType.cpp + __rosc__DigitIOFrame___rosc__EncoderFrame.cpp + __rosc__EthercatCtlFrame___rosc__EthercatFrameSendStatus.cpp + __rosc__EthercatStatusFrame___rosc__ExecStatus.cpp + __rosc__MotionMode___rosc__ServoState.cpp + __rosc__TransferSpeedType___std__vector____std__string__.cpp + TransportPlugin.cpp) + +target_link_libraries(${libname_typelib} + ${TYPELIB_LIBRARIES} + ${OrocosRTT_LIBRARIES} + ${RTT_Typelib_LIBRARIES} + ) + + + +# rospack support: if we're a ROS package, use rospack to return the location of our .tlb file. +if ( IS_ROS_PACKAGE ) + set(ROS_ROOT $ENV{ROS_ROOT}) + # Catkin style of fetching ROS deps + FIND_PACKAGE( ROS QUIET COMPONENTS roslib ) + + IF(NOT ROS_FOUND) # pre-Fuerte or Groovy + # TODO: This block to get roslib is deprecated as of ROS Fuerte, but is left in for pre-Fuerte compatibility + set(roslib_PACKAGE_PATH ${ROS_ROOT}/core/roslib) ### XXX hardcoded + message("Falling back to roslib in: ${roslib_PACKAGE_PATH}") + find_library(ROS_LIBRARIES roslib ${roslib_PACKAGE_PATH}/lib ) + if ( NOT ROS_LIBRARIES ) + find_package( ROS COMPONENTS roslib ) # Yells at user (non-QUIET !) + else() + set(ROS_FOUND TRUE) + set(ROS_INCLUDE_DIRS ${roslib_PACKAGE_PATH}/include) + endif() + ENDIF(NOT ROS_FOUND) + + IF(ROS_FOUND) + include_directories( ${ROS_INCLUDE_DIRS} ) + add_definitions( -DHAS_ROSLIB ) + target_link_libraries( ${libname_typelib} ${ROS_LIBRARIES} ) + ENDIF(ROS_FOUND) + +endif( IS_ROS_PACKAGE ) + +SET(PKG_CONFIG_FILE_TYPELIB ${CMAKE_CURRENT_BINARY_DIR}/robot_brain-transport-typelib-${OROCOS_TARGET}.pc) +CONFIGURE_FILE(robot_brain-transport-typelib.pc.in ${PKG_CONFIG_FILE_TYPELIB} @ONLY) + +install(FILES ${PKG_CONFIG_FILE_TYPELIB} DESTINATION lib/pkgconfig) +install(FILES + TransportPlugin.hpp + DESTINATION include/orocos/robot_brain/transports/typelib) +install(TARGETS ${libname_typelib} LIBRARY DESTINATION lib/orocos${OROCOS_PKG_DIR}/types) + diff --git a/typekit/transports/typelib/Registration.hpp b/typekit/transports/typelib/Registration.hpp new file mode 100644 index 0000000000000000000000000000000000000000..0f85ff48c69818247f463cbad827d8aa3186c6b7 --- /dev/null +++ b/typekit/transports/typelib/Registration.hpp @@ -0,0 +1,64 @@ +/* Generated from orogen/lib/orogen/templates/typekit/typelib/Registration.hpp */ + +#ifndef __OROGEN_GENERATED_ROBOT_BRAIN_TYPELIB_REGISTRATION_HPP +#define __OROGEN_GENERATED_ROBOT_BRAIN_TYPELIB_REGISTRATION_HPP + +#include + +namespace Typelib { + class Registry; +} + +namespace orogen_transports { + class TypelibMarshallerBase; +} + +namespace orogen_typekits { + + /** Creates and returns a TypeInfo object for ::rosc::Arm_pos */ + orogen_transports::TypelibMarshallerBase* rosc_Arm_pos_TypelibMarshaller(Typelib::Registry const& registry); + + /** Creates and returns a TypeInfo object for ::rosc::AxisNum */ + orogen_transports::TypelibMarshallerBase* rosc_AxisNum_TypelibMarshaller(Typelib::Registry const& registry); + + /** Creates and returns a TypeInfo object for ::rosc::CommandExecResult */ + orogen_transports::TypelibMarshallerBase* rosc_CommandExecResult_TypelibMarshaller(Typelib::Registry const& registry); + + /** Creates and returns a TypeInfo object for ::rosc::CommandType */ + orogen_transports::TypelibMarshallerBase* rosc_CommandType_TypelibMarshaller(Typelib::Registry const& registry); + + /** Creates and returns a TypeInfo object for ::rosc::DigitIOFrame */ + orogen_transports::TypelibMarshallerBase* rosc_DigitIOFrame_TypelibMarshaller(Typelib::Registry const& registry); + + /** Creates and returns a TypeInfo object for ::rosc::EncoderFrame */ + orogen_transports::TypelibMarshallerBase* rosc_EncoderFrame_TypelibMarshaller(Typelib::Registry const& registry); + + /** Creates and returns a TypeInfo object for ::rosc::EthercatCtlFrame */ + orogen_transports::TypelibMarshallerBase* rosc_EthercatCtlFrame_TypelibMarshaller(Typelib::Registry const& registry); + + /** Creates and returns a TypeInfo object for ::rosc::EthercatFrameSendStatus */ + orogen_transports::TypelibMarshallerBase* rosc_EthercatFrameSendStatus_TypelibMarshaller(Typelib::Registry const& registry); + + /** Creates and returns a TypeInfo object for ::rosc::EthercatStatusFrame */ + orogen_transports::TypelibMarshallerBase* rosc_EthercatStatusFrame_TypelibMarshaller(Typelib::Registry const& registry); + + /** Creates and returns a TypeInfo object for ::rosc::ExecStatus */ + orogen_transports::TypelibMarshallerBase* rosc_ExecStatus_TypelibMarshaller(Typelib::Registry const& registry); + + /** Creates and returns a TypeInfo object for ::rosc::MotionMode */ + orogen_transports::TypelibMarshallerBase* rosc_MotionMode_TypelibMarshaller(Typelib::Registry const& registry); + + /** Creates and returns a TypeInfo object for ::rosc::ServoState */ + orogen_transports::TypelibMarshallerBase* rosc_ServoState_TypelibMarshaller(Typelib::Registry const& registry); + + /** Creates and returns a TypeInfo object for ::rosc::TransferSpeedType */ + orogen_transports::TypelibMarshallerBase* rosc_TransferSpeedType_TypelibMarshaller(Typelib::Registry const& registry); + + /** Creates and returns a TypeInfo object for ::std::vector< ::std::string > */ + orogen_transports::TypelibMarshallerBase* std_vector_LT__std_string_GT__TypelibMarshaller(Typelib::Registry const& registry); + +} + +#endif + + diff --git a/typekit/transports/typelib/TransportPlugin.cpp b/typekit/transports/typelib/TransportPlugin.cpp new file mode 100644 index 0000000000000000000000000000000000000000..03980f353f3e6b886138f551a3b0b24c0afa8b60 --- /dev/null +++ b/typekit/transports/typelib/TransportPlugin.cpp @@ -0,0 +1,299 @@ +/* Generated from orogen/lib/orogen/templates/typekit/typelib/TransportPlugin.cpp */ + +#include "Registration.hpp" +#include "TransportPlugin.hpp" +#include +#include +#include +using namespace RTT; +#ifdef HAS_ROSLIB +#include +#endif + +#define TYPEKIT_PACKAGE_NAME_aux0(target) #target +#define TYPEKIT_PACKAGE_NAME_aux(target) "robot_brain-typekit-" TYPEKIT_PACKAGE_NAME_aux0(target) +#define TYPEKIT_PACKAGE_NAME TYPEKIT_PACKAGE_NAME_aux(OROCOS_TARGET) + +std::string orogen_typekits::robot_brainTypelibTransportPlugin::getTypelibRegistryPath() +{ +#ifdef HAS_ROSLIB + /** If ROSLIB is available, we'll use ros::package to find the path to a package with the + same name as our typekit. This may only be enabled if IS_ROS_PACKAGE is true at build time ! **/ + using namespace ros::package; + try { + bool all_good = true, found = false; + std::string ppath = getPath( "robot_brain" ); + if ( !ppath.empty() ) { + return ppath + "/typekit" + "/robot_brain.tlb"; + } else + log(Debug) << "Not a ros package: " << "robot_brain" << endlog(); + } catch(...) { + log(Debug) << "Not a ros package: " << "robot_brain" << endlog(); + } +#endif + return TYPEKIT_REGISTRY; +} + +std::string orogen_typekits::robot_brainTypelibTransportPlugin::getTlbPath() const +{ + return robot_brainTypelibTransportPlugin::getTypelibRegistryPath(); +} + +orogen_typekits::robot_brainTypelibTransportPlugin::robot_brainTypelibTransportPlugin() + : TypelibTransportPlugin("robot_brain") {} + +bool orogen_typekits::robot_brainTypelibTransportPlugin::registerTransport(std::string type_name, RTT::types::TypeInfo* ti) +{ + if (!m_registry) + { + if (!loadRegistry()) + return false; + } + + if(ti->hasProtocol(orogen_transports::TYPELIB_MARSHALLER_ID)) + return false; + + + if ("/rosc/Arm_pos" == type_name) + { + try { + ti->addProtocol(orogen_transports::TYPELIB_MARSHALLER_ID, + rosc_Arm_pos_TypelibMarshaller(*m_registry)); + } + catch(std::runtime_error const& e) + { + log(Error) << "cannot register a typelib transport for " << type_name << endlog(); + log(Error) << " the following error occured:" << endlog(); + log(Error) << " " << e.what() << endlog(); + log(Error) << " the registry can be found at " << TYPEKIT_REGISTRY << endlog(); + return false; + } + return true; + } + + else if ("/rosc/AxisNum" == type_name) + { + try { + ti->addProtocol(orogen_transports::TYPELIB_MARSHALLER_ID, + rosc_AxisNum_TypelibMarshaller(*m_registry)); + } + catch(std::runtime_error const& e) + { + log(Error) << "cannot register a typelib transport for " << type_name << endlog(); + log(Error) << " the following error occured:" << endlog(); + log(Error) << " " << e.what() << endlog(); + log(Error) << " the registry can be found at " << TYPEKIT_REGISTRY << endlog(); + return false; + } + return true; + } + + else if ("/rosc/CommandExecResult" == type_name) + { + try { + ti->addProtocol(orogen_transports::TYPELIB_MARSHALLER_ID, + rosc_CommandExecResult_TypelibMarshaller(*m_registry)); + } + catch(std::runtime_error const& e) + { + log(Error) << "cannot register a typelib transport for " << type_name << endlog(); + log(Error) << " the following error occured:" << endlog(); + log(Error) << " " << e.what() << endlog(); + log(Error) << " the registry can be found at " << TYPEKIT_REGISTRY << endlog(); + return false; + } + return true; + } + + else if ("/rosc/CommandType" == type_name) + { + try { + ti->addProtocol(orogen_transports::TYPELIB_MARSHALLER_ID, + rosc_CommandType_TypelibMarshaller(*m_registry)); + } + catch(std::runtime_error const& e) + { + log(Error) << "cannot register a typelib transport for " << type_name << endlog(); + log(Error) << " the following error occured:" << endlog(); + log(Error) << " " << e.what() << endlog(); + log(Error) << " the registry can be found at " << TYPEKIT_REGISTRY << endlog(); + return false; + } + return true; + } + + else if ("/rosc/DigitIOFrame" == type_name) + { + try { + ti->addProtocol(orogen_transports::TYPELIB_MARSHALLER_ID, + rosc_DigitIOFrame_TypelibMarshaller(*m_registry)); + } + catch(std::runtime_error const& e) + { + log(Error) << "cannot register a typelib transport for " << type_name << endlog(); + log(Error) << " the following error occured:" << endlog(); + log(Error) << " " << e.what() << endlog(); + log(Error) << " the registry can be found at " << TYPEKIT_REGISTRY << endlog(); + return false; + } + return true; + } + + else if ("/rosc/EncoderFrame" == type_name) + { + try { + ti->addProtocol(orogen_transports::TYPELIB_MARSHALLER_ID, + rosc_EncoderFrame_TypelibMarshaller(*m_registry)); + } + catch(std::runtime_error const& e) + { + log(Error) << "cannot register a typelib transport for " << type_name << endlog(); + log(Error) << " the following error occured:" << endlog(); + log(Error) << " " << e.what() << endlog(); + log(Error) << " the registry can be found at " << TYPEKIT_REGISTRY << endlog(); + return false; + } + return true; + } + + else if ("/rosc/EthercatCtlFrame" == type_name) + { + try { + ti->addProtocol(orogen_transports::TYPELIB_MARSHALLER_ID, + rosc_EthercatCtlFrame_TypelibMarshaller(*m_registry)); + } + catch(std::runtime_error const& e) + { + log(Error) << "cannot register a typelib transport for " << type_name << endlog(); + log(Error) << " the following error occured:" << endlog(); + log(Error) << " " << e.what() << endlog(); + log(Error) << " the registry can be found at " << TYPEKIT_REGISTRY << endlog(); + return false; + } + return true; + } + + else if ("/rosc/EthercatFrameSendStatus" == type_name) + { + try { + ti->addProtocol(orogen_transports::TYPELIB_MARSHALLER_ID, + rosc_EthercatFrameSendStatus_TypelibMarshaller(*m_registry)); + } + catch(std::runtime_error const& e) + { + log(Error) << "cannot register a typelib transport for " << type_name << endlog(); + log(Error) << " the following error occured:" << endlog(); + log(Error) << " " << e.what() << endlog(); + log(Error) << " the registry can be found at " << TYPEKIT_REGISTRY << endlog(); + return false; + } + return true; + } + + else if ("/rosc/EthercatStatusFrame" == type_name) + { + try { + ti->addProtocol(orogen_transports::TYPELIB_MARSHALLER_ID, + rosc_EthercatStatusFrame_TypelibMarshaller(*m_registry)); + } + catch(std::runtime_error const& e) + { + log(Error) << "cannot register a typelib transport for " << type_name << endlog(); + log(Error) << " the following error occured:" << endlog(); + log(Error) << " " << e.what() << endlog(); + log(Error) << " the registry can be found at " << TYPEKIT_REGISTRY << endlog(); + return false; + } + return true; + } + + else if ("/rosc/ExecStatus" == type_name) + { + try { + ti->addProtocol(orogen_transports::TYPELIB_MARSHALLER_ID, + rosc_ExecStatus_TypelibMarshaller(*m_registry)); + } + catch(std::runtime_error const& e) + { + log(Error) << "cannot register a typelib transport for " << type_name << endlog(); + log(Error) << " the following error occured:" << endlog(); + log(Error) << " " << e.what() << endlog(); + log(Error) << " the registry can be found at " << TYPEKIT_REGISTRY << endlog(); + return false; + } + return true; + } + + else if ("/rosc/MotionMode" == type_name) + { + try { + ti->addProtocol(orogen_transports::TYPELIB_MARSHALLER_ID, + rosc_MotionMode_TypelibMarshaller(*m_registry)); + } + catch(std::runtime_error const& e) + { + log(Error) << "cannot register a typelib transport for " << type_name << endlog(); + log(Error) << " the following error occured:" << endlog(); + log(Error) << " " << e.what() << endlog(); + log(Error) << " the registry can be found at " << TYPEKIT_REGISTRY << endlog(); + return false; + } + return true; + } + + else if ("/rosc/ServoState" == type_name) + { + try { + ti->addProtocol(orogen_transports::TYPELIB_MARSHALLER_ID, + rosc_ServoState_TypelibMarshaller(*m_registry)); + } + catch(std::runtime_error const& e) + { + log(Error) << "cannot register a typelib transport for " << type_name << endlog(); + log(Error) << " the following error occured:" << endlog(); + log(Error) << " " << e.what() << endlog(); + log(Error) << " the registry can be found at " << TYPEKIT_REGISTRY << endlog(); + return false; + } + return true; + } + + else if ("/rosc/TransferSpeedType" == type_name) + { + try { + ti->addProtocol(orogen_transports::TYPELIB_MARSHALLER_ID, + rosc_TransferSpeedType_TypelibMarshaller(*m_registry)); + } + catch(std::runtime_error const& e) + { + log(Error) << "cannot register a typelib transport for " << type_name << endlog(); + log(Error) << " the following error occured:" << endlog(); + log(Error) << " " << e.what() << endlog(); + log(Error) << " the registry can be found at " << TYPEKIT_REGISTRY << endlog(); + return false; + } + return true; + } + + else if ("/std/vector" == type_name) + { + try { + ti->addProtocol(orogen_transports::TYPELIB_MARSHALLER_ID, + std_vector_LT__std_string_GT__TypelibMarshaller(*m_registry)); + } + catch(std::runtime_error const& e) + { + log(Error) << "cannot register a typelib transport for " << type_name << endlog(); + log(Error) << " the following error occured:" << endlog(); + log(Error) << " " << e.what() << endlog(); + log(Error) << " the registry can be found at " << TYPEKIT_REGISTRY << endlog(); + return false; + } + return true; + } + + return false; +} + +ORO_TYPEKIT_PLUGIN(orogen_typekits::robot_brainTypelibTransportPlugin); + diff --git a/typekit/transports/typelib/TransportPlugin.hpp b/typekit/transports/typelib/TransportPlugin.hpp new file mode 100644 index 0000000000000000000000000000000000000000..d8bee1b087f734595d3ef7e19c6ee3f50ad7ce0a --- /dev/null +++ b/typekit/transports/typelib/TransportPlugin.hpp @@ -0,0 +1,36 @@ +/* Generated from orogen/lib/orogen/templates/typekit/typelib/TransportPlugin.hpp */ + +#ifndef __OROGEN_GENERATED_ROBOT_BRAIN_TYPELIB_PLUGIN_HPP +#define __OROGEN_GENERATED_ROBOT_BRAIN_TYPELIB_PLUGIN_HPP + +#include + +namespace Typelib +{ + // Forward declaration for the plugin + class Registry; +} + +namespace orogen_typekits { + class robot_brainTypelibTransportPlugin + : public orogen_transports::TypelibTransportPlugin + { + public: + robot_brainTypelibTransportPlugin(); + virtual bool registerTransport(std::string type_name, RTT::types::TypeInfo* ti); + + /** Called by orogen_transports::TypelibTransportPlugin to get the path + * to the registry. It has to have a different name than the static + * method below + */ + virtual std::string getTlbPath() const; + + /** Returns the path to the .tlb file for this typekit */ + static std::string getTypelibRegistryPath(); + }; + + extern robot_brainTypelibTransportPlugin robot_brainTypelibTransport; +} + +#endif + diff --git a/typekit/transports/typelib/__rosc__Arm_pos___rosc__AxisNum.cpp b/typekit/transports/typelib/__rosc__Arm_pos___rosc__AxisNum.cpp new file mode 100644 index 0000000000000000000000000000000000000000..65cc300d81863cdecbc72607f441685193438d8b --- /dev/null +++ b/typekit/transports/typelib/__rosc__Arm_pos___rosc__AxisNum.cpp @@ -0,0 +1,27 @@ +/* Generated from orogen/lib/orogen/templates/typekit/typelib/Type.cpp */ + +#include +#include +#include "transports/typelib/Registration.hpp" + +orogen_transports::TypelibMarshallerBase* orogen_typekits::rosc_Arm_pos_TypelibMarshaller(Typelib::Registry const& registry) +{ + return new orogen_transports::TypelibMarshaller< ::rosc::Arm_pos >("/rosc/Arm_pos", registry); +} + + + + +/* Generated from orogen/lib/orogen/templates/typekit/typelib/Type.cpp */ + +#include +#include +#include "transports/typelib/Registration.hpp" + +orogen_transports::TypelibMarshallerBase* orogen_typekits::rosc_AxisNum_TypelibMarshaller(Typelib::Registry const& registry) +{ + return new orogen_transports::TypelibMarshaller< ::rosc::AxisNum >("/rosc/AxisNum", registry); +} + + + diff --git a/typekit/transports/typelib/__rosc__CommandExecResult___rosc__CommandType.cpp b/typekit/transports/typelib/__rosc__CommandExecResult___rosc__CommandType.cpp new file mode 100644 index 0000000000000000000000000000000000000000..382c2bbf79d2c0aa43d059bc2fdc66c526014195 --- /dev/null +++ b/typekit/transports/typelib/__rosc__CommandExecResult___rosc__CommandType.cpp @@ -0,0 +1,27 @@ +/* Generated from orogen/lib/orogen/templates/typekit/typelib/Type.cpp */ + +#include +#include +#include "transports/typelib/Registration.hpp" + +orogen_transports::TypelibMarshallerBase* orogen_typekits::rosc_CommandExecResult_TypelibMarshaller(Typelib::Registry const& registry) +{ + return new orogen_transports::TypelibMarshaller< ::rosc::CommandExecResult >("/rosc/CommandExecResult", registry); +} + + + + +/* Generated from orogen/lib/orogen/templates/typekit/typelib/Type.cpp */ + +#include +#include +#include "transports/typelib/Registration.hpp" + +orogen_transports::TypelibMarshallerBase* orogen_typekits::rosc_CommandType_TypelibMarshaller(Typelib::Registry const& registry) +{ + return new orogen_transports::TypelibMarshaller< ::rosc::CommandType >("/rosc/CommandType", registry); +} + + + diff --git a/typekit/transports/typelib/__rosc__DigitIOFrame___rosc__EncoderFrame.cpp b/typekit/transports/typelib/__rosc__DigitIOFrame___rosc__EncoderFrame.cpp new file mode 100644 index 0000000000000000000000000000000000000000..f494c4088d1d8f54fc20292bd0aae56850a79b29 --- /dev/null +++ b/typekit/transports/typelib/__rosc__DigitIOFrame___rosc__EncoderFrame.cpp @@ -0,0 +1,27 @@ +/* Generated from orogen/lib/orogen/templates/typekit/typelib/Type.cpp */ + +#include +#include +#include "transports/typelib/Registration.hpp" + +orogen_transports::TypelibMarshallerBase* orogen_typekits::rosc_DigitIOFrame_TypelibMarshaller(Typelib::Registry const& registry) +{ + return new orogen_transports::TypelibMarshaller< ::rosc::DigitIOFrame >("/rosc/DigitIOFrame", registry); +} + + + + +/* Generated from orogen/lib/orogen/templates/typekit/typelib/Type.cpp */ + +#include +#include +#include "transports/typelib/Registration.hpp" + +orogen_transports::TypelibMarshallerBase* orogen_typekits::rosc_EncoderFrame_TypelibMarshaller(Typelib::Registry const& registry) +{ + return new orogen_transports::TypelibMarshaller< ::rosc::EncoderFrame >("/rosc/EncoderFrame", registry); +} + + + diff --git a/typekit/transports/typelib/__rosc__EthercatCtlFrame___rosc__EthercatFrameSendStatus.cpp b/typekit/transports/typelib/__rosc__EthercatCtlFrame___rosc__EthercatFrameSendStatus.cpp new file mode 100644 index 0000000000000000000000000000000000000000..b34df61febf24664b94d29dc83afdf9d27b14160 --- /dev/null +++ b/typekit/transports/typelib/__rosc__EthercatCtlFrame___rosc__EthercatFrameSendStatus.cpp @@ -0,0 +1,27 @@ +/* Generated from orogen/lib/orogen/templates/typekit/typelib/Type.cpp */ + +#include +#include +#include "transports/typelib/Registration.hpp" + +orogen_transports::TypelibMarshallerBase* orogen_typekits::rosc_EthercatCtlFrame_TypelibMarshaller(Typelib::Registry const& registry) +{ + return new orogen_transports::TypelibMarshaller< ::rosc::EthercatCtlFrame >("/rosc/EthercatCtlFrame", registry); +} + + + + +/* Generated from orogen/lib/orogen/templates/typekit/typelib/Type.cpp */ + +#include +#include +#include "transports/typelib/Registration.hpp" + +orogen_transports::TypelibMarshallerBase* orogen_typekits::rosc_EthercatFrameSendStatus_TypelibMarshaller(Typelib::Registry const& registry) +{ + return new orogen_transports::TypelibMarshaller< ::rosc::EthercatFrameSendStatus >("/rosc/EthercatFrameSendStatus", registry); +} + + + diff --git a/typekit/transports/typelib/__rosc__EthercatStatusFrame___rosc__ExecStatus.cpp b/typekit/transports/typelib/__rosc__EthercatStatusFrame___rosc__ExecStatus.cpp new file mode 100644 index 0000000000000000000000000000000000000000..0aaddd4b0ebafbcb71c707dc0d04b92e82ce6b32 --- /dev/null +++ b/typekit/transports/typelib/__rosc__EthercatStatusFrame___rosc__ExecStatus.cpp @@ -0,0 +1,27 @@ +/* Generated from orogen/lib/orogen/templates/typekit/typelib/Type.cpp */ + +#include +#include +#include "transports/typelib/Registration.hpp" + +orogen_transports::TypelibMarshallerBase* orogen_typekits::rosc_EthercatStatusFrame_TypelibMarshaller(Typelib::Registry const& registry) +{ + return new orogen_transports::TypelibMarshaller< ::rosc::EthercatStatusFrame >("/rosc/EthercatStatusFrame", registry); +} + + + + +/* Generated from orogen/lib/orogen/templates/typekit/typelib/Type.cpp */ + +#include +#include +#include "transports/typelib/Registration.hpp" + +orogen_transports::TypelibMarshallerBase* orogen_typekits::rosc_ExecStatus_TypelibMarshaller(Typelib::Registry const& registry) +{ + return new orogen_transports::TypelibMarshaller< ::rosc::ExecStatus >("/rosc/ExecStatus", registry); +} + + + diff --git a/typekit/transports/typelib/__rosc__MotionMode___rosc__ServoState.cpp b/typekit/transports/typelib/__rosc__MotionMode___rosc__ServoState.cpp new file mode 100644 index 0000000000000000000000000000000000000000..0311de8340de11c0ddc1c748baef669a13805a2b --- /dev/null +++ b/typekit/transports/typelib/__rosc__MotionMode___rosc__ServoState.cpp @@ -0,0 +1,27 @@ +/* Generated from orogen/lib/orogen/templates/typekit/typelib/Type.cpp */ + +#include +#include +#include "transports/typelib/Registration.hpp" + +orogen_transports::TypelibMarshallerBase* orogen_typekits::rosc_MotionMode_TypelibMarshaller(Typelib::Registry const& registry) +{ + return new orogen_transports::TypelibMarshaller< ::rosc::MotionMode >("/rosc/MotionMode", registry); +} + + + + +/* Generated from orogen/lib/orogen/templates/typekit/typelib/Type.cpp */ + +#include +#include +#include "transports/typelib/Registration.hpp" + +orogen_transports::TypelibMarshallerBase* orogen_typekits::rosc_ServoState_TypelibMarshaller(Typelib::Registry const& registry) +{ + return new orogen_transports::TypelibMarshaller< ::rosc::ServoState >("/rosc/ServoState", registry); +} + + + diff --git a/typekit/transports/typelib/__rosc__TransferSpeedType___std__vector____std__string__.cpp b/typekit/transports/typelib/__rosc__TransferSpeedType___std__vector____std__string__.cpp new file mode 100644 index 0000000000000000000000000000000000000000..3663d678b06619193ac8ca5aa433f71c49d1f206 --- /dev/null +++ b/typekit/transports/typelib/__rosc__TransferSpeedType___std__vector____std__string__.cpp @@ -0,0 +1,29 @@ +/* Generated from orogen/lib/orogen/templates/typekit/typelib/Type.cpp */ + +#include +#include +#include "transports/typelib/Registration.hpp" + +orogen_transports::TypelibMarshallerBase* orogen_typekits::rosc_TransferSpeedType_TypelibMarshaller(Typelib::Registry const& registry) +{ + return new orogen_transports::TypelibMarshaller< ::rosc::TransferSpeedType >("/rosc/TransferSpeedType", registry); +} + + + + +/* Generated from orogen/lib/orogen/templates/typekit/typelib/Type.cpp */ + +#include +#include +#include +#include +#include "transports/typelib/Registration.hpp" + +orogen_transports::TypelibMarshallerBase* orogen_typekits::std_vector_LT__std_string_GT__TypelibMarshaller(Typelib::Registry const& registry) +{ + return new orogen_transports::TypelibMarshaller< ::std::vector< ::std::string > >("/std/vector", registry); +} + + + diff --git a/typekit/transports/typelib/robot_brain-transport-typelib.pc.in b/typekit/transports/typelib/robot_brain-transport-typelib.pc.in new file mode 100644 index 0000000000000000000000000000000000000000..66c548c6f673928585e4ab03f735a76334276b56 --- /dev/null +++ b/typekit/transports/typelib/robot_brain-transport-typelib.pc.in @@ -0,0 +1,17 @@ +# Generated from orogen/lib/orogen/templates/typekit/typelib/transport-typelib.pc + +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=${prefix} +libdir=${prefix}/lib/orocos@OROCOS_PKG_DIR@/types +includedir=${prefix}/include/orocos + +project_name=robot_brain +type_registry=@TYPEKIT_REGISTRY@ + +Name: robot_brainTypelibTransport +Version: +Requires: rtt_typelib-@OROCOS_TARGET@ +Description: robot_brain types support for the Orocos type system +Libs: -L${libdir} -l@libname_typelib@ +Cflags: -I${includedir} + diff --git a/typekit/type_info/Registration.hpp b/typekit/type_info/Registration.hpp new file mode 100644 index 0000000000000000000000000000000000000000..4288d2d438962eee7e084990e3e326c308cf301d --- /dev/null +++ b/typekit/type_info/Registration.hpp @@ -0,0 +1,121 @@ +/* Generated from orogen/lib/orogen/templates/typekit/type_info/TypeInfo.hpp */ + +#ifndef ROBOT_BRAIN_TYPE_INFO_HPP +#define ROBOT_BRAIN_TYPE_INFO_HPP + +namespace orogen_typekits { + + + /** Creates and returns a TypeInfo object for double[6] */ + RTT::types::TypeInfoGenerator* double_ArrayTypeInfo(); + + + + /** Creates and returns a TypeInfo object for double[9] */ + RTT::types::TypeInfoGenerator* double_ArrayTypeInfo(); + + + + /** Creates and returns a TypeInfo object for int16_t[9] */ + RTT::types::TypeInfoGenerator* int16_t_ArrayTypeInfo(); + + + + /** Creates and returns a TypeInfo object for int32_t[9] */ + RTT::types::TypeInfoGenerator* int32_t_ArrayTypeInfo(); + + + + /** Creates and returns a TypeInfo object for int8_t[100] */ + RTT::types::TypeInfoGenerator* int8_t_ArrayTypeInfo(); + + + + /** Creates and returns a TypeInfo object for int8_t[4] */ + RTT::types::TypeInfoGenerator* int8_t_ArrayTypeInfo(); + + + + /** Creates and returns a TypeInfo object for ::rosc::Arm_pos */ + RTT::types::TypeInfoGenerator* rosc_Arm_pos_TypeInfo(); + + + + /** Creates and returns a TypeInfo object for ::rosc::AxisNum */ + RTT::types::TypeInfoGenerator* rosc_AxisNum_TypeInfo(); + + + + /** Creates and returns a TypeInfo object for ::rosc::CommandExecResult */ + RTT::types::TypeInfoGenerator* rosc_CommandExecResult_TypeInfo(); + + + + /** Creates and returns a TypeInfo object for ::rosc::CommandType */ + RTT::types::TypeInfoGenerator* rosc_CommandType_TypeInfo(); + + + + /** Creates and returns a TypeInfo object for ::rosc::DigitIOFrame */ + RTT::types::TypeInfoGenerator* rosc_DigitIOFrame_TypeInfo(); + + + + /** Creates and returns a TypeInfo object for ::rosc::EncoderFrame */ + RTT::types::TypeInfoGenerator* rosc_EncoderFrame_TypeInfo(); + + + + /** Creates and returns a TypeInfo object for ::rosc::EthercatCtlFrame */ + RTT::types::TypeInfoGenerator* rosc_EthercatCtlFrame_TypeInfo(); + + + + /** Creates and returns a TypeInfo object for ::rosc::EthercatFrameSendStatus */ + RTT::types::TypeInfoGenerator* rosc_EthercatFrameSendStatus_TypeInfo(); + + + + /** Creates and returns a TypeInfo object for ::rosc::EthercatStatusFrame */ + RTT::types::TypeInfoGenerator* rosc_EthercatStatusFrame_TypeInfo(); + + + + /** Creates and returns a TypeInfo object for ::rosc::ExecStatus */ + RTT::types::TypeInfoGenerator* rosc_ExecStatus_TypeInfo(); + + + + /** Creates and returns a TypeInfo object for ::rosc::MotionMode */ + RTT::types::TypeInfoGenerator* rosc_MotionMode_TypeInfo(); + + + + /** Creates and returns a TypeInfo object for ::rosc::ServoState */ + RTT::types::TypeInfoGenerator* rosc_ServoState_TypeInfo(); + + + + /** Creates and returns a TypeInfo object for ::rosc::TransferSpeedType */ + RTT::types::TypeInfoGenerator* rosc_TransferSpeedType_TypeInfo(); + + + + /** Creates and returns a TypeInfo object for ::std::vector< ::std::string > */ + RTT::types::TypeInfoGenerator* std_vector_LT__std_string_GT__TypeInfo(); + + + + /** Creates and returns a TypeInfo object for uint16_t[9] */ + RTT::types::TypeInfoGenerator* uint16_t_ArrayTypeInfo(); + + + + /** Creates and returns a TypeInfo object for uint8_t[9] */ + RTT::types::TypeInfoGenerator* uint8_t_ArrayTypeInfo(); + + +} + +#endif + diff --git a/typekit/type_info/__rosc__Arm_pos___rosc__AxisNum.cpp b/typekit/type_info/__rosc__Arm_pos___rosc__AxisNum.cpp new file mode 100644 index 0000000000000000000000000000000000000000..dd66945a61fb6335105da425067da987967242d6 --- /dev/null +++ b/typekit/type_info/__rosc__Arm_pos___rosc__AxisNum.cpp @@ -0,0 +1,83 @@ +/* Generated from orogen/templates/typekit/type_info/Info.cpp */ + +#include +#include +#include + + + +namespace orogen_typekits { + struct rosc_Arm_posTypeInfo : + public RTT::types::StructTypeInfo< ::rosc::Arm_pos > + { + rosc_Arm_posTypeInfo() + : RTT::types::StructTypeInfo< ::rosc::Arm_pos >("/rosc/Arm_pos") {} + + + }; + + RTT::types::TypeInfoGenerator* rosc_Arm_pos_TypeInfo() + { return new rosc_Arm_posTypeInfo(); } + +} + +/* Generated from orogen/lib/orogen/templates/typekit/TemplateInstanciation.cpp */ + +#include +#include +#include +#include + +template class RTT::base::ChannelElement< ::rosc::Arm_pos >; +template class RTT::internal::DataSource< ::rosc::Arm_pos >; +template class RTT::internal::AssignableDataSource< ::rosc::Arm_pos >; +template class RTT::internal::ValueDataSource< ::rosc::Arm_pos >; +template class RTT::OutputPort< ::rosc::Arm_pos >; +template class RTT::InputPort< ::rosc::Arm_pos >; +template class RTT::Property< ::rosc::Arm_pos >; +template class RTT::Attribute< ::rosc::Arm_pos >; + + + + +/* Generated from orogen/templates/typekit/type_info/Info.cpp */ + +#include +#include +#include + + + +namespace orogen_typekits { + struct rosc_AxisNumTypeInfo : + public RTT::types::TemplateTypeInfo< ::rosc::AxisNum > + { + rosc_AxisNumTypeInfo() + : RTT::types::TemplateTypeInfo< ::rosc::AxisNum >("/rosc/AxisNum") {} + + + }; + + RTT::types::TypeInfoGenerator* rosc_AxisNum_TypeInfo() + { return new rosc_AxisNumTypeInfo(); } + +} + +/* Generated from orogen/lib/orogen/templates/typekit/TemplateInstanciation.cpp */ + +#include +#include +#include +#include + +template class RTT::base::ChannelElement< ::rosc::AxisNum >; +template class RTT::internal::DataSource< ::rosc::AxisNum >; +template class RTT::internal::AssignableDataSource< ::rosc::AxisNum >; +template class RTT::internal::ValueDataSource< ::rosc::AxisNum >; +template class RTT::OutputPort< ::rosc::AxisNum >; +template class RTT::InputPort< ::rosc::AxisNum >; +template class RTT::Property< ::rosc::AxisNum >; +template class RTT::Attribute< ::rosc::AxisNum >; + + + diff --git a/typekit/type_info/__rosc__CommandExecResult___rosc__CommandType.cpp b/typekit/type_info/__rosc__CommandExecResult___rosc__CommandType.cpp new file mode 100644 index 0000000000000000000000000000000000000000..9a186f3c7d2407de2c5040b43f38c703a4414c65 --- /dev/null +++ b/typekit/type_info/__rosc__CommandExecResult___rosc__CommandType.cpp @@ -0,0 +1,83 @@ +/* Generated from orogen/templates/typekit/type_info/Info.cpp */ + +#include +#include +#include + + + +namespace orogen_typekits { + struct rosc_CommandExecResultTypeInfo : + public RTT::types::StructTypeInfo< ::rosc::CommandExecResult > + { + rosc_CommandExecResultTypeInfo() + : RTT::types::StructTypeInfo< ::rosc::CommandExecResult >("/rosc/CommandExecResult") {} + + + }; + + RTT::types::TypeInfoGenerator* rosc_CommandExecResult_TypeInfo() + { return new rosc_CommandExecResultTypeInfo(); } + +} + +/* Generated from orogen/lib/orogen/templates/typekit/TemplateInstanciation.cpp */ + +#include +#include +#include +#include + +template class RTT::base::ChannelElement< ::rosc::CommandExecResult >; +template class RTT::internal::DataSource< ::rosc::CommandExecResult >; +template class RTT::internal::AssignableDataSource< ::rosc::CommandExecResult >; +template class RTT::internal::ValueDataSource< ::rosc::CommandExecResult >; +template class RTT::OutputPort< ::rosc::CommandExecResult >; +template class RTT::InputPort< ::rosc::CommandExecResult >; +template class RTT::Property< ::rosc::CommandExecResult >; +template class RTT::Attribute< ::rosc::CommandExecResult >; + + + + +/* Generated from orogen/templates/typekit/type_info/Info.cpp */ + +#include +#include +#include + + + +namespace orogen_typekits { + struct rosc_CommandTypeTypeInfo : + public RTT::types::TemplateTypeInfo< ::rosc::CommandType > + { + rosc_CommandTypeTypeInfo() + : RTT::types::TemplateTypeInfo< ::rosc::CommandType >("/rosc/CommandType") {} + + + }; + + RTT::types::TypeInfoGenerator* rosc_CommandType_TypeInfo() + { return new rosc_CommandTypeTypeInfo(); } + +} + +/* Generated from orogen/lib/orogen/templates/typekit/TemplateInstanciation.cpp */ + +#include +#include +#include +#include + +template class RTT::base::ChannelElement< ::rosc::CommandType >; +template class RTT::internal::DataSource< ::rosc::CommandType >; +template class RTT::internal::AssignableDataSource< ::rosc::CommandType >; +template class RTT::internal::ValueDataSource< ::rosc::CommandType >; +template class RTT::OutputPort< ::rosc::CommandType >; +template class RTT::InputPort< ::rosc::CommandType >; +template class RTT::Property< ::rosc::CommandType >; +template class RTT::Attribute< ::rosc::CommandType >; + + + diff --git a/typekit/type_info/__rosc__DigitIOFrame___rosc__EncoderFrame.cpp b/typekit/type_info/__rosc__DigitIOFrame___rosc__EncoderFrame.cpp new file mode 100644 index 0000000000000000000000000000000000000000..a651bec6173106fdff5f75a392be3af4f0b4da71 --- /dev/null +++ b/typekit/type_info/__rosc__DigitIOFrame___rosc__EncoderFrame.cpp @@ -0,0 +1,83 @@ +/* Generated from orogen/templates/typekit/type_info/Info.cpp */ + +#include +#include +#include + + + +namespace orogen_typekits { + struct rosc_DigitIOFrameTypeInfo : + public RTT::types::StructTypeInfo< ::rosc::DigitIOFrame > + { + rosc_DigitIOFrameTypeInfo() + : RTT::types::StructTypeInfo< ::rosc::DigitIOFrame >("/rosc/DigitIOFrame") {} + + + }; + + RTT::types::TypeInfoGenerator* rosc_DigitIOFrame_TypeInfo() + { return new rosc_DigitIOFrameTypeInfo(); } + +} + +/* Generated from orogen/lib/orogen/templates/typekit/TemplateInstanciation.cpp */ + +#include +#include +#include +#include + +template class RTT::base::ChannelElement< ::rosc::DigitIOFrame >; +template class RTT::internal::DataSource< ::rosc::DigitIOFrame >; +template class RTT::internal::AssignableDataSource< ::rosc::DigitIOFrame >; +template class RTT::internal::ValueDataSource< ::rosc::DigitIOFrame >; +template class RTT::OutputPort< ::rosc::DigitIOFrame >; +template class RTT::InputPort< ::rosc::DigitIOFrame >; +template class RTT::Property< ::rosc::DigitIOFrame >; +template class RTT::Attribute< ::rosc::DigitIOFrame >; + + + + +/* Generated from orogen/templates/typekit/type_info/Info.cpp */ + +#include +#include +#include + + + +namespace orogen_typekits { + struct rosc_EncoderFrameTypeInfo : + public RTT::types::StructTypeInfo< ::rosc::EncoderFrame > + { + rosc_EncoderFrameTypeInfo() + : RTT::types::StructTypeInfo< ::rosc::EncoderFrame >("/rosc/EncoderFrame") {} + + + }; + + RTT::types::TypeInfoGenerator* rosc_EncoderFrame_TypeInfo() + { return new rosc_EncoderFrameTypeInfo(); } + +} + +/* Generated from orogen/lib/orogen/templates/typekit/TemplateInstanciation.cpp */ + +#include +#include +#include +#include + +template class RTT::base::ChannelElement< ::rosc::EncoderFrame >; +template class RTT::internal::DataSource< ::rosc::EncoderFrame >; +template class RTT::internal::AssignableDataSource< ::rosc::EncoderFrame >; +template class RTT::internal::ValueDataSource< ::rosc::EncoderFrame >; +template class RTT::OutputPort< ::rosc::EncoderFrame >; +template class RTT::InputPort< ::rosc::EncoderFrame >; +template class RTT::Property< ::rosc::EncoderFrame >; +template class RTT::Attribute< ::rosc::EncoderFrame >; + + + diff --git a/typekit/type_info/__rosc__EthercatCtlFrame___rosc__EthercatFrameSendStatus.cpp b/typekit/type_info/__rosc__EthercatCtlFrame___rosc__EthercatFrameSendStatus.cpp new file mode 100644 index 0000000000000000000000000000000000000000..f4fefc63f470f1706cc6e41f5648d903a9836eef --- /dev/null +++ b/typekit/type_info/__rosc__EthercatCtlFrame___rosc__EthercatFrameSendStatus.cpp @@ -0,0 +1,83 @@ +/* Generated from orogen/templates/typekit/type_info/Info.cpp */ + +#include +#include +#include + + + +namespace orogen_typekits { + struct rosc_EthercatCtlFrameTypeInfo : + public RTT::types::StructTypeInfo< ::rosc::EthercatCtlFrame > + { + rosc_EthercatCtlFrameTypeInfo() + : RTT::types::StructTypeInfo< ::rosc::EthercatCtlFrame >("/rosc/EthercatCtlFrame") {} + + + }; + + RTT::types::TypeInfoGenerator* rosc_EthercatCtlFrame_TypeInfo() + { return new rosc_EthercatCtlFrameTypeInfo(); } + +} + +/* Generated from orogen/lib/orogen/templates/typekit/TemplateInstanciation.cpp */ + +#include +#include +#include +#include + +template class RTT::base::ChannelElement< ::rosc::EthercatCtlFrame >; +template class RTT::internal::DataSource< ::rosc::EthercatCtlFrame >; +template class RTT::internal::AssignableDataSource< ::rosc::EthercatCtlFrame >; +template class RTT::internal::ValueDataSource< ::rosc::EthercatCtlFrame >; +template class RTT::OutputPort< ::rosc::EthercatCtlFrame >; +template class RTT::InputPort< ::rosc::EthercatCtlFrame >; +template class RTT::Property< ::rosc::EthercatCtlFrame >; +template class RTT::Attribute< ::rosc::EthercatCtlFrame >; + + + + +/* Generated from orogen/templates/typekit/type_info/Info.cpp */ + +#include +#include +#include + + + +namespace orogen_typekits { + struct rosc_EthercatFrameSendStatusTypeInfo : + public RTT::types::TemplateTypeInfo< ::rosc::EthercatFrameSendStatus > + { + rosc_EthercatFrameSendStatusTypeInfo() + : RTT::types::TemplateTypeInfo< ::rosc::EthercatFrameSendStatus >("/rosc/EthercatFrameSendStatus") {} + + + }; + + RTT::types::TypeInfoGenerator* rosc_EthercatFrameSendStatus_TypeInfo() + { return new rosc_EthercatFrameSendStatusTypeInfo(); } + +} + +/* Generated from orogen/lib/orogen/templates/typekit/TemplateInstanciation.cpp */ + +#include +#include +#include +#include + +template class RTT::base::ChannelElement< ::rosc::EthercatFrameSendStatus >; +template class RTT::internal::DataSource< ::rosc::EthercatFrameSendStatus >; +template class RTT::internal::AssignableDataSource< ::rosc::EthercatFrameSendStatus >; +template class RTT::internal::ValueDataSource< ::rosc::EthercatFrameSendStatus >; +template class RTT::OutputPort< ::rosc::EthercatFrameSendStatus >; +template class RTT::InputPort< ::rosc::EthercatFrameSendStatus >; +template class RTT::Property< ::rosc::EthercatFrameSendStatus >; +template class RTT::Attribute< ::rosc::EthercatFrameSendStatus >; + + + diff --git a/typekit/type_info/__rosc__EthercatStatusFrame___rosc__ExecStatus.cpp b/typekit/type_info/__rosc__EthercatStatusFrame___rosc__ExecStatus.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d8194e340fd782eb1f2bba645c02cec35373abb8 --- /dev/null +++ b/typekit/type_info/__rosc__EthercatStatusFrame___rosc__ExecStatus.cpp @@ -0,0 +1,83 @@ +/* Generated from orogen/templates/typekit/type_info/Info.cpp */ + +#include +#include +#include + + + +namespace orogen_typekits { + struct rosc_EthercatStatusFrameTypeInfo : + public RTT::types::StructTypeInfo< ::rosc::EthercatStatusFrame > + { + rosc_EthercatStatusFrameTypeInfo() + : RTT::types::StructTypeInfo< ::rosc::EthercatStatusFrame >("/rosc/EthercatStatusFrame") {} + + + }; + + RTT::types::TypeInfoGenerator* rosc_EthercatStatusFrame_TypeInfo() + { return new rosc_EthercatStatusFrameTypeInfo(); } + +} + +/* Generated from orogen/lib/orogen/templates/typekit/TemplateInstanciation.cpp */ + +#include +#include +#include +#include + +template class RTT::base::ChannelElement< ::rosc::EthercatStatusFrame >; +template class RTT::internal::DataSource< ::rosc::EthercatStatusFrame >; +template class RTT::internal::AssignableDataSource< ::rosc::EthercatStatusFrame >; +template class RTT::internal::ValueDataSource< ::rosc::EthercatStatusFrame >; +template class RTT::OutputPort< ::rosc::EthercatStatusFrame >; +template class RTT::InputPort< ::rosc::EthercatStatusFrame >; +template class RTT::Property< ::rosc::EthercatStatusFrame >; +template class RTT::Attribute< ::rosc::EthercatStatusFrame >; + + + + +/* Generated from orogen/templates/typekit/type_info/Info.cpp */ + +#include +#include +#include + + + +namespace orogen_typekits { + struct rosc_ExecStatusTypeInfo : + public RTT::types::TemplateTypeInfo< ::rosc::ExecStatus > + { + rosc_ExecStatusTypeInfo() + : RTT::types::TemplateTypeInfo< ::rosc::ExecStatus >("/rosc/ExecStatus") {} + + + }; + + RTT::types::TypeInfoGenerator* rosc_ExecStatus_TypeInfo() + { return new rosc_ExecStatusTypeInfo(); } + +} + +/* Generated from orogen/lib/orogen/templates/typekit/TemplateInstanciation.cpp */ + +#include +#include +#include +#include + +template class RTT::base::ChannelElement< ::rosc::ExecStatus >; +template class RTT::internal::DataSource< ::rosc::ExecStatus >; +template class RTT::internal::AssignableDataSource< ::rosc::ExecStatus >; +template class RTT::internal::ValueDataSource< ::rosc::ExecStatus >; +template class RTT::OutputPort< ::rosc::ExecStatus >; +template class RTT::InputPort< ::rosc::ExecStatus >; +template class RTT::Property< ::rosc::ExecStatus >; +template class RTT::Attribute< ::rosc::ExecStatus >; + + + diff --git a/typekit/type_info/__rosc__MotionMode___rosc__ServoState.cpp b/typekit/type_info/__rosc__MotionMode___rosc__ServoState.cpp new file mode 100644 index 0000000000000000000000000000000000000000..8e02ace4f1722ebb54c9f52a4b83f0e746d9808a --- /dev/null +++ b/typekit/type_info/__rosc__MotionMode___rosc__ServoState.cpp @@ -0,0 +1,83 @@ +/* Generated from orogen/templates/typekit/type_info/Info.cpp */ + +#include +#include +#include + + + +namespace orogen_typekits { + struct rosc_MotionModeTypeInfo : + public RTT::types::TemplateTypeInfo< ::rosc::MotionMode > + { + rosc_MotionModeTypeInfo() + : RTT::types::TemplateTypeInfo< ::rosc::MotionMode >("/rosc/MotionMode") {} + + + }; + + RTT::types::TypeInfoGenerator* rosc_MotionMode_TypeInfo() + { return new rosc_MotionModeTypeInfo(); } + +} + +/* Generated from orogen/lib/orogen/templates/typekit/TemplateInstanciation.cpp */ + +#include +#include +#include +#include + +template class RTT::base::ChannelElement< ::rosc::MotionMode >; +template class RTT::internal::DataSource< ::rosc::MotionMode >; +template class RTT::internal::AssignableDataSource< ::rosc::MotionMode >; +template class RTT::internal::ValueDataSource< ::rosc::MotionMode >; +template class RTT::OutputPort< ::rosc::MotionMode >; +template class RTT::InputPort< ::rosc::MotionMode >; +template class RTT::Property< ::rosc::MotionMode >; +template class RTT::Attribute< ::rosc::MotionMode >; + + + + +/* Generated from orogen/templates/typekit/type_info/Info.cpp */ + +#include +#include +#include + + + +namespace orogen_typekits { + struct rosc_ServoStateTypeInfo : + public RTT::types::TemplateTypeInfo< ::rosc::ServoState > + { + rosc_ServoStateTypeInfo() + : RTT::types::TemplateTypeInfo< ::rosc::ServoState >("/rosc/ServoState") {} + + + }; + + RTT::types::TypeInfoGenerator* rosc_ServoState_TypeInfo() + { return new rosc_ServoStateTypeInfo(); } + +} + +/* Generated from orogen/lib/orogen/templates/typekit/TemplateInstanciation.cpp */ + +#include +#include +#include +#include + +template class RTT::base::ChannelElement< ::rosc::ServoState >; +template class RTT::internal::DataSource< ::rosc::ServoState >; +template class RTT::internal::AssignableDataSource< ::rosc::ServoState >; +template class RTT::internal::ValueDataSource< ::rosc::ServoState >; +template class RTT::OutputPort< ::rosc::ServoState >; +template class RTT::InputPort< ::rosc::ServoState >; +template class RTT::Property< ::rosc::ServoState >; +template class RTT::Attribute< ::rosc::ServoState >; + + + diff --git a/typekit/type_info/__rosc__TransferSpeedType___std__vector____std__string__.cpp b/typekit/type_info/__rosc__TransferSpeedType___std__vector____std__string__.cpp new file mode 100644 index 0000000000000000000000000000000000000000..59a696e5c4aed0c6c46b2c3ed75c68892d025351 --- /dev/null +++ b/typekit/type_info/__rosc__TransferSpeedType___std__vector____std__string__.cpp @@ -0,0 +1,85 @@ +/* Generated from orogen/templates/typekit/type_info/Info.cpp */ + +#include +#include +#include + + + +namespace orogen_typekits { + struct rosc_TransferSpeedTypeTypeInfo : + public RTT::types::TemplateTypeInfo< ::rosc::TransferSpeedType > + { + rosc_TransferSpeedTypeTypeInfo() + : RTT::types::TemplateTypeInfo< ::rosc::TransferSpeedType >("/rosc/TransferSpeedType") {} + + + }; + + RTT::types::TypeInfoGenerator* rosc_TransferSpeedType_TypeInfo() + { return new rosc_TransferSpeedTypeTypeInfo(); } + +} + +/* Generated from orogen/lib/orogen/templates/typekit/TemplateInstanciation.cpp */ + +#include +#include +#include +#include + +template class RTT::base::ChannelElement< ::rosc::TransferSpeedType >; +template class RTT::internal::DataSource< ::rosc::TransferSpeedType >; +template class RTT::internal::AssignableDataSource< ::rosc::TransferSpeedType >; +template class RTT::internal::ValueDataSource< ::rosc::TransferSpeedType >; +template class RTT::OutputPort< ::rosc::TransferSpeedType >; +template class RTT::InputPort< ::rosc::TransferSpeedType >; +template class RTT::Property< ::rosc::TransferSpeedType >; +template class RTT::Attribute< ::rosc::TransferSpeedType >; + + + + +/* Generated from orogen/templates/typekit/type_info/Info.cpp */ + +#include +#include +#include +#include +#include + + + +namespace orogen_typekits { + struct std_vector_LT__std_string_GT_TypeInfo : + public RTT::types::SequenceTypeInfo< ::std::vector< ::std::string > > + { + std_vector_LT__std_string_GT_TypeInfo() + : RTT::types::SequenceTypeInfo< ::std::vector< ::std::string > >("/std/vector") {} + + + }; + + RTT::types::TypeInfoGenerator* std_vector_LT__std_string_GT__TypeInfo() + { return new std_vector_LT__std_string_GT_TypeInfo(); } + +} + +/* Generated from orogen/lib/orogen/templates/typekit/TemplateInstanciation.cpp */ + +#include +#include +#include +#include + +template class RTT::base::ChannelElement< ::std::vector< ::std::string > >; +template class RTT::internal::DataSource< ::std::vector< ::std::string > >; +template class RTT::internal::AssignableDataSource< ::std::vector< ::std::string > >; +template class RTT::internal::ValueDataSource< ::std::vector< ::std::string > >; +template class RTT::OutputPort< ::std::vector< ::std::string > >; +template class RTT::InputPort< ::std::vector< ::std::string > >; +template class RTT::Property< ::std::vector< ::std::string > >; +template class RTT::Attribute< ::std::vector< ::std::string > >; + + + diff --git a/typekit/type_info/boost__int16_t[]_boost__int32_t[].cpp b/typekit/type_info/boost__int16_t[]_boost__int32_t[].cpp new file mode 100644 index 0000000000000000000000000000000000000000..62fcd9eb532d6991646151d1961531fda7bd7564 --- /dev/null +++ b/typekit/type_info/boost__int16_t[]_boost__int32_t[].cpp @@ -0,0 +1,45 @@ +/* Generated from orogen/lib/orogen/templates/typekit/type_info/ArrayInfo.cpp */ + +#include +#include +#include +#include + + + +namespace orogen_typekits { + struct int16_tArrayTypeInfo : + public RTT::types::CArrayTypeInfo< RTT::internal::carray< boost::int16_t > > + { + int16_tArrayTypeInfo() + : RTT::types::CArrayTypeInfo< RTT::internal::carray< boost::int16_t > >("/int16_t[]") {} + }; + + RTT::types::TypeInfoGenerator* int16_t_ArrayTypeInfo() + { return new int16_tArrayTypeInfo(); } +} + + + +/* Generated from orogen/lib/orogen/templates/typekit/type_info/ArrayInfo.cpp */ + +#include +#include +#include +#include + + + +namespace orogen_typekits { + struct int32_tArrayTypeInfo : + public RTT::types::CArrayTypeInfo< RTT::internal::carray< boost::int32_t > > + { + int32_tArrayTypeInfo() + : RTT::types::CArrayTypeInfo< RTT::internal::carray< boost::int32_t > >("/int32_t[]") {} + }; + + RTT::types::TypeInfoGenerator* int32_t_ArrayTypeInfo() + { return new int32_tArrayTypeInfo(); } +} + + diff --git a/typekit/type_info/boost__int8_t[]_boost__uint16_t[].cpp b/typekit/type_info/boost__int8_t[]_boost__uint16_t[].cpp new file mode 100644 index 0000000000000000000000000000000000000000..3789c36b995b83761fbb941016d0ac10e723566c --- /dev/null +++ b/typekit/type_info/boost__int8_t[]_boost__uint16_t[].cpp @@ -0,0 +1,45 @@ +/* Generated from orogen/lib/orogen/templates/typekit/type_info/ArrayInfo.cpp */ + +#include +#include +#include +#include + + + +namespace orogen_typekits { + struct int8_tArrayTypeInfo : + public RTT::types::CArrayTypeInfo< RTT::internal::carray< boost::int8_t > > + { + int8_tArrayTypeInfo() + : RTT::types::CArrayTypeInfo< RTT::internal::carray< boost::int8_t > >("/int8_t[]") {} + }; + + RTT::types::TypeInfoGenerator* int8_t_ArrayTypeInfo() + { return new int8_tArrayTypeInfo(); } +} + + + +/* Generated from orogen/lib/orogen/templates/typekit/type_info/ArrayInfo.cpp */ + +#include +#include +#include +#include + + + +namespace orogen_typekits { + struct uint16_tArrayTypeInfo : + public RTT::types::CArrayTypeInfo< RTT::internal::carray< boost::uint16_t > > + { + uint16_tArrayTypeInfo() + : RTT::types::CArrayTypeInfo< RTT::internal::carray< boost::uint16_t > >("/uint16_t[]") {} + }; + + RTT::types::TypeInfoGenerator* uint16_t_ArrayTypeInfo() + { return new uint16_tArrayTypeInfo(); } +} + + diff --git a/typekit/type_info/boost__uint8_t[]_double[].cpp b/typekit/type_info/boost__uint8_t[]_double[].cpp new file mode 100644 index 0000000000000000000000000000000000000000..0b77e713bdb30344d93fc802d05740d872b89368 --- /dev/null +++ b/typekit/type_info/boost__uint8_t[]_double[].cpp @@ -0,0 +1,45 @@ +/* Generated from orogen/lib/orogen/templates/typekit/type_info/ArrayInfo.cpp */ + +#include +#include +#include +#include + + + +namespace orogen_typekits { + struct uint8_tArrayTypeInfo : + public RTT::types::CArrayTypeInfo< RTT::internal::carray< boost::uint8_t > > + { + uint8_tArrayTypeInfo() + : RTT::types::CArrayTypeInfo< RTT::internal::carray< boost::uint8_t > >("/uint8_t[]") {} + }; + + RTT::types::TypeInfoGenerator* uint8_t_ArrayTypeInfo() + { return new uint8_tArrayTypeInfo(); } +} + + + +/* Generated from orogen/lib/orogen/templates/typekit/type_info/ArrayInfo.cpp */ + + +#include +#include +#include + + + +namespace orogen_typekits { + struct doubleArrayTypeInfo : + public RTT::types::CArrayTypeInfo< RTT::internal::carray< double > > + { + doubleArrayTypeInfo() + : RTT::types::CArrayTypeInfo< RTT::internal::carray< double > >("/double[]") {} + }; + + RTT::types::TypeInfoGenerator* double_ArrayTypeInfo() + { return new doubleArrayTypeInfo(); } +} + + diff --git a/typekit/typekit b/typekit/typekit new file mode 120000 index 0000000000000000000000000000000000000000..f40499218e1a5e8da9e511a11687917459d4d3df --- /dev/null +++ b/typekit/typekit @@ -0,0 +1 @@ +../typekit \ No newline at end of file diff --git a/typekit/types/robot_brain/command_types.hpp b/typekit/types/robot_brain/command_types.hpp new file mode 120000 index 0000000000000000000000000000000000000000..f6618a87eff7ef851770f72a2fc0590feaa28a81 --- /dev/null +++ b/typekit/types/robot_brain/command_types.hpp @@ -0,0 +1 @@ +../../../include/robot_brain/command_types.hpp \ No newline at end of file diff --git a/typekit/types/robot_brain/ethercat_frame_types.hpp b/typekit/types/robot_brain/ethercat_frame_types.hpp new file mode 120000 index 0000000000000000000000000000000000000000..2437be0e85c4c4f30a9a09470e1384274349a741 --- /dev/null +++ b/typekit/types/robot_brain/ethercat_frame_types.hpp @@ -0,0 +1 @@ +../../../include/robot_brain/ethercat_frame_types.hpp \ No newline at end of file diff --git a/typekit/types/robot_brain/typekit/BoostSerialization.hpp b/typekit/types/robot_brain/typekit/BoostSerialization.hpp new file mode 100644 index 0000000000000000000000000000000000000000..8e6bcd00c26986c0de993a36c604e6e34d63e3f2 --- /dev/null +++ b/typekit/types/robot_brain/typekit/BoostSerialization.hpp @@ -0,0 +1,94 @@ +/* Generated from orogen/lib/orogen/templates/typekit/BoostSerialization.hpp */ + +#ifndef __OROGEN_GENERATED_ROBOT_BRAIN_BOOST_SERIALIZATION_HPP +#define __OROGEN_GENERATED_ROBOT_BRAIN_BOOST_SERIALIZATION_HPP + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +namespace boost +{ + namespace serialization + { + template + void serialize(Archive& a, ::rosc::Arm_pos& b, unsigned int version) + { + using boost::serialization::make_nvp; + a & make_nvp("Extension", b.Extension); +a & make_nvp("Rotation", b.Rotation); +a & make_nvp("Z_axis", b.Z_axis); + } + template + void serialize(Archive& a, ::rosc::CommandExecResult& b, unsigned int version) + { + using boost::serialization::make_nvp; + a & make_nvp("status", b.status); +a & make_nvp("tp", b.tp); +a & make_nvp("timestamp", b.timestamp); +a & make_nvp("responseParams", b.responseParams); +a & make_nvp("errcode", boost::serialization::make_array(b.errcode, 4)); + } + template + void serialize(Archive& a, ::rosc::DigitIOFrame& b, unsigned int version) + { + using boost::serialization::make_nvp; + a & make_nvp("digit_io_out", b.digit_io_out); + } + template + void serialize(Archive& a, ::rosc::EncoderFrame& b, unsigned int version) + { + using boost::serialization::make_nvp; + a & make_nvp("target_position", boost::serialization::make_array(b.target_position, 9)); +a & make_nvp("current_position", boost::serialization::make_array(b.current_position, 6)); +a & make_nvp("mesg", boost::serialization::make_array(b.mesg, 100)); +a & make_nvp("point_name", boost::serialization::make_array(b.point_name, 100)); +a & make_nvp("time_stamp", b.time_stamp); +a & make_nvp("al_state", b.al_state); +a & make_nvp("digit_io_in", b.digit_io_in); +a & make_nvp("status", b.status); +a & make_nvp("servo_state", b.servo_state); +a & make_nvp("mode", b.mode); + } + template + void serialize(Archive& a, ::rosc::EthercatCtlFrame& b, unsigned int version) + { + using boost::serialization::make_nvp; + a & make_nvp("operation_mode", boost::serialization::make_array(b.operation_mode, 9)); +a & make_nvp("ctrl_word", boost::serialization::make_array(b.ctrl_word, 9)); +a & make_nvp("target_position", boost::serialization::make_array(b.target_position, 9)); +a & make_nvp("digit_io_out", b.digit_io_out); + } + template + void serialize(Archive& a, ::rosc::EthercatStatusFrame& b, unsigned int version) + { + using boost::serialization::make_nvp; + a & make_nvp("operation_mode", boost::serialization::make_array(b.operation_mode, 9)); +a & make_nvp("ctrl_word", boost::serialization::make_array(b.ctrl_word, 9)); +a & make_nvp("target_position", boost::serialization::make_array(b.target_position, 9)); +a & make_nvp("status_word", boost::serialization::make_array(b.status_word, 9)); +a & make_nvp("current_position", boost::serialization::make_array(b.current_position, 9)); +a & make_nvp("current_torque", boost::serialization::make_array(b.current_torque, 9)); +a & make_nvp("last_position", boost::serialization::make_array(b.last_position, 9)); +a & make_nvp("error_code", boost::serialization::make_array(b.error_code, 9)); +a & make_nvp("modes_operation_display", boost::serialization::make_array(b.modes_operation_display, 9)); +a & make_nvp("digit_io_out", b.digit_io_out); +a & make_nvp("digit_io_in", b.digit_io_in); +a & make_nvp("ethercat_frame_send_status", b.ethercat_frame_send_status); +a & make_nvp("al_state", b.al_state); +a & make_nvp("data_flag", b.data_flag); + } + } +} + +#endif + diff --git a/typekit/types/robot_brain/typekit/Plugin.hpp b/typekit/types/robot_brain/typekit/Plugin.hpp new file mode 100644 index 0000000000000000000000000000000000000000..8bea1606ac2953514508c2a616f08121f8db4591 --- /dev/null +++ b/typekit/types/robot_brain/typekit/Plugin.hpp @@ -0,0 +1,32 @@ +/* Generated from orogen/lib/orogen/templates/typekit/Plugin.hpp */ + +#ifndef __OROGEN_GENERATED_ROBOT_BRAIN_TYPEKIT_HPP +#define __OROGEN_GENERATED_ROBOT_BRAIN_TYPEKIT_HPP + +#include + +namespace Typelib { + class Registry; +} + +namespace orogen_typekits { + class robot_brainTypekitPlugin + : public RTT::types::TypekitPlugin + { + Typelib::Registry* m_registry; + + public: + robot_brainTypekitPlugin(); + ~robot_brainTypekitPlugin(); + bool loadTypes(); + bool loadOperators(); + bool loadConstructors(); + std::string getName(); + }; + + extern robot_brainTypekitPlugin robot_brainTypekit; +} + +#endif + + diff --git a/typekit/types/robot_brain/typekit/Types.hpp b/typekit/types/robot_brain/typekit/Types.hpp new file mode 100644 index 0000000000000000000000000000000000000000..0bc70c37d77b5d7dd33621d0e6c29ddc42c17223 --- /dev/null +++ b/typekit/types/robot_brain/typekit/Types.hpp @@ -0,0 +1,319 @@ +/* Generated from orogen/lib/orogen/templates/typekit/Types.hpp */ + +#ifndef __OROGEN_GENERATED_ROBOT_BRAIN_TYPES_HPP +#define __OROGEN_GENERATED_ROBOT_BRAIN_TYPES_HPP + +#include +#include + +#ifdef ORO_CHANNEL_ELEMENT_HPP + extern template class RTT::base::ChannelElement< ::rosc::Arm_pos >; +#endif +#ifdef CORELIB_DATASOURCE_HPP + extern template class RTT::internal::DataSource< ::rosc::Arm_pos >; + extern template class RTT::internal::AssignableDataSource< ::rosc::Arm_pos >; +#endif +#ifdef ORO_CORELIB_DATASOURCES_HPP + extern template class RTT::internal::ValueDataSource< ::rosc::Arm_pos >; +#endif +#ifdef ORO_INPUT_PORT_HPP + extern template class RTT::OutputPort< ::rosc::Arm_pos >; +#endif +#ifdef ORO_OUTPUT_PORT_HPP + extern template class RTT::InputPort< ::rosc::Arm_pos >; +#endif +#ifdef ORO_PROPERTY_HPP + extern template class RTT::Property< ::rosc::Arm_pos >; +#endif +#ifdef ORO_CORELIB_ATTRIBUTE_HPP + extern template class RTT::Attribute< ::rosc::Arm_pos >; +#endif +#ifdef ORO_CHANNEL_ELEMENT_HPP + extern template class RTT::base::ChannelElement< ::rosc::AxisNum >; +#endif +#ifdef CORELIB_DATASOURCE_HPP + extern template class RTT::internal::DataSource< ::rosc::AxisNum >; + extern template class RTT::internal::AssignableDataSource< ::rosc::AxisNum >; +#endif +#ifdef ORO_CORELIB_DATASOURCES_HPP + extern template class RTT::internal::ValueDataSource< ::rosc::AxisNum >; +#endif +#ifdef ORO_INPUT_PORT_HPP + extern template class RTT::OutputPort< ::rosc::AxisNum >; +#endif +#ifdef ORO_OUTPUT_PORT_HPP + extern template class RTT::InputPort< ::rosc::AxisNum >; +#endif +#ifdef ORO_PROPERTY_HPP + extern template class RTT::Property< ::rosc::AxisNum >; +#endif +#ifdef ORO_CORELIB_ATTRIBUTE_HPP + extern template class RTT::Attribute< ::rosc::AxisNum >; +#endif +#ifdef ORO_CHANNEL_ELEMENT_HPP + extern template class RTT::base::ChannelElement< ::rosc::CommandExecResult >; +#endif +#ifdef CORELIB_DATASOURCE_HPP + extern template class RTT::internal::DataSource< ::rosc::CommandExecResult >; + extern template class RTT::internal::AssignableDataSource< ::rosc::CommandExecResult >; +#endif +#ifdef ORO_CORELIB_DATASOURCES_HPP + extern template class RTT::internal::ValueDataSource< ::rosc::CommandExecResult >; +#endif +#ifdef ORO_INPUT_PORT_HPP + extern template class RTT::OutputPort< ::rosc::CommandExecResult >; +#endif +#ifdef ORO_OUTPUT_PORT_HPP + extern template class RTT::InputPort< ::rosc::CommandExecResult >; +#endif +#ifdef ORO_PROPERTY_HPP + extern template class RTT::Property< ::rosc::CommandExecResult >; +#endif +#ifdef ORO_CORELIB_ATTRIBUTE_HPP + extern template class RTT::Attribute< ::rosc::CommandExecResult >; +#endif +#ifdef ORO_CHANNEL_ELEMENT_HPP + extern template class RTT::base::ChannelElement< ::rosc::CommandType >; +#endif +#ifdef CORELIB_DATASOURCE_HPP + extern template class RTT::internal::DataSource< ::rosc::CommandType >; + extern template class RTT::internal::AssignableDataSource< ::rosc::CommandType >; +#endif +#ifdef ORO_CORELIB_DATASOURCES_HPP + extern template class RTT::internal::ValueDataSource< ::rosc::CommandType >; +#endif +#ifdef ORO_INPUT_PORT_HPP + extern template class RTT::OutputPort< ::rosc::CommandType >; +#endif +#ifdef ORO_OUTPUT_PORT_HPP + extern template class RTT::InputPort< ::rosc::CommandType >; +#endif +#ifdef ORO_PROPERTY_HPP + extern template class RTT::Property< ::rosc::CommandType >; +#endif +#ifdef ORO_CORELIB_ATTRIBUTE_HPP + extern template class RTT::Attribute< ::rosc::CommandType >; +#endif +#ifdef ORO_CHANNEL_ELEMENT_HPP + extern template class RTT::base::ChannelElement< ::rosc::DigitIOFrame >; +#endif +#ifdef CORELIB_DATASOURCE_HPP + extern template class RTT::internal::DataSource< ::rosc::DigitIOFrame >; + extern template class RTT::internal::AssignableDataSource< ::rosc::DigitIOFrame >; +#endif +#ifdef ORO_CORELIB_DATASOURCES_HPP + extern template class RTT::internal::ValueDataSource< ::rosc::DigitIOFrame >; +#endif +#ifdef ORO_INPUT_PORT_HPP + extern template class RTT::OutputPort< ::rosc::DigitIOFrame >; +#endif +#ifdef ORO_OUTPUT_PORT_HPP + extern template class RTT::InputPort< ::rosc::DigitIOFrame >; +#endif +#ifdef ORO_PROPERTY_HPP + extern template class RTT::Property< ::rosc::DigitIOFrame >; +#endif +#ifdef ORO_CORELIB_ATTRIBUTE_HPP + extern template class RTT::Attribute< ::rosc::DigitIOFrame >; +#endif +#ifdef ORO_CHANNEL_ELEMENT_HPP + extern template class RTT::base::ChannelElement< ::rosc::EncoderFrame >; +#endif +#ifdef CORELIB_DATASOURCE_HPP + extern template class RTT::internal::DataSource< ::rosc::EncoderFrame >; + extern template class RTT::internal::AssignableDataSource< ::rosc::EncoderFrame >; +#endif +#ifdef ORO_CORELIB_DATASOURCES_HPP + extern template class RTT::internal::ValueDataSource< ::rosc::EncoderFrame >; +#endif +#ifdef ORO_INPUT_PORT_HPP + extern template class RTT::OutputPort< ::rosc::EncoderFrame >; +#endif +#ifdef ORO_OUTPUT_PORT_HPP + extern template class RTT::InputPort< ::rosc::EncoderFrame >; +#endif +#ifdef ORO_PROPERTY_HPP + extern template class RTT::Property< ::rosc::EncoderFrame >; +#endif +#ifdef ORO_CORELIB_ATTRIBUTE_HPP + extern template class RTT::Attribute< ::rosc::EncoderFrame >; +#endif +#ifdef ORO_CHANNEL_ELEMENT_HPP + extern template class RTT::base::ChannelElement< ::rosc::EthercatCtlFrame >; +#endif +#ifdef CORELIB_DATASOURCE_HPP + extern template class RTT::internal::DataSource< ::rosc::EthercatCtlFrame >; + extern template class RTT::internal::AssignableDataSource< ::rosc::EthercatCtlFrame >; +#endif +#ifdef ORO_CORELIB_DATASOURCES_HPP + extern template class RTT::internal::ValueDataSource< ::rosc::EthercatCtlFrame >; +#endif +#ifdef ORO_INPUT_PORT_HPP + extern template class RTT::OutputPort< ::rosc::EthercatCtlFrame >; +#endif +#ifdef ORO_OUTPUT_PORT_HPP + extern template class RTT::InputPort< ::rosc::EthercatCtlFrame >; +#endif +#ifdef ORO_PROPERTY_HPP + extern template class RTT::Property< ::rosc::EthercatCtlFrame >; +#endif +#ifdef ORO_CORELIB_ATTRIBUTE_HPP + extern template class RTT::Attribute< ::rosc::EthercatCtlFrame >; +#endif +#ifdef ORO_CHANNEL_ELEMENT_HPP + extern template class RTT::base::ChannelElement< ::rosc::EthercatFrameSendStatus >; +#endif +#ifdef CORELIB_DATASOURCE_HPP + extern template class RTT::internal::DataSource< ::rosc::EthercatFrameSendStatus >; + extern template class RTT::internal::AssignableDataSource< ::rosc::EthercatFrameSendStatus >; +#endif +#ifdef ORO_CORELIB_DATASOURCES_HPP + extern template class RTT::internal::ValueDataSource< ::rosc::EthercatFrameSendStatus >; +#endif +#ifdef ORO_INPUT_PORT_HPP + extern template class RTT::OutputPort< ::rosc::EthercatFrameSendStatus >; +#endif +#ifdef ORO_OUTPUT_PORT_HPP + extern template class RTT::InputPort< ::rosc::EthercatFrameSendStatus >; +#endif +#ifdef ORO_PROPERTY_HPP + extern template class RTT::Property< ::rosc::EthercatFrameSendStatus >; +#endif +#ifdef ORO_CORELIB_ATTRIBUTE_HPP + extern template class RTT::Attribute< ::rosc::EthercatFrameSendStatus >; +#endif +#ifdef ORO_CHANNEL_ELEMENT_HPP + extern template class RTT::base::ChannelElement< ::rosc::EthercatStatusFrame >; +#endif +#ifdef CORELIB_DATASOURCE_HPP + extern template class RTT::internal::DataSource< ::rosc::EthercatStatusFrame >; + extern template class RTT::internal::AssignableDataSource< ::rosc::EthercatStatusFrame >; +#endif +#ifdef ORO_CORELIB_DATASOURCES_HPP + extern template class RTT::internal::ValueDataSource< ::rosc::EthercatStatusFrame >; +#endif +#ifdef ORO_INPUT_PORT_HPP + extern template class RTT::OutputPort< ::rosc::EthercatStatusFrame >; +#endif +#ifdef ORO_OUTPUT_PORT_HPP + extern template class RTT::InputPort< ::rosc::EthercatStatusFrame >; +#endif +#ifdef ORO_PROPERTY_HPP + extern template class RTT::Property< ::rosc::EthercatStatusFrame >; +#endif +#ifdef ORO_CORELIB_ATTRIBUTE_HPP + extern template class RTT::Attribute< ::rosc::EthercatStatusFrame >; +#endif +#ifdef ORO_CHANNEL_ELEMENT_HPP + extern template class RTT::base::ChannelElement< ::rosc::ExecStatus >; +#endif +#ifdef CORELIB_DATASOURCE_HPP + extern template class RTT::internal::DataSource< ::rosc::ExecStatus >; + extern template class RTT::internal::AssignableDataSource< ::rosc::ExecStatus >; +#endif +#ifdef ORO_CORELIB_DATASOURCES_HPP + extern template class RTT::internal::ValueDataSource< ::rosc::ExecStatus >; +#endif +#ifdef ORO_INPUT_PORT_HPP + extern template class RTT::OutputPort< ::rosc::ExecStatus >; +#endif +#ifdef ORO_OUTPUT_PORT_HPP + extern template class RTT::InputPort< ::rosc::ExecStatus >; +#endif +#ifdef ORO_PROPERTY_HPP + extern template class RTT::Property< ::rosc::ExecStatus >; +#endif +#ifdef ORO_CORELIB_ATTRIBUTE_HPP + extern template class RTT::Attribute< ::rosc::ExecStatus >; +#endif +#ifdef ORO_CHANNEL_ELEMENT_HPP + extern template class RTT::base::ChannelElement< ::rosc::MotionMode >; +#endif +#ifdef CORELIB_DATASOURCE_HPP + extern template class RTT::internal::DataSource< ::rosc::MotionMode >; + extern template class RTT::internal::AssignableDataSource< ::rosc::MotionMode >; +#endif +#ifdef ORO_CORELIB_DATASOURCES_HPP + extern template class RTT::internal::ValueDataSource< ::rosc::MotionMode >; +#endif +#ifdef ORO_INPUT_PORT_HPP + extern template class RTT::OutputPort< ::rosc::MotionMode >; +#endif +#ifdef ORO_OUTPUT_PORT_HPP + extern template class RTT::InputPort< ::rosc::MotionMode >; +#endif +#ifdef ORO_PROPERTY_HPP + extern template class RTT::Property< ::rosc::MotionMode >; +#endif +#ifdef ORO_CORELIB_ATTRIBUTE_HPP + extern template class RTT::Attribute< ::rosc::MotionMode >; +#endif +#ifdef ORO_CHANNEL_ELEMENT_HPP + extern template class RTT::base::ChannelElement< ::rosc::ServoState >; +#endif +#ifdef CORELIB_DATASOURCE_HPP + extern template class RTT::internal::DataSource< ::rosc::ServoState >; + extern template class RTT::internal::AssignableDataSource< ::rosc::ServoState >; +#endif +#ifdef ORO_CORELIB_DATASOURCES_HPP + extern template class RTT::internal::ValueDataSource< ::rosc::ServoState >; +#endif +#ifdef ORO_INPUT_PORT_HPP + extern template class RTT::OutputPort< ::rosc::ServoState >; +#endif +#ifdef ORO_OUTPUT_PORT_HPP + extern template class RTT::InputPort< ::rosc::ServoState >; +#endif +#ifdef ORO_PROPERTY_HPP + extern template class RTT::Property< ::rosc::ServoState >; +#endif +#ifdef ORO_CORELIB_ATTRIBUTE_HPP + extern template class RTT::Attribute< ::rosc::ServoState >; +#endif +#ifdef ORO_CHANNEL_ELEMENT_HPP + extern template class RTT::base::ChannelElement< ::rosc::TransferSpeedType >; +#endif +#ifdef CORELIB_DATASOURCE_HPP + extern template class RTT::internal::DataSource< ::rosc::TransferSpeedType >; + extern template class RTT::internal::AssignableDataSource< ::rosc::TransferSpeedType >; +#endif +#ifdef ORO_CORELIB_DATASOURCES_HPP + extern template class RTT::internal::ValueDataSource< ::rosc::TransferSpeedType >; +#endif +#ifdef ORO_INPUT_PORT_HPP + extern template class RTT::OutputPort< ::rosc::TransferSpeedType >; +#endif +#ifdef ORO_OUTPUT_PORT_HPP + extern template class RTT::InputPort< ::rosc::TransferSpeedType >; +#endif +#ifdef ORO_PROPERTY_HPP + extern template class RTT::Property< ::rosc::TransferSpeedType >; +#endif +#ifdef ORO_CORELIB_ATTRIBUTE_HPP + extern template class RTT::Attribute< ::rosc::TransferSpeedType >; +#endif +#ifdef ORO_CHANNEL_ELEMENT_HPP + extern template class RTT::base::ChannelElement< ::std::vector< ::std::string > >; +#endif +#ifdef CORELIB_DATASOURCE_HPP + extern template class RTT::internal::DataSource< ::std::vector< ::std::string > >; + extern template class RTT::internal::AssignableDataSource< ::std::vector< ::std::string > >; +#endif +#ifdef ORO_CORELIB_DATASOURCES_HPP + extern template class RTT::internal::ValueDataSource< ::std::vector< ::std::string > >; +#endif +#ifdef ORO_INPUT_PORT_HPP + extern template class RTT::OutputPort< ::std::vector< ::std::string > >; +#endif +#ifdef ORO_OUTPUT_PORT_HPP + extern template class RTT::InputPort< ::std::vector< ::std::string > >; +#endif +#ifdef ORO_PROPERTY_HPP + extern template class RTT::Property< ::std::vector< ::std::string > >; +#endif +#ifdef ORO_CORELIB_ATTRIBUTE_HPP + extern template class RTT::Attribute< ::std::vector< ::std::string > >; +#endif + +#endif +