Skip to content

Commit

Permalink
CMake: Don't shadow the cache entry ENABLE_THREADS with a normal vari…
Browse files Browse the repository at this point in the history
…able.

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.
  • Loading branch information
Larhzu committed Oct 22, 2023
1 parent fa1609e commit 91c435c
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -351,6 +351,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")
Expand Down Expand Up @@ -380,11 +385,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)
Expand Down Expand Up @@ -951,7 +955,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)
Expand Down

0 comments on commit 91c435c

Please sign in to comment.