Apollo 10.0
自动驾驶开放平台
CMakeLists.txt
浏览该文件的文档.
1cmake_minimum_required(VERSION 2.8.3)
2project(usb_cam)
3
4## Find catkin macros and libraries
5## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
6## is used, also find other catkin packages
7find_package(catkin REQUIRED COMPONENTS image_transport roscpp std_msgs std_srvs sensor_msgs camera_info_manager cv_bridge)
8
9#find_package(CUDA REQUIRED)
10find_package(Boost 1.54 REQUIRED COMPONENTS system thread)
11
12## pkg-config libraries
13find_package(PkgConfig REQUIRED)
14pkg_check_modules(avcodec libavcodec REQUIRED)
15pkg_check_modules(swscale libswscale REQUIRED)
16
17SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++11 -O2 -fopenmp -mavx2 -fPIC")
18
19###################################################
20## Declare things to be passed to other projects ##
21###################################################
22
23## LIBRARIES: libraries you create in this project that dependent projects also need
24## CATKIN_DEPENDS: catkin_packages dependent projects also need
25## DEPENDS: system dependencies of this project that dependent projects also need
26catkin_package(
27 CATKIN_DEPENDS
28 INCLUDE_DIRS include
29 LIBRARIES ${PROJECT_NAME}
30)
31
32###########
33## Build ##
34###########
35
36link_directories(
37 /usr/local/apollo/jsoncpp/lib
38 /usr/local/apollo/adv_plat/lib
39 ${catkin_LIB_DIRS}
40)
41
42include_directories(include
43 /usr/local/apollo/adv_plat
44 ${catkin_INCLUDE_DIRS}
45 ${avcodec_INCLUDE_DIRS}
46 ${swscale_INCLUDE_DIRS}
47)
48
49# Build the USB camera library
50add_library(${PROJECT_NAME} src/usb_cam.cpp)
51target_link_libraries(${PROJECT_NAME}
52 yaml-cpp
53 libadv_trigger_ctl.a
54 libjsoncpp.so
55 libadv_plat_common.a
56 ${avcodec_LIBRARIES}
57 ${swscale_LIBRARIES}
58 ${catkin_LIBRARIES}
59 )
60
61## Build the USB camera nodelet
62add_library(${PROJECT_NAME}_nodelet nodes/usb_cam_nodelet.cpp nodes/usb_cam_wrapper.cpp)
63target_link_libraries(${PROJECT_NAME}_nodelet
64 ${PROJECT_NAME}
65 libadv_trigger_ctl.a
66 libjsoncpp.so
67 libadv_plat_common.a
68 ${avcodec_LIBRARIES}
69 ${swscale_LIBRARIES}
70 ${catkin_LIBRARIES}
71)
72
73## Declare USB camera cpp executable
74add_executable(${PROJECT_NAME}_node nodes/usb_cam_node.cpp nodes/usb_cam_wrapper.cpp)
75target_link_libraries(${PROJECT_NAME}_node
76 ${PROJECT_NAME}
77 libadv_trigger_ctl.a
78 libjsoncpp.so
79 libadv_plat_common.a
80 ${avcodec_LIBRARIES}
81 ${swscale_LIBRARIES}
82 ${catkin_LIBRARIES}
83)
84
85#############
86## Install ##
87#############
88
89## Mark executables and/or libraries for installation
90install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_node ${PROJECT_NAME}_nodelet
91 RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
92 ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
93 LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
94)
95
96## Copy launch files
97install(DIRECTORY launch/
98 DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch
99 FILES_MATCHING PATTERN "*.launch"
100)
101
102# Copy libjsoncpp.so
103install(
104 DIRECTORY /usr/local/apollo/jsoncpp/lib
105 DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}/..
106 FILES_MATCHING PATTERN "*.so*"
107)
108
109install(DIRECTORY params/
110 DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/params
111 FILES_MATCHING PATTERN "*.yaml"
112)
113
114install(FILES nodelets.xml
115 DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
116)
117
118install(DIRECTORY include/${PROJECT_NAME}/
119 DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
120 FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp"
121)
122
class register implement
Definition arena_queue.h:37