From d98a542e4672b2d1e657cc8f7750a9beefb129be Mon Sep 17 00:00:00 2001 From: Kimball Thurston Date: Sat, 14 Sep 2019 11:56:01 +1200 Subject: [PATCH] Change where thread support is detected to avoid using a new cmake feature Propagating library use to the global level is a newer cmake feature and doesn't work reliably when included as a sub-project anyway. Remove this and do the normal "find it at the top level" step inside the included setup Signed-off-by: Kimball Thurston --- IlmBase/config/CMakeLists.txt | 5 ----- IlmBase/config/IlmBaseSetup.cmake | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/IlmBase/config/CMakeLists.txt b/IlmBase/config/CMakeLists.txt index 3f4b1581..508176a4 100644 --- a/IlmBase/config/CMakeLists.txt +++ b/IlmBase/config/CMakeLists.txt @@ -19,13 +19,8 @@ if(ILMBASE_HAVE_UCONTEXT_H) endif() endif() -# so we know how to link / use... -set(CMAKE_THREAD_PREFER_PTHREAD TRUE) -set(THREADS_PREFER_PTHREAD_FLAG TRUE) -find_package(Threads) ###check_include_files(pthread.h ILMBASE_HAVE_PTHREAD) if(Threads_FOUND) - set_target_properties(Threads::Threads PROPERTIES IMPORTED_GLOBAL TRUE) if(CMAKE_HAVE_PTHREAD_H OR CMAKE_USE_PTHREADS_INIT OR CMAKE_HP_PTHREAD_INIT) set(ILMBASE_HAVE_PTHREAD ON) # TODO: remove this once we cleanly have ILMBASE_ prefix on all #defines diff --git a/IlmBase/config/IlmBaseSetup.cmake b/IlmBase/config/IlmBaseSetup.cmake index 97aa30ef..49002fb7 100644 --- a/IlmBase/config/IlmBaseSetup.cmake +++ b/IlmBase/config/IlmBaseSetup.cmake @@ -124,3 +124,17 @@ if(OPENEXR_USE_CLANG_TIDY) -checks=*; ) endif() + +############################### +# Dependent libraries + +# so we know how to link / use threads and don't have to have a -pthread +# everywhere... +if(NOT TARGET Threads::Threads) + set(CMAKE_THREAD_PREFER_PTHREAD TRUE) + set(THREADS_PREFER_PTHREAD_FLAG TRUE) + find_package(Threads) + if(NOT Threads_FOUND) + message(FATAL_ERROR "Unable to find a threading library which is required for IlmThread") + endif() +endif()