You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.4 KiB
42 lines
1.4 KiB
# 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()
|
|
|