Skip to content

Commit

Permalink
BehaviorTree#10 Export CMake config
Browse files Browse the repository at this point in the history
- Add cmake export to generate BehaviorTreeConfig.cmake
- Install config cmake file
- Update C++11 by target property

Signed-off-by: Uilian Ries <uilianries@gmail.com>
  • Loading branch information
uilianries committed Nov 16, 2018
1 parent 0eacb32 commit 20272e3
Showing 1 changed file with 23 additions and 9 deletions.
32 changes: 23 additions & 9 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,6 @@
cmake_minimum_required(VERSION 2.8.12) # version on Ubuntu Trusty
project(behaviortree_cpp)

if(NOT CMAKE_VERSION VERSION_LESS 3.1)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
endif()

set(CMAKE_POSITION_INDEPENDENT_CODE ON)


Expand Down Expand Up @@ -105,15 +98,31 @@ list(APPEND BT_SOURCE
set(BEHAVIOR_TREE_LIBRARY ${PROJECT_NAME})

add_library(${BEHAVIOR_TREE_LIBRARY} ${BT_SOURCE} )
target_link_libraries(${BEHAVIOR_TREE_LIBRARY} ${BEHAVIOR_TREE_EXTERNAL_LIBRARIES} ${catkin_LIBRARIES})
target_include_directories(${BEHAVIOR_TREE_LIBRARY} PUBLIC include 3rdparty ${catkin_INCLUDE_DIRS})
target_link_libraries(${BEHAVIOR_TREE_LIBRARY} PUBLIC ${BEHAVIOR_TREE_EXTERNAL_LIBRARIES} ${catkin_LIBRARIES})
target_include_directories(${BEHAVIOR_TREE_LIBRARY} PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/3rdparty>
$<INSTALL_INTERFACE:3rdparty>
${catkin_INCLUDE_DIRS})
set_property(TARGET ${BEHAVIOR_TREE_LIBRARY} PROPERTY CXX_STANDARD 11)
set_property(TARGET ${BEHAVIOR_TREE_LIBRARY} PROPERTY CXX_STANDARD_REQUIRED ON)

if(MSVC)
target_compile_options(${BEHAVIOR_TREE_LIBRARY} PRIVATE /W4 /WX)
else()
target_compile_options(${BEHAVIOR_TREE_LIBRARY} PRIVATE -Wall -Wextra -Werror=return-type)
endif()

######################################################
# EXPORTS

set(PROJECT_NAMESPACE BehaviorTree)
set(PROJECT_CONFIG ${PROJECT_NAMESPACE}Config)
export(TARGETS ${PROJECT_NAME}
NAMESPACE ${PROJECT_NAMESPACE}::
FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_CONFIG}.cmake")

######################################################
# TESTS

Expand Down Expand Up @@ -163,6 +172,7 @@ else()
endif()

INSTALL(TARGETS ${BEHAVIOR_TREE_LIBRARY}
EXPORT ${PROJECT_CONFIG}
ARCHIVE DESTINATION ${BEHAVIOR_TREE_LIB_DESTINATION}
LIBRARY DESTINATION ${BEHAVIOR_TREE_LIB_DESTINATION}
)
Expand All @@ -171,6 +181,10 @@ INSTALL( DIRECTORY ${CMAKE_SOURCE_DIR}/include/
DESTINATION ${BEHAVIOR_TREE_INC_DESTINATION}
FILES_MATCHING PATTERN "*.h*")

install(EXPORT ${PROJECT_CONFIG}
DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAMESPACE}/cmake"
NAMESPACE ${PROJECT_NAMESPACE}::)

######################################################
# EXAMPLES and TOOLS

Expand Down

0 comments on commit 20272e3

Please sign in to comment.