@@ -105,15 +105,29 @@ list(APPEND BT_SOURCE
105105set (BEHAVIOR_TREE_LIBRARY ${PROJECT_NAME} )
106106
107107add_library (${BEHAVIOR_TREE_LIBRARY} ${BT_SOURCE} )
108- target_link_libraries (${BEHAVIOR_TREE_LIBRARY} ${BEHAVIOR_TREE_EXTERNAL_LIBRARIES} ${catkin_LIBRARIES} )
109- target_include_directories (${BEHAVIOR_TREE_LIBRARY} PUBLIC include 3rdparty ${catkin_INCLUDE_DIRS} )
108+ target_link_libraries (${BEHAVIOR_TREE_LIBRARY} PUBLIC ${BEHAVIOR_TREE_EXTERNAL_LIBRARIES} ${catkin_LIBRARIES} )
109+ target_include_directories (${BEHAVIOR_TREE_LIBRARY} PUBLIC
110+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include >
111+ $<INSTALL_INTERFACE:include >
112+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /3rdparty>
113+ $<INSTALL_INTERFACE:3rdparty>
114+ ${catkin_INCLUDE_DIRS} )
110115
111116if (MSVC )
112117 target_compile_options (${BEHAVIOR_TREE_LIBRARY} PRIVATE /W4 /WX)
113118else ()
114119 target_compile_options (${BEHAVIOR_TREE_LIBRARY} PRIVATE -Wall -Wextra -Werror=return-type )
115120endif ()
116121
122+ ######################################################
123+ # EXPORTS
124+
125+ set (PROJECT_NAMESPACE BehaviorTree)
126+ set (PROJECT_CONFIG ${PROJECT_NAMESPACE} Config)
127+ export (TARGETS ${PROJECT_NAME}
128+ NAMESPACE ${PROJECT_NAMESPACE} ::
129+ FILE "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_CONFIG} .cmake" )
130+
117131######################################################
118132# TESTS
119133
@@ -154,23 +168,32 @@ endif()
154168# INSTALL
155169if (catkin_FOUND)
156170 set ( BEHAVIOR_TREE_LIB_DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} )
157- set ( BEHAVIOR_TREE_INC_DESTINATION ${CATKIN_GLOBAL_INCLUDE_DESTINATION } )
171+ set ( BEHAVIOR_TREE_INC_DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION } )
158172 set ( BEHAVIOR_TREE_BIN_DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} )
159173else ()
160174 set ( BEHAVIOR_TREE_LIB_DESTINATION lib )
161175 set ( BEHAVIOR_TREE_INC_DESTINATION include )
162176 set ( BEHAVIOR_TREE_BIN_DESTINATION bin )
163177endif ()
164178
179+ message (STATUS "BEHAVIOR_TREE_LIB_DESTINATION: ${BEHAVIOR_TREE_LIB_DESTINATION} " )
180+ message (STATUS "BEHAVIOR_TREE_INC_DESTINATION: ${BEHAVIOR_TREE_INC_DESTINATION} " )
181+ message (STATUS "BEHAVIOR_TREE_BIN_DESTINATION: ${BEHAVIOR_TREE_BIN_DESTINATION} " )
182+
165183INSTALL (TARGETS ${BEHAVIOR_TREE_LIBRARY}
184+ EXPORT ${PROJECT_CONFIG}
166185 ARCHIVE DESTINATION ${BEHAVIOR_TREE_LIB_DESTINATION}
167186 LIBRARY DESTINATION ${BEHAVIOR_TREE_LIB_DESTINATION}
168187 )
169188
170- INSTALL ( DIRECTORY ${CMAKE_SOURCE_DIR } /include /
189+ INSTALL ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR } /include /
171190 DESTINATION ${BEHAVIOR_TREE_INC_DESTINATION}
172191 FILES_MATCHING PATTERN "*.h*" )
173192
193+ install (EXPORT ${PROJECT_CONFIG}
194+ DESTINATION "${BEHAVIOR_TREE_LIB_DESTINATION} /${PROJECT_NAMESPACE} /cmake"
195+ NAMESPACE ${PROJECT_NAMESPACE} ::)
196+
174197######################################################
175198# EXAMPLES and TOOLS
176199
0 commit comments