101 lines
2.6 KiB
CMake
101 lines
2.6 KiB
CMake
cmake_minimum_required(VERSION 2.8.3)
|
|
project(uav_utils)
|
|
|
|
## Turn on verbose output
|
|
set(CMAKE_VERBOSE_MAKEFILE "false")
|
|
|
|
## Enable C++11
|
|
include(CheckCXXCompilerFlag)
|
|
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
|
|
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
|
|
if(COMPILER_SUPPORTS_CXX11)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
|
elseif(COMPILER_SUPPORTS_CXX0X)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
|
|
else()
|
|
message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
|
|
endif()
|
|
|
|
## Add some compile flags
|
|
set(ADDITIONAL_CXX_FLAG "-Wall -O3 -g")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ADDITIONAL_CXX_FLAG}")
|
|
|
|
## Find catkin macros and libraries
|
|
find_package(catkin REQUIRED COMPONENTS
|
|
roscpp
|
|
rospy
|
|
cmake_utils
|
|
)
|
|
|
|
|
|
find_package(Eigen REQUIRED) # try to find manually installed eigen (Usually in /usr/local with provided FindEigen3.cmake)
|
|
|
|
###################################
|
|
## catkin specific configuration ##
|
|
###################################
|
|
catkin_package(
|
|
INCLUDE_DIRS include
|
|
# LIBRARIES uav_utils
|
|
CATKIN_DEPENDS roscpp rospy
|
|
# DEPENDS system_lib
|
|
)
|
|
|
|
###########
|
|
## Build ##
|
|
###########
|
|
|
|
|
|
include_directories(
|
|
include
|
|
${EIGEN_INCLUDE_DIRS}
|
|
${catkin_INCLUDE_DIRS}
|
|
)
|
|
|
|
#############
|
|
## Install ##
|
|
#############
|
|
|
|
# all install targets should use catkin DESTINATION variables
|
|
# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
|
|
|
|
## Mark executable scripts (Python etc.) for installation
|
|
## in contrast to setup.py, you can choose the destination
|
|
# install(PROGRAMS
|
|
# scripts/my_python_script
|
|
# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
|
|
# )
|
|
|
|
## Mark executables and/or libraries for installation
|
|
# install(TARGETS geometry_utils geometry_utils_node
|
|
# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
|
|
# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
|
|
# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
|
|
# )
|
|
|
|
## Mark cpp header files for installation
|
|
install(DIRECTORY include/${PROJECT_NAME}/
|
|
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
|
|
FILES_MATCHING PATTERN "*.h"
|
|
PATTERN ".svn" EXCLUDE
|
|
)
|
|
|
|
## Mark other files for installation (e.g. launch and bag files, etc.)
|
|
# install(FILES
|
|
# # myfile1
|
|
# # myfile2
|
|
# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
|
|
# )
|
|
|
|
#############
|
|
## Testing ##
|
|
#############
|
|
|
|
## Add gtest based cpp test target and link libraries
|
|
catkin_add_gtest(${PROJECT_NAME}-test src/${PROJECT_NAME}_test.cpp)
|
|
if(TARGET ${PROJECT_NAME}-test)
|
|
target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
|
|
endif()
|
|
|
|
## Add folders to be run by python nosetests
|
|
# catkin_add_nosetests(test)
|