From 36c4e9d1705e5365af0b73f82f820455d6795c81 Mon Sep 17 00:00:00 2001 From: Dinesh Bolkensteyn Date: Tue, 12 Jul 2016 18:41:18 +0200 Subject: [PATCH] Remove Catkin dependency --- CMakeLists.txt | 49 ++++++++++++++++++++-------------------- cmake/serialConfig.cmake | 14 ++++++++++++ package.xml | 24 -------------------- 3 files changed, 38 insertions(+), 49 deletions(-) create mode 100644 cmake/serialConfig.cmake delete mode 100644 package.xml diff --git a/CMakeLists.txt b/CMakeLists.txt index 4256769..6dd7f18 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,29 +1,11 @@ cmake_minimum_required(VERSION 2.8.3) project(serial) -# Find catkin -find_package(catkin REQUIRED) - if(APPLE) find_library(IOKIT_LIBRARY IOKit) find_library(FOUNDATION_LIBRARY Foundation) endif() -if(UNIX AND NOT APPLE) - # If Linux, add rt and pthread - catkin_package( - LIBRARIES ${PROJECT_NAME} - INCLUDE_DIRS include - DEPENDS rt pthread - ) -else() - # Otherwise normal call - catkin_package( - LIBRARIES ${PROJECT_NAME} - INCLUDE_DIRS include - ) -endif() - ## Sources set(serial_SRCS src/serial.cc @@ -54,7 +36,7 @@ else() target_link_libraries(${PROJECT_NAME} setupapi) endif() -## Uncomment for example +## Add example project add_executable(serial_example examples/serial_example.cc) add_dependencies(serial_example ${PROJECT_NAME}) target_link_libraries(serial_example ${PROJECT_NAME}) @@ -62,17 +44,34 @@ target_link_libraries(serial_example ${PROJECT_NAME}) ## Include headers include_directories(include) +## Install +set(INSTALL_LIB_DIR lib) +set(INSTALL_INCLUDE_DIR include) +set(INSTALL_CMAKE_DIR share/serial/cmake) + ## Install executable install(TARGETS ${PROJECT_NAME} - ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + DESTINATION ${INSTALL_LIB_DIR} + EXPORT ${PROJECT_NAME}-targets ) ## Install headers install(FILES include/serial/serial.h include/serial/v8stdint.h - DESTINATION ${CATKIN_GLOBAL_INCLUDE_DESTINATION}/serial) + DESTINATION ${INSTALL_INCLUDE_DIR}/serial) + +## Install CMake files +install(EXPORT ${PROJECT_NAME}-targets DESTINATION ${INSTALL_CMAKE_DIR}) + +include(CMakePackageConfigHelpers) +write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Version.cmake + VERSION 1.2.1 + COMPATIBILITY AnyNewerVersion) + +install(FILES ${CMAKE_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Version.cmake + DESTINATION ${INSTALL_CMAKE_DIR}) ## Tests -if(CATKIN_ENABLE_TESTING) - add_subdirectory(tests) -endif() +# FIXME +#if(CATKIN_ENABLE_TESTING) +# add_subdirectory(tests) +#endif() diff --git a/cmake/serialConfig.cmake b/cmake/serialConfig.cmake new file mode 100644 index 0000000..88a03b9 --- /dev/null +++ b/cmake/serialConfig.cmake @@ -0,0 +1,14 @@ +# Usage: +# +# find_package(serial REQUIRED) +# include_directories(${serial_INCLUDE_DIRS}) +# target_link_libraries( serial) + +if(serial_CONFIG_INCLUDED) + return() +endif() +set(serial_CONFIG_INCLUDED TRUE) + +get_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +include(${SELF_DIR}/serial-targets.cmake) +get_filename_component(serial_INCLUDE_DIRS "${SELF_DIR}/../../../include" ABSOLUTE) diff --git a/package.xml b/package.xml deleted file mode 100644 index 70c2bb9..0000000 --- a/package.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - serial - 1.2.1 - - Serial is a cross-platform, simple to use library for using serial ports on computers. This library provides a C++, object oriented interface for interacting with RS-232 like devices on Linux and Windows. - - - William Woodall - - MIT - - http://wjwwood.github.com/serial/ - https://github.com/wjwwood/serial - https://github.com/wjwwood/serial/issues - - William Woodall - John Harrison - - catkin - - boost - -