aboutsummaryrefslogtreecommitdiffstats
path: root/source/serial/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'source/serial/CMakeLists.txt')
-rw-r--r--source/serial/CMakeLists.txt81
1 files changed, 81 insertions, 0 deletions
diff --git a/source/serial/CMakeLists.txt b/source/serial/CMakeLists.txt
new file mode 100644
index 0000000..4927020
--- /dev/null
+++ b/source/serial/CMakeLists.txt
@@ -0,0 +1,81 @@
+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
+ set(rt_LIBRARIES rt)
+ set(pthread_LIBRARIES 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
+ 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()
+
+## Add serial library
+add_library(${PROJECT_NAME} ${serial_SRCS})
+if(APPLE)
+ target_link_libraries(${PROJECT_NAME} ${FOUNDATION_LIBRARY} ${IOKIT_LIBRARY})
+elseif(UNIX)
+ 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})
+
+## Include headers
+include_directories(include)
+
+## Install executable
+install(TARGETS ${PROJECT_NAME}
+ ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+ LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+ RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
+)
+
+## Install headers
+install(FILES include/serial/serial.h include/serial/v8stdint.h
+ DESTINATION ${CATKIN_GLOBAL_INCLUDE_DESTINATION}/serial)
+
+## Tests
+if(CATKIN_ENABLE_TESTING)
+ add_subdirectory(tests)
+endif()