|  | # 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() |