From f0e911c80926fce2cbfd7a79f8b09fa8fdc4a513 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= <rverschelde@gmail.com> Date: Tue, 18 Dec 2018 11:43:09 +0100 Subject: [PATCH] CMake: Fix linking pthread of CMake < 3.1 As reported in #1624, Ubuntu 14.04 LTS still uses CMake 2.8.12 which does not support the Threads::Threads target (added in CMake 3.1). This could be reverted once the required CMake version is bumped to 3.1+. --- glslang/OSDependent/Unix/CMakeLists.txt | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/glslang/OSDependent/Unix/CMakeLists.txt b/glslang/OSDependent/Unix/CMakeLists.txt index 1b48c105e..1d08689f1 100644 --- a/glslang/OSDependent/Unix/CMakeLists.txt +++ b/glslang/OSDependent/Unix/CMakeLists.txt @@ -2,10 +2,20 @@ add_library(OSDependent STATIC ossource.cpp ../osinclude.h) set_property(TARGET OSDependent PROPERTY FOLDER glslang) set_property(TARGET OSDependent PROPERTY POSITION_INDEPENDENT_CODE ON) +# Link pthread set(CMAKE_THREAD_PREFER_PTHREAD ON) -set(THREADS_PREFER_PTHREAD_FLAG ON) -find_package(Threads) -target_link_libraries(OSDependent Threads::Threads) +if(${CMAKE_VERSION} VERSION_LESS "3.1.0") + # Needed as long as we support CMake 2.8 for Ubuntu 14.04, + # which does not support the recommended Threads::Threads target. + # https://cmake.org/cmake/help/v2.8.12/cmake.html#module:FindThreads + find_package(Threads) + target_link_libraries(OSDependent ${CMAKE_THREAD_LIBS_INIT}) +else() + # This is the recommended way, so we use it for 3.1+. + set(THREADS_PREFER_PTHREAD_FLAG ON) + find_package(Threads) + target_link_libraries(OSDependent Threads::Threads) +endif() if(ENABLE_GLSLANG_INSTALL) install(TARGETS OSDependent -- GitLab