From cde64c3df8cfd59474f81983e9985609f48cce3b Mon Sep 17 00:00:00 2001 From: Uilian Ries Date: Fri, 16 Nov 2018 19:33:05 -0200 Subject: [PATCH 1/3] #10 Export CMake config - Add cmake export to generate BehaviorTreeConfig.cmake - Install config cmake file - Update C++11 by target property Signed-off-by: Uilian Ries --- CMakeLists.txt | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index eafd3d647..1aac1eb18 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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) @@ -105,8 +98,15 @@ 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 + $ + $ + $ + $ + ${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) @@ -114,6 +114,15 @@ 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 @@ -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} ) @@ -171,6 +181,10 @@ INSTALL( DIRECTORY ${CMAKE_SOURCE_DIR}/include/ DESTINATION ${BEHAVIOR_TREE_INC_DESTINATION} FILES_MATCHING PATTERN "*.h*") +install(EXPORT ${PROJECT_CONFIG} + DESTINATION "${BEHAVIOR_TREE_LIB_DESTINATION}/${PROJECT_NAMESPACE}/cmake" + NAMESPACE ${PROJECT_NAMESPACE}::) + ###################################################### # EXAMPLES and TOOLS From 8cad9531d3404df14231ff572772a8a8a715aa86 Mon Sep 17 00:00:00 2001 From: Uilian Ries Date: Sat, 17 Nov 2018 00:25:27 -0200 Subject: [PATCH 2/3] #10 Revert C++11 target property Signed-off-by: Uilian Ries --- CMakeLists.txt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1aac1eb18..eda83ab8d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,13 @@ 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) @@ -105,8 +112,6 @@ target_include_directories(${BEHAVIOR_TREE_LIBRARY} PUBLIC $ $ ${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) From 452ce01d7087f0029721a751fb17b0aed0895d9f Mon Sep 17 00:00:00 2001 From: Uilian Ries Date: Sat, 17 Nov 2018 00:39:18 -0200 Subject: [PATCH 3/3] #10 Install artifacts during test Signed-off-by: Uilian Ries --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 6f5d5ec3c..beab3ebad 100644 --- a/.travis.yml +++ b/.travis.yml @@ -39,7 +39,7 @@ before_script: - mkdir -p build script: - - if [ "$ROS_DISTRO" = "none" ]; then (cd build; cmake .. ;cmake --build .; ./bin/behaviortree_cpp_test); fi + - if [ "$ROS_DISTRO" = "none" ]; then (cd build; cmake .. ;cmake --build .; sudo cmake --build . --target install;./bin/behaviortree_cpp_test); fi - if [ "$ROS_DISTRO" != "none" ]; then (.ci_config/travis.sh); fi