PageRenderTime 58ms CodeModel.GetById 32ms RepoModel.GetById 0ms app.codeStats 0ms

/CMakeLists.txt

https://gitlab.com/SofarProject/ueye
CMake | 149 lines | 124 code | 20 blank | 5 comment | 11 complexity | 41e720c0a5dd624848cd0b79ffd876c0 MD5 | raw file
  1. cmake_minimum_required(VERSION 2.8.3)
  2. project(ueye)
  3. set(${PROJECT_NAME}_CATKIN_DEPS
  4. roscpp
  5. nodelet
  6. dynamic_reconfigure
  7. std_msgs
  8. image_transport
  9. camera_calibration_parsers
  10. )
  11. find_package(catkin REQUIRED COMPONENTS ${${PROJECT_NAME}_CATKIN_DEPS})
  12. set(${PROJECT_NAME}_INCLUDE_EXPORTS
  13. include
  14. )
  15. generate_dynamic_reconfigure_options(cfg/mono.cfg cfg/stereo.cfg)
  16. catkin_package(
  17. INCLUDE_DIRS ${${PROJECT_NAME}_INCLUDE_EXPORTS}
  18. LIBRARIES ueye_nodelets
  19. CATKIN_DEPENDS ${${PROJECT_NAME}_CATKIN_DEPS}
  20. DEPENDS OpenCV
  21. )
  22. include_directories(
  23. ${catkin_INCLUDE_DIRS}
  24. ${${PROJECT_NAME}_INCLUDE_EXPORTS}
  25. )
  26. # Check for installed uEye SDK
  27. include(CheckIncludeFileCXX)
  28. check_include_file_cxx("ueye.h" HAVE_UEYE_H)
  29. if (NOT HAVE_UEYE_H)
  30. include(TargetArch.cmake)
  31. target_architecture(TARGET_ARCH)
  32. message("-- uEye SDK not found. Using downloaded files for '${TARGET_ARCH}' architecture. (~2MB)")
  33. message("-- This method is only intended for the buildfarm, and will fail to communicate if the official uEye SDK is not installed.")
  34. message("-- The official uEye SDK can be found at https://en.ids-imaging.com/download-ueye.html (~70MB)")
  35. if (TARGET_ARCH STREQUAL "amd64")
  36. message("-- The official uEye SDK for amd64: https://en.ids-imaging.com/download-ueye.html?file=tl_files/downloads/uEye_SDK/driver/uEye_Linux_4.60_64_Bit.zip (~71MB)")
  37. file(DOWNLOAD
  38. #https://bitbucket.org/kmhallen/ueye/downloads/uEye_SDK_4_60_amd64.tar.gz
  39. http://download.ros.org/data/ueye/uEye_SDK_4_60_amd64.tar.gz
  40. ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}/3rdparty/uEye_SDK_amd64.tar.gz
  41. SHOW_PROGRESS
  42. INACTIVITY_TIMEOUT 60
  43. EXPECTED_MD5 e56ede9549b84e9093a1d3b4b9ff9344
  44. TLS_VERIFY on)
  45. execute_process(
  46. COMMAND ${CMAKE_COMMAND} -E tar xzf ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}/3rdparty/uEye_SDK_amd64.tar.gz
  47. WORKING_DIRECTORY ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}/3rdparty
  48. )
  49. include_directories(${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}/3rdparty/amd64)
  50. link_directories(${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}/3rdparty/amd64)
  51. elseif (TARGET_ARCH STREQUAL "i386")
  52. message("-- The official uEye SDK for i386: https://en.ids-imaging.com/download-ueye.html?file=tl_files/downloads/uEye_SDK/driver/uEye_Linux_4.60_32_Bit.zip (~71MB)")
  53. file(DOWNLOAD
  54. #https://bitbucket.org/kmhallen/ueye/downloads/uEye_SDK_4_60_i386.tar.gz
  55. http://download.ros.org/data/ueye/uEye_SDK_4_60_i386.tar.gz
  56. ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}/3rdparty/uEye_SDK_i386.tar.gz
  57. SHOW_PROGRESS
  58. INACTIVITY_TIMEOUT 60
  59. EXPECTED_MD5 20db4268dd3c0416d289067277fffef7
  60. TLS_VERIFY on)
  61. execute_process(
  62. COMMAND ${CMAKE_COMMAND} -E tar xzf ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}/3rdparty/uEye_SDK_i386.tar.gz
  63. WORKING_DIRECTORY ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}/3rdparty
  64. )
  65. include_directories(${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}/3rdparty/i386)
  66. link_directories(${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}/3rdparty/i386)
  67. elseif (TARGET_ARCH STREQUAL "arm")
  68. message("-- The official uEye SDK for armhf: https://en.ids-imaging.com/linux-embedded-downloads.html?file=tl_files/downloads/LinuxEmbedded/uEyeSDK-4.60.00-ARM_LINUX_IDS_GNUEABI_HF.tgz (~20MB)")
  69. message("-- Assuming 'armhf' architecture. The 'armel' build files are available. However, the buildfarm does not build 'armel', and detection at configure time is difficult.")
  70. file(DOWNLOAD
  71. #https://bitbucket.org/kmhallen/ueye/downloads/uEye_SDK_4_60_armhf.tar.gz
  72. http://download.ros.org/data/ueye/uEye_SDK_4_60_armhf.tar.gz
  73. ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}/3rdparty/uEye_SDK_armhf.tar.gz
  74. SHOW_PROGRESS
  75. INACTIVITY_TIMEOUT 60
  76. EXPECTED_MD5 d8e6cbe59bb19b97bd3d9922ff5ac576
  77. TLS_VERIFY on)
  78. execute_process(
  79. COMMAND ${CMAKE_COMMAND} -E tar xzf ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}/3rdparty/uEye_SDK_armhf.tar.gz
  80. WORKING_DIRECTORY ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}/3rdparty
  81. )
  82. include_directories(${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}/3rdparty/armhf)
  83. link_directories(${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}/3rdparty/armhf)
  84. else ()
  85. message("-- Warning: Download for '${TARGET_ARCH}' architecture not found.")
  86. endif ()
  87. endif (NOT HAVE_UEYE_H)
  88. add_library(ueye_nodelets
  89. src/Camera.cpp
  90. src/camera_nodelet.cpp src/CameraNode.cpp
  91. src/stereo_nodelet.cpp src/StereoNode.cpp
  92. src/framerate_nodelet.cpp src/FramerateNode.cpp
  93. )
  94. add_dependencies(ueye_nodelets ${PROJECT_NAME}_gencfg)
  95. target_link_libraries(ueye_nodelets
  96. ${catkin_LIBRARIES}
  97. ueye_api
  98. )
  99. add_executable(camera src/camera_node.cpp)
  100. target_link_libraries(camera
  101. ueye_nodelets
  102. )
  103. add_executable(stereo src/stereo_node.cpp)
  104. target_link_libraries(stereo
  105. ueye_nodelets
  106. )
  107. add_executable(framerate src/framerate_node.cpp)
  108. target_link_libraries(framerate
  109. ueye_nodelets
  110. )
  111. install(TARGETS ueye_nodelets camera stereo framerate
  112. RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
  113. LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  114. )
  115. install(DIRECTORY include/${PROJECT_NAME}/
  116. DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
  117. )
  118. install(DIRECTORY launch
  119. DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
  120. )
  121. install(FILES nodelets.xml
  122. DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
  123. )
  124. if (CATKIN_ENABLE_TESTING)
  125. find_package(roslaunch REQUIRED)
  126. find_package(rostest REQUIRED)
  127. # parse check all the launch/*.launch files
  128. roslaunch_add_file_check(launch)
  129. endif (CATKIN_ENABLE_TESTING)