Files
zephyr/cmake/modules/FindThreads.cmake
Josuah Demangeon bf9c3b150d style: cmake: apply coding style on CMakeLists.txt files
Apply the CMake style guidelines to all CMakeList.txt files in cmake/.

Signed-off-by: Josuah Demangeon <me@josuah.net>
2025-11-17 13:48:03 -05:00

46 lines
1.4 KiB
CMake

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