From b638b2b0c3449d2cc4e7f5bb49581d9028bc5365 Mon Sep 17 00:00:00 2001 From: David Laseca Perez Date: Mon, 7 Sep 2026 16:01:44 +0200 Subject: [PATCH] Fix thread issues from upstream Signed-off-by: David Laseca Perez --- CMakeLists.txt | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6a7486c5..3921ad80 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,8 +13,10 @@ include(CheckLibraryExists) find_package(ament_cmake REQUIRED) find_package(ament_cmake_ros_core REQUIRED) -set(THREADS_PREFER_PTHREAD_FLAG TRUE) -find_package(Threads REQUIRED) +if (NOT RCUTILS_NO_THREAD_SUPPORT) + set(THREADS_PREFER_PTHREAD_FLAG TRUE) + find_package(Threads REQUIRED) +endif() if(UNIX AND NOT APPLE) include(cmake/check_c_compiler_uses_glibc.cmake) @@ -47,7 +49,7 @@ endif() set(rcutils_sources src/allocator.c src/array_list.c - src/base64.c + $<$>:src/base64.c> src/char_array.c src/cmdline_parser.c src/env.c @@ -105,12 +107,13 @@ configure_file( target_link_libraries(${PROJECT_NAME} PUBLIC ament_cmake_ros_core::ament_ros_defaults - PRIVATE - Threads::Threads ) if(NOT RCUTILS_NO_FILESYSTEM) target_link_libraries(${PROJECT_NAME} PUBLIC ${CMAKE_DL_LIBS}) endif() +if (NOT RCUTILS_NO_THREAD_SUPPORT) + target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads) +endif() check_library_exists(atomic __atomic_load_8 "" HAVE_LIBATOMICS) @@ -700,11 +703,13 @@ if(BUILD_TESTING) target_link_libraries(benchmark_err_handle ${PROJECT_NAME} ament_cmake_ros_core::ament_ros_defaults) endif() - ament_add_gtest(test_base64 - test/test_base64.cpp - ) - if(TARGET test_base64) - target_link_libraries(test_base64 ${PROJECT_NAME} ament_cmake_ros_core::ament_ros_defaults) + if(NOT RCUTILS_MICROROS) + ament_add_gtest(test_base64 + test/test_base64.cpp + ) + if(TARGET test_base64) + target_link_libraries(test_base64 ${PROJECT_NAME} ament_cmake_ros_core::ament_ros_defaults) + endif() endif() endif()