Skip to content

Commit 68b7da7

Browse files
committed
fix issue #84 (Directories)
1 parent c999c03 commit 68b7da7

File tree

4 files changed

+44
-26
lines changed

4 files changed

+44
-26
lines changed

CMakeLists.txt

Lines changed: 32 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ if(MSVC)
1313
endif()
1414

1515
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
16-
set(CMAKE_DEBUG_POSTFIX d)
17-
1816

1917
set(CMAKE_CONFIG_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_LIST_DIR}/cmake")
2018
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CONFIG_PATH}")
@@ -96,15 +94,40 @@ else()
9694
message(WARNING " GTest missing!")
9795
endif(NOT GTEST_FOUND)
9896

99-
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
100-
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
101-
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
102-
10397
endif()
10498
if(NOT MSVC)
10599
list(APPEND BEHAVIOR_TREE_EXTERNAL_LIBRARIES "dw")
106100
endif()
107101

102+
#############################################################
103+
if(ament_cmake_FOUND)
104+
set( BEHAVIOR_TREE_LIB_DESTINATION lib )
105+
set( BEHAVIOR_TREE_INC_DESTINATION include )
106+
set( BEHAVIOR_TREE_BIN_DESTINATION bin )
107+
108+
ament_export_include_directories(include)
109+
ament_export_libraries(${BEHAVIOR_TREE_LIBRARY})
110+
ament_package()
111+
elseif(catkin_FOUND)
112+
set( BEHAVIOR_TREE_LIB_DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} )
113+
set( BEHAVIOR_TREE_INC_DESTINATION ${CATKIN_GLOBAL_INCLUDE_DESTINATION} )
114+
set( BEHAVIOR_TREE_BIN_DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} )
115+
else()
116+
set( BEHAVIOR_TREE_LIB_DESTINATION lib )
117+
set( BEHAVIOR_TREE_INC_DESTINATION include )
118+
set( BEHAVIOR_TREE_BIN_DESTINATION bin )
119+
120+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${BEHAVIOR_TREE_BIN_DESTINATION}" )
121+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${BEHAVIOR_TREE_LIB_DESTINATION}" )
122+
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${BEHAVIOR_TREE_BIN_DESTINATION}" )
123+
endif()
124+
125+
message( STATUS "BEHAVIOR_TREE_LIB_DESTINATION: ${BEHAVIOR_TREE_LIB_DESTINATION} " )
126+
message( STATUS "BEHAVIOR_TREE_BIN_DESTINATION: ${BEHAVIOR_TREE_BIN_DESTINATION} " )
127+
message( STATUS "CMAKE_RUNTIME_OUTPUT_DIRECTORY: ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} " )
128+
message( STATUS "CMAKE_LIBRARY_OUTPUT_DIRECTORY: ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} " )
129+
message( STATUS "CMAKE_ARCHIVE_OUTPUT_DIRECTORY: ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY} " )
130+
108131
#############################################################
109132
# LIBRARY
110133

@@ -148,6 +171,8 @@ if (NOT backward_ros_FOUND)
148171
endif()
149172

150173
######################################################
174+
set(CMAKE_DEBUG_POSTFIX "d")
175+
151176
if (UNIX)
152177
list(APPEND BT_SOURCE src/shared_library_UNIX.cpp )
153178
add_library(${BEHAVIOR_TREE_LIBRARY} SHARED ${BT_SOURCE} )
@@ -189,30 +214,12 @@ add_subdirectory(tests)
189214

190215
######################################################
191216
# INSTALL
192-
if(ament_cmake_FOUND)
193-
set( BEHAVIOR_TREE_LIB_DESTINATION lib )
194-
set( BEHAVIOR_TREE_INC_DESTINATION include )
195-
set( BEHAVIOR_TREE_BIN_DESTINATION bin )
196-
197-
ament_export_include_directories(include)
198-
ament_export_libraries(${BEHAVIOR_TREE_LIBRARY})
199-
ament_package()
200-
elseif(catkin_FOUND)
201-
set( BEHAVIOR_TREE_LIB_DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} )
202-
set( BEHAVIOR_TREE_INC_DESTINATION ${CATKIN_GLOBAL_INCLUDE_DESTINATION} )
203-
set( BEHAVIOR_TREE_BIN_DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} )
204-
else()
205-
set( BEHAVIOR_TREE_LIB_DESTINATION lib )
206-
set( BEHAVIOR_TREE_INC_DESTINATION include )
207-
set( BEHAVIOR_TREE_BIN_DESTINATION bin )
208-
endif()
209-
210217
set(PROJECT_NAMESPACE BehaviorTree)
211218
set(PROJECT_CONFIG ${PROJECT_NAMESPACE}Config)
212219

213220
INSTALL(TARGETS ${BEHAVIOR_TREE_LIBRARY}
214221
EXPORT ${PROJECT_CONFIG}
215-
ARCHIVE DESTINATION ${BEHAVIOR_TREE_LIB_DESTINATION}
222+
ARCHIVE DESTINATION ${BEHAVIOR_TREE_BIN_DESTINATION}
216223
LIBRARY DESTINATION ${BEHAVIOR_TREE_LIB_DESTINATION}
217224
)
218225

examples/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 2.8)
22

33
include_directories( ../sample_nodes )
44

5+
set(CMAKE_DEBUG_POSTFIX "")
56

67
# The plugin libdummy_nodes.so can be linked statically or
78
# loaded dynamically at run-time.

examples/t01_build_your_first_tree.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ int main()
7070
#else
7171
// Load dynamically a plugin and register the TreeNodes it contains
7272
// it automated the registering step.
73-
factory.registerFromPlugin("./libdummy_nodes.so");
73+
factory.registerFromPlugin("./libdummy_nodes_dyn.so");
7474
#endif
7575

7676
// Trees are created at deployment-time (i.e. at run-time, but only once at the beginning).

sample_nodes/CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,36 @@ include_directories( ../include )
44

55
# compile as static libraries
66

7+
set(CMAKE_DEBUG_POSTFIX "")
8+
79
add_library(crossdoor_nodes STATIC crossdoor_nodes.cpp )
810
target_link_libraries(crossdoor_nodes PRIVATE ${BEHAVIOR_TREE_LIBRARY})
11+
set_target_properties(crossdoor_nodes PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} )
912

1013
add_library(dummy_nodes STATIC dummy_nodes.cpp )
1114
target_link_libraries(dummy_nodes PRIVATE ${BEHAVIOR_TREE_LIBRARY})
15+
set_target_properties(dummy_nodes PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} )
1216

1317
add_library(movebase_node STATIC movebase_node.cpp )
1418
target_link_libraries(movebase_node PRIVATE ${BEHAVIOR_TREE_LIBRARY})
19+
set_target_properties(movebase_node PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} )
1520

1621
# to create a plugin, compile them in this way instead
1722

1823
add_library(crossdoor_nodes_dyn SHARED crossdoor_nodes.cpp )
1924
target_link_libraries(crossdoor_nodes_dyn PRIVATE ${BEHAVIOR_TREE_LIBRARY})
2025
target_compile_definitions(crossdoor_nodes_dyn PRIVATE BT_PLUGIN_EXPORT )
26+
set_target_properties(crossdoor_nodes_dyn PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} )
2127

2228
add_library(dummy_nodes_dyn SHARED dummy_nodes.cpp )
2329
target_link_libraries(dummy_nodes_dyn PRIVATE ${BEHAVIOR_TREE_LIBRARY})
2430
target_compile_definitions(dummy_nodes_dyn PRIVATE BT_PLUGIN_EXPORT)
31+
set_target_properties(dummy_nodes_dyn PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} )
32+
2533

2634
add_library(movebase_node_dyn SHARED movebase_node.cpp )
2735
target_link_libraries(movebase_node_dyn PRIVATE ${BEHAVIOR_TREE_LIBRARY})
2836
target_compile_definitions(movebase_node_dyn PRIVATE BT_PLUGIN_EXPORT )
37+
set_target_properties(movebase_node_dyn PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} )
38+
2939

0 commit comments

Comments
 (0)