From 8402f16821af64a25e5ef322acfd96a73b045316 Mon Sep 17 00:00:00 2001
From: Timothy Gu <timothygu99@gmail.com>
Date: Sun, 28 Dec 2014 07:11:55 +0000
Subject: Check if threading library needs to be linked separately


diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
index 1d1a613..847acff 100644
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
@@ -85,7 +85,8 @@ else()
 endif()
 
 if(UNIX)
-    list(APPEND PLATFORM_LIBS pthread)
+	find_package(Threads)
+    list(APPEND PLATFORM_LIBS ${CMAKE_THREAD_LIBS_INIT})
     find_library(LIBRT rt)
     if(LIBRT)
         list(APPEND PLATFORM_LIBS rt)
-- 
2.28.0


From e091dc16b41c3116dbf7c68087b8f7ab6a505f17 Mon Sep 17 00:00:00 2001
From: Timothy Gu <timothygu99@gmail.com>
Date: Sun, 28 Dec 2014 07:13:56 +0000
Subject: Add an option to adjust headers installation path


diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
index 847acff..6a7ff99 100644
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
@@ -373,6 +373,7 @@ endif()
 # Build options
 set(LIB_INSTALL_DIR lib CACHE STRING "Install location of libraries")
 set(BIN_INSTALL_DIR bin CACHE STRING "Install location of executables")
+set(INCLUDE_INSTALL_DIR include CACHE STRING "Install location of headers")
 set(EXTRA_LIB "" CACHE STRING "Extra libraries to link against")
 set(EXTRA_LINK_FLAGS "" CACHE STRING "Extra link flags")
 if(EXTRA_LINK_FLAGS)
-- 
2.28.0


From af8cd14ec41104bc896acf26ce336ae295bf3b6d Mon Sep 17 00:00:00 2001
From: Timothy Gu <timothygu99@gmail.com>
Date: Sun, 28 Dec 2014 07:14:34 +0000
Subject: Add Haiku version of adjusting thread priority


diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
index 6a7ff99..2db73a3 100644
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
@@ -600,7 +600,8 @@ if(SVTHEVC_FOUND)
     install(FILES "${SVT_HEVC_LIBRARY}" DESTINATION ${LIB_INSTALL_DIR})
 endif()
 
-install(FILES x265.h "${PROJECT_BINARY_DIR}/x265_config.h" DESTINATION include)
+install(FILES x265.h "${PROJECT_BINARY_DIR}/x265_config.h"
+    DESTINATION "${INCLUDE_INSTALL_DIR}")
 if((WIN32 AND ENABLE_CLI) OR (WIN32 AND ENABLE_SHARED))
     if(MSVC_IDE)
         install(FILES "${PROJECT_BINARY_DIR}/Debug/x265.pdb" DESTINATION ${BIN_INSTALL_DIR} CONFIGURATIONS Debug)
-- 
2.28.0


From da3bdfd81ff1b5506ada6a9a3c83ed6a882afa4a Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Fri, 25 Oct 2019 21:18:33 +0200
Subject: avoid using nice.


diff --git a/source/common/threadpool.cpp b/source/common/threadpool.cpp
index 2db7a14..0df90c8 100644
--- a/source/common/threadpool.cpp
+++ b/source/common/threadpool.cpp
@@ -118,7 +118,9 @@ void WorkerThread::threadMain()
 #if _WIN32
     SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_BELOW_NORMAL);
 #else
+#ifndef __HAIKU__
     __attribute__((unused)) int val = nice(10);
+#endif
 #endif
 
     m_pool.setCurrentThreadAffinity();
-- 
2.28.0



From f2377573876ff155dc7b04d7f05a92a414589b94 Mon Sep 17 00:00:00 2001
From: Elio Blanca <eblanca76@users.sourceforge.net>
Date: Mon, 28 Feb 2022 23:29:47 +0000
Subject: fix detection of cpu cores


diff --git a/source/common/threadpool.cpp b/source/common/threadpool.cpp
index 0df90c8..e07fa91 100644
--- a/source/common/threadpool.cpp
+++ b/source/common/threadpool.cpp
@@ -636,7 +636,7 @@ int ThreadPool::getCpuCount()
     /* Return the number of processors configured by OS. Because, most embedded linux distributions
      * uses only one processor as the scheduler doesn't have enough work to utilize all processors */
     return sysconf(_SC_NPROCESSORS_CONF);
-#elif __unix__
+#elif defined(__unix__) || defined(__HAIKU__)
     return sysconf(_SC_NPROCESSORS_ONLN);
 #elif MACOS && __MACH__
     int nm[2];
-- 
2.30.2

