CMake: Don't shadow the cache entry ENABLE_THREADS with a normal variable.

Using set(ENABLE_THREADS "posix") is confusing because it sets
a new normal variable and leaves the cache entry with the same
name unchanged. The intent wasn't to change the cache entry so
this switches to a different variable name.
This commit is contained in:
Lasse Collin 2023-10-11 19:47:44 +03:00 committed by Jia Tan
parent 7d01de67ee
commit 007558a358
1 changed files with 7 additions and 3 deletions

View File

@ -355,6 +355,11 @@ set_property(CACHE ENABLE_THREADS
# compiler supporting attribute __constructor__.
set(USE_WIN95_THREADS OFF)
# This is a flag variable set when posix threads (pthreads) are used.
# It's needed when creating liblzma-config.cmake where dependency on
# Threads::Threads is only needed with pthreads.
set(USE_POSIX_THREADS OFF)
if(NOT ENABLE_THREADS IN_LIST SUPPORTED_THREADING_METHODS)
message(FATAL_ERROR "'${ENABLE_THREADS}' is not a supported "
"threading method")
@ -384,11 +389,10 @@ if(ENABLE_THREADS)
endif()
elseif(CMAKE_USE_PTHREADS_INIT)
if(ENABLE_THREADS STREQUAL "posix" OR ENABLE_THREADS STREQUAL "ON")
# Overwrite ENABLE_THREADS in case it was set to "ON".
# The threading library only needs to be explicitly linked
# for posix threads, so this is needed for creating
# liblzma-config.cmake later.
set(ENABLE_THREADS "posix")
set(USE_POSIX_THREADS ON)
target_link_libraries(liblzma Threads::Threads)
add_compile_definitions(MYTHREAD_POSIX)
@ -923,7 +927,7 @@ if(NOT TARGET LibLZMA::LibLZMA)
endif()
")
if(ENABLE_THREADS STREQUAL "posix")
if(USE_POSIX_THREADS)
set(LZMA_CONFIG_CONTENTS
"include(CMakeFindDependencyMacro)
set(THREADS_PREFER_PTHREAD_FLAG TRUE)