# SPDX-License-Identifier: Apache-2.0 # # Copyright (c) 2024 Google LLC. # FindThreads module for locating threads implementation. # # The module defines the following variables: # # 'Threads_FOUND' # Indicates if threads are supported. # # 'CMAKE_THREAD_LIBS_INIT' # The threads library to use. Zephyr provides threads implementation and no # special flags are needed, so this will be empty. # # 'CMAKE_USE_PTHREADS_INIT' # Indicates if threads are pthread compatible. # # This module is compatible with FindThreads module from CMake. # The original implementation tries to find threads library using various # methods (e.g. checking if pthread library is present or compiling example # program to check if the implementation is provided by libc), but it's not # able to detect pthread implementation provided by Zephyr. include(FindPackageHandleStandardArgs) set(Threads_FOUND FALSE) if(DEFINED CONFIG_POSIX_THREADS) set(Threads_FOUND TRUE) set(CMAKE_THREAD_LIBS_INIT ) set(CMAKE_USE_PTHREADS_INIT 1) endif() find_package_handle_standard_args(Threads DEFAULT_MSG Threads_FOUND) if(Threads_FOUND AND NOT TARGET Threads::Threads) # This is just an empty interface, because we don't need to provide any # options. Nevertheless this library must exist, because third-party modules # can link it to their own libraries. add_library(Threads::Threads INTERFACE IMPORTED) endif()