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