CMake: 2.8.12 compatibility
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3658bb2..3076e2e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,7 +3,7 @@
 INCLUDE(GNUInstallDirs)
 
 # ---[ Project
-PROJECT(pthreadpool LANGUAGES C CXX)
+PROJECT(pthreadpool C CXX)
 
 # ---[ Options.
 OPTION(PTHREADPOOL_BUILD_TESTS "Build pthreadpool unit tests" ON)
@@ -57,7 +57,12 @@
   SET(PTHREADPOOL_SRCS src/threadpool-pthreads.c)
 ENDIF()
 
-ADD_LIBRARY(pthreadpool_interface INTERFACE)
+IF(${CMAKE_VERSION} VERSION_LESS "3.0")
+  ADD_LIBRARY(pthreadpool_interface STATIC include/pthreadpool.h)
+  SET_TARGET_PROPERTIES(pthreadpool_interface PROPERTIES LINKER_LANGUAGE C)
+ELSE()
+  ADD_LIBRARY(pthreadpool_interface INTERFACE)
+ENDIF()
 TARGET_INCLUDE_DIRECTORIES(pthreadpool_interface INTERFACE include)
 INSTALL(FILES include/pthreadpool.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
 
@@ -65,9 +70,14 @@
 TARGET_LINK_LIBRARIES(pthreadpool PUBLIC pthreadpool_interface)
 IF(NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
   SET(CMAKE_THREAD_PREFER_PTHREAD TRUE)
-  SET(THREADS_PREFER_PTHREAD_FLAG TRUE)
   FIND_PACKAGE(Threads REQUIRED)
-  TARGET_LINK_LIBRARIES(pthreadpool PUBLIC Threads::Threads)
+  IF(CMAKE_USE_PTHREADS_INIT)
+    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread")
+  ENDIF()
+  TARGET_LINK_LIBRARIES(pthreadpool PUBLIC ${CMAKE_THREAD_LIBS_INIT})
+ENDIF()
+IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+  TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE -D_GNU_SOURCE)
 ENDIF()
 
 # ---[ Configure FXdiv