Skip to content

Commit d5f830c

Browse files
committedMar 24, 2023
better cmake
1 parent ba87f4e commit d5f830c

File tree

8 files changed

+39
-19
lines changed

8 files changed

+39
-19
lines changed
 

Diff for: ‎.github/workflows/cmake_ubuntu.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ jobs:
4444
- name: Configure CMake
4545
shell: bash
4646
working-directory: ${{github.workspace}}/build
47-
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
47+
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake
4848

4949
- name: Build
5050
shell: bash

Diff for: ‎.github/workflows/cmake_windows.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ jobs:
4141
- name: Configure CMake
4242
shell: bash
4343
working-directory: ${{github.workspace}}/build
44-
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
44+
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake
4545

4646
- name: Build
4747
working-directory: ${{github.workspace}}/build

Diff for: ‎CMakeLists.txt

+10-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
cmake_minimum_required(VERSION 3.16.3) # version on Ubuntu Focal
22
project(behaviortree_cpp)
33

4+
set(CMAKE_CONFIG_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_LIST_DIR}/cmake")
5+
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CONFIG_PATH}")
6+
47
set(BTCPP_LIBRARY ${PROJECT_NAME})
58

69
#---- Enable C++17 ----
@@ -29,6 +32,7 @@ option(BTCPP_SHARED_LIBS "Build shared libraries" ON)
2932
option(BTCPP_BUILD_TOOLS "Build commandline tools" ON)
3033
option(BTCPP_EXAMPLES "Build tutorials and examples" ON)
3134
option(BTCPP_UNIT_TESTS "Build the unit tests" ON)
35+
option(BTCPP_GROOT_INTERFACE "Add Groot2 connection. Requires ZeroMQ" ON)
3236

3337
option(USE_V3_COMPATIBLE_NAMES "Use some alias to compile more easily old 3.x code" OFF)
3438

@@ -116,13 +120,18 @@ list(APPEND BT_SOURCE
116120
src/loggers/bt_file_logger.cpp
117121
src/loggers/bt_minitrace_logger.cpp
118122
src/loggers/bt_observer.cpp
119-
src/loggers/groot2_publisher.cpp
120123

121124
3rdparty/tinyxml2/tinyxml2.cpp
122125
3rdparty/minitrace/minitrace.cpp
123126
)
124127

125128

129+
if(BTCPP_GROOT_INTERFACE)
130+
# should be found already, at this stage
131+
list(APPEND BT_SOURCE src/loggers/groot2_publisher.cpp )
132+
endif()
133+
134+
126135
######################################################
127136

128137
if (UNIX)

Diff for: ‎README.md

+16-4
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,27 @@ Three build systems are supported:
6565
- **catkin**, if you use ROS
6666
- **colcon (ament)**, if you use ROS2
6767
- **conan** otherwise (Linux/Windows).
68+
- **straight cmake** if you want to be personal responsible for depndencies :)
6869

6970
Compiling with [conan](https://conan.io/):
7071

7172
Assuming that you are in the **parent** directory of `BehaviorTree.CPP`:
7273

73-
mkdir build; cd build
74-
conan install ../BehaviorTree.CPP --output-folder=. --build=missing
75-
cmake ../BehaviorTree.CPP
76-
cmake --build . --parallel
74+
```
75+
mkdir build; cd build
76+
conan install ../BehaviorTree.CPP --output-folder=. --build=missing
77+
cmake ../BehaviorTree.CPP -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake
78+
cmake --build . --parallel
79+
```
80+
81+
If you have dependencies such as ZeroMQ and SQlite already installed and you don't want to
82+
use conan, simply type:
83+
84+
```
85+
mkdir build; cd build
86+
cmake ../BehaviorTree.CPP
87+
cmake --build . --parallel
88+
```
7789

7890
If you want to use BT.CPP in your application, please refer to the
7991
example here: https://github.com/BehaviorTree/btcpp_sample .

Diff for: ‎cmake/ament_build.cmake

+2-5
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,15 @@
22
set(CMAKE_CONFIG_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake")
33
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CONFIG_PATH}")
44

5-
find_package(ZeroMQ)
6-
7-
if(BTCPP_MANUAL_SELECTOR)
8-
find_package(Curses REQUIRED)
5+
if(BTCPP_GROOT_INTERFACE)
6+
find_package(ZeroMQ REQUIRED)
97
endif()
108

119
find_package(ament_index_cpp REQUIRED)
1210

1311
set( BTCPP_EXTRA_LIBRARIES
1412
$<BUILD_INTERFACE:ament_index_cpp::ament_index_cpp>
1513
$<BUILD_INTERFACE:${ZeroMQ_LIBRARIES}>
16-
${CURSES_LIBRARIES}
1714
)
1815

1916
ament_export_dependencies(ament_index_cpp)

Diff for: ‎cmake/catkin_build.cmake

+3-5
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22
set(CMAKE_CONFIG_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake")
33
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CONFIG_PATH}")
44

5-
find_package(ZeroMQ)
6-
7-
if(BTCPP_MANUAL_SELECTOR)
8-
find_package(Curses REQUIRED)
5+
if(BTCPP_GROOT_INTERFACE)
6+
find_package(ZeroMQ REQUIRED)
97
endif()
108

9+
1110
find_package(catkin REQUIRED COMPONENTS roslib)
1211

1312
catkin_package(
@@ -19,7 +18,6 @@ set(BTCPP_EXTRA_INCLUDE_DIRS ${catkin_INCLUDE_DIRS} )
1918

2019
set( BTCPP_EXTRA_LIBRARIES
2120
${catkin_LIBRARIES}
22-
${CURSES_LIBRARIES}
2321
${ZeroMQ_LIBRARIES})
2422

2523
set( BTCPP_LIB_DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} )

Diff for: ‎cmake/conan_build.cmake

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
list(APPEND CMAKE_PREFIX_PATH "${CMAKE_BINARY_DIR}")
2-
find_package(ZeroMQ REQUIRED)
32

4-
set( BTCPP_EXTRA_LIBRARIES ${ZeroMQ_LIBRARIES})
3+
if(BTCPP_GROOT_INTERFACE)
4+
find_package(ZeroMQ REQUIRED)
5+
list(APPEND BTCPP_EXTRA_LIBRARIES ${ZeroMQ_LIBRARIES})
6+
message(STATUS "ZeroMQ_LIBRARIES: ${ZeroMQ_LIBRARIES}")
7+
endif()
58

69
set( BTCPP_LIB_DESTINATION lib )
710
set( BTCPP_INCLUDE_DESTINATION include )

Diff for: ‎conanfile.txt

+1
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ sqlite3/3.40.1
55

66
[generators]
77
CMakeDeps
8+
CMakeToolchain

0 commit comments

Comments
 (0)
Please sign in to comment.