From 8396d842f7519bba928a46af6c2e6c1e82ff70cf Mon Sep 17 00:00:00 2001 From: ahcorde Date: Tue, 31 May 2016 17:34:09 +0200 Subject: [PATCH 1/4] Modify CMakeLists.txt to compile without catkin --- CMakeLists.txt | 58 +++++++------------------------------------------- 1 file changed, 8 insertions(+), 50 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a72acb8..106f832 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,28 +1,6 @@ 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 @@ -30,31 +8,15 @@ set(serial_SRCS include/serial/serial.h include/serial/v8stdint.h ) -if(APPLE) - # If OSX - list(APPEND serial_SRCS src/impl/unix.cc) - list(APPEND serial_SRCS src/impl/list_ports/list_ports_osx.cc) -elseif(UNIX) - # If unix - list(APPEND serial_SRCS src/impl/unix.cc) - list(APPEND serial_SRCS src/impl/list_ports/list_ports_linux.cc) -else() - # If windows - list(APPEND serial_SRCS src/impl/win.cc) - list(APPEND serial_SRCS src/impl/list_ports/list_ports_win.cc) -endif() + +# If unix +list(APPEND serial_SRCS src/impl/unix.cc) +list(APPEND serial_SRCS src/impl/list_ports/list_ports_linux.cc) ## Add serial library -add_library(${PROJECT_NAME} ${serial_SRCS}) -if(APPLE) - target_link_libraries(${PROJECT_NAME} ${FOUNDATION_LIBRARY} ${IOKIT_LIBRARY}) -elseif(UNIX) +add_library(${PROJECT_NAME} SHARED ${serial_SRCS}) target_link_libraries(${PROJECT_NAME} rt pthread) -else() - target_link_libraries(${PROJECT_NAME} setupapi) -endif() -## Uncomment for example add_executable(serial_example examples/serial_example.cc) add_dependencies(serial_example ${PROJECT_NAME}) target_link_libraries(serial_example ${PROJECT_NAME}) @@ -64,15 +26,11 @@ include_directories(include) ## Install executable install(TARGETS ${PROJECT_NAME} - ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + ARCHIVE DESTINATION /usr/lib + LIBRARY DESTINATION /usr/lib ) ## Install headers install(FILES include/serial/serial.h include/serial/v8stdint.h - DESTINATION ${CATKIN_GLOBAL_INCLUDE_DESTINATION}/serial) + DESTINATION /usr/include/serial) -## Tests -if(CATKIN_ENABLE_TESTING) - add_subdirectory(tests) -endif() From e9aa2c29fa4508d4cd4dfe3084a01ad397c15931 Mon Sep 17 00:00:00 2001 From: ahcorde Date: Wed, 1 Jun 2016 13:48:23 +0200 Subject: [PATCH 2/4] Adapt CMakeLists.txt to compile the code with ament and install in ROS 2.0 directories --- CMakeLists.txt | 23 ++++++++++------------- package.xml | 13 +++++-------- 2 files changed, 15 insertions(+), 21 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 106f832..6343cbd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,22 +15,19 @@ list(APPEND serial_SRCS src/impl/list_ports/list_ports_linux.cc) ## Add serial library add_library(${PROJECT_NAME} SHARED ${serial_SRCS}) - target_link_libraries(${PROJECT_NAME} rt pthread) - -add_executable(serial_example examples/serial_example.cc) -add_dependencies(serial_example ${PROJECT_NAME}) -target_link_libraries(serial_example ${PROJECT_NAME}) +target_link_libraries(${PROJECT_NAME} rt pthread) ## Include headers include_directories(include) -## Install executable -install(TARGETS ${PROJECT_NAME} - ARCHIVE DESTINATION /usr/lib - LIBRARY DESTINATION /usr/lib +install( + TARGETS ${PROJECT_NAME} + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin ) -## Install headers -install(FILES include/serial/serial.h include/serial/v8stdint.h - DESTINATION /usr/include/serial) - +install( + DIRECTORY include/ + DESTINATION include +) diff --git a/package.xml b/package.xml index 70c2bb9..72118a8 100644 --- a/package.xml +++ b/package.xml @@ -1,11 +1,10 @@ - + 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 @@ -14,11 +13,9 @@ https://github.com/wjwwood/serial https://github.com/wjwwood/serial/issues - William Woodall - John Harrison - - catkin - - boost + ament_cmake + + ament_cmake + From 1629504221ba8d641e5e84090c6d7a9a321cde81 Mon Sep 17 00:00:00 2001 From: ahcorde Date: Wed, 1 Jun 2016 16:21:08 +0200 Subject: [PATCH 3/4] enable to find by ament --- CMakeLists.txt | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6343cbd..a260e1b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,22 +1,22 @@ cmake_minimum_required(VERSION 2.8.3) + project(serial) - -## Sources -set(serial_SRCS - src/serial.cc - include/serial/serial.h - include/serial/v8stdint.h -) - -# If unix -list(APPEND serial_SRCS src/impl/unix.cc) -list(APPEND serial_SRCS src/impl/list_ports/list_ports_linux.cc) +find_package(ament_cmake REQUIRED) ## Add serial library -add_library(${PROJECT_NAME} SHARED ${serial_SRCS}) +add_library(${PROJECT_NAME} SHARED + src/serial.cc + src/impl/unix.cc + src/impl/list_ports/list_ports_linux.cc +) + target_link_libraries(${PROJECT_NAME} rt pthread) +ament_export_libraries(${PROJECT_NAME}) + +ament_package() + ## Include headers include_directories(include) @@ -30,4 +30,4 @@ install( install( DIRECTORY include/ DESTINATION include -) +) \ No newline at end of file From aa328d690520261d662db64688a656153c943204 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mayoral=20Vilches?= Date: Wed, 1 Jun 2016 18:45:11 +0200 Subject: [PATCH 4/4] serial: add support for OS X --- CMakeLists.txt | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a260e1b..0e33932 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,15 +3,32 @@ cmake_minimum_required(VERSION 2.8.3) project(serial) find_package(ament_cmake REQUIRED) +if(APPLE) + find_library(IOKIT_LIBRARY IOKit) + find_library(FOUNDATION_LIBRARY Foundation) +endif() ## Add serial library +if(APPLE) +add_library(${PROJECT_NAME} SHARED + src/serial.cc + src/impl/unix.cc + src/impl/list_ports/list_ports_osx.cc +) +elseif(UNIX) add_library(${PROJECT_NAME} SHARED src/serial.cc src/impl/unix.cc src/impl/list_ports/list_ports_linux.cc ) +endif() -target_link_libraries(${PROJECT_NAME} rt pthread) + +if(APPLE) + target_link_libraries(${PROJECT_NAME} ${FOUNDATION_LIBRARY} ${IOKIT_LIBRARY}) +elseif(UNIX) + target_link_libraries(${PROJECT_NAME} rt pthread) +endif() ament_export_libraries(${PROJECT_NAME}) @@ -30,4 +47,4 @@ install( install( DIRECTORY include/ DESTINATION include -) \ No newline at end of file +)