Enable tracing by default if LTTng is available

Also removed the colcon.meta file that implicitly enabled tracing anyway
This commit is contained in:
Tobias Blass 2019-07-19 10:02:56 +02:00
parent 74a781a1b9
commit 1452787336
5 changed files with 49 additions and 60 deletions

View file

@ -32,7 +32,6 @@ build_enabled:
build: build:
script: script:
- rm colcon.meta
- colcon build --symlink-install --packages-up-to $PACKAGES_LIST - colcon build --symlink-install --packages-up-to $PACKAGES_LIST
- . install/local_setup.sh - . install/local_setup.sh
- colcon test --packages-select $PACKAGES_LIST - colcon test --packages-select $PACKAGES_LIST

View file

@ -4,7 +4,7 @@ Tracing tools for ROS 2.
## Building ## Building
If tracing is not enabled when building, or if LTTng is not found, then this package will not do anything. If the `TRACETOOLS_ENABLED` option is disabled during build or if LTTng is not found, then this package will not do anything.
To enable tracing: To enable tracing:
@ -16,9 +16,9 @@ To enable tracing:
$ sudo apt-get install python3-babeltrace python3-lttng $ sudo apt-get install python3-babeltrace python3-lttng
``` ```
Note: the LTTng stable 2.10 PPA is used to get newer versions of the packages. Note: the LTTng stable 2.10 PPA is used to get newer versions of the packages.
2. Build with the `WITH_LTTNG` flag: 2. Build
``` ```
$ colcon build --cmake-args " -DWITH_LTTNG=ON" $ colcon build
``` ```
3. Source and check that tracing is enabled: 3. Source and check that tracing is enabled:
``` ```

View file

@ -1,14 +0,0 @@
{
"names": {
"tracetools": {
"cmake-args": [
"-DWITH_LTTNG=ON",
],
},
"tracetools_test": {
"cmake-args": [
"-DWITH_LTTNG=ON",
],
},
},
}

View file

@ -12,21 +12,17 @@ endif()
find_package(ament_cmake_ros REQUIRED) find_package(ament_cmake_ros REQUIRED)
option(WITH_LTTNG "Include support for tracing with LTTng" OFF) option(WITH_LTTNG "Enable support for tracing with LTTng" ON)
if(WITH_LTTNG) if(WITH_LTTNG)
# Try to find LTTng # Set TRACING_ENABLED if we can find lttng-ust
find_package(PkgConfig REQUIRED) # TODO: Should these be quiet?
pkg_check_modules(LTTNG REQUIRED lttng-ust) find_package(PkgConfig)
endif() if(PkgConfig_FOUND)
pkg_check_modules(LTTNG lttng-ust)
if(LTTNG_FOUND) if(LTTNG_FOUND)
set(LTTNG_TP_FILES
include/tracetools/tp_call.h
src/tp_call.c
)
set(TRACING_ENABLED TRUE) set(TRACING_ENABLED TRUE)
message("LTTng found: tracing enabled") endif()
elseif(WITH_LTTNG) endif()
message("LTTng NOT found: tracing disabled")
endif() endif()
include_directories(include) include_directories(include)
@ -54,7 +50,10 @@ set(SOURCES
src/utils.cpp src/utils.cpp
) )
if(TRACING_ENABLED) if(TRACING_ENABLED)
list(APPEND SOURCES ${LTTNG_TP_FILES}) list(APPEND SOURCES
include/tracetools/tp_call.h
src/tp_call.c)
endif() endif()
add_library(${PROJECT_NAME} SHARED ${SOURCES}) add_library(${PROJECT_NAME} SHARED ${SOURCES})

View file

@ -12,7 +12,18 @@ endif()
find_package(ament_cmake REQUIRED) find_package(ament_cmake REQUIRED)
option(WITH_LTTNG "Include support for tracing with LTTng" OFF) option(WITH_LTTNG "Enable support for tracing with LTTng" ON)
if(WITH_LTTNG)
# Set TRACING_ENABLED if we can find lttng-ust
# TODO should these be quiet?
find_package(PkgConfig)
if(PkgConfig_FOUND)
pkg_check_modules(LTTNG lttng-ust)
if(LTTNG_FOUND)
set(TRACING_ENABLED TRUE)
endif()
endif()
endif()
# Tests # Tests
if(BUILD_TESTING) if(BUILD_TESTING)
@ -119,12 +130,7 @@ if(BUILD_TESTING)
ament_lint_auto_find_test_dependencies() ament_lint_auto_find_test_dependencies()
# Only build tracing tests if LTTng is enabled and found # Only build tracing tests if LTTng is enabled and found
if(WITH_LTTNG) if(TRACING_ENABLED)
find_package(PkgConfig REQUIRED)
pkg_check_modules(LTTNG REQUIRED lttng-ust)
if(LTTNG_FOUND)
message("LTTng found: tracing tests enabled")
find_package(ament_cmake_pytest REQUIRED) find_package(ament_cmake_pytest REQUIRED)
# Run each test in its own pytest invocation # Run each test in its own pytest invocation
@ -150,6 +156,5 @@ if(BUILD_TESTING)
endforeach() endforeach()
endif() endif()
endif() endif()
endif()
ament_package() ament_package()