[x265] [PATCH] Haiku support

Jérôme Duval jerome.duval+x265 at gmail.com
Tue Aug 11 22:12:56 CEST 2015


Hi all,

I'm submitting a patch to add support for Haiku. I understand it is a
trivial patch which doesn't require a signed agreement. Please tell me
if that's not the case.

Here is a description of the changes:
1st: Haiku has no pthread library, we need to check for a threading library.
2nd: Haiku doesn't install headers in include, we add an option to
define such a place, defaulting to include.
3rd: Haiku has no nice() function, we use the platform specific call.

The patch is rebased against today's HG trunk and should apply cleanly.

Please consider applying.

Best regards,
Jérôme Duval



>From b2a16767983618709903e175f6f3d94a36e35832 Mon Sep 17 00:00:00 2001
From: Timothy Gu <timothygu99 at 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 353003e..6fd2cbe 100644
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
@@ -66,7 +66,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.2.2


>From 3649a1e872b18b9e5b2562e12d581d43be916e6a Mon Sep 17 00:00:00 2001
From: Timothy Gu <timothygu99 at 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 6fd2cbe..bd6fbdb 100644
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
@@ -277,6 +277,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)
@@ -419,7 +420,8 @@ endif()
 install(TARGETS x265-static
     LIBRARY DESTINATION ${LIB_INSTALL_DIR}
     ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
-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(CMAKE_RC_COMPILER)
     # The resource compiler does not need CFLAGS or macro defines. It
-- 
2.2.2


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


diff --git a/source/common/threadpool.cpp b/source/common/threadpool.cpp
index 6cb815f..a4b138d 100644
--- a/source/common/threadpool.cpp
+++ b/source/common/threadpool.cpp
@@ -52,6 +52,9 @@

 #endif

+#if defined(__HAIKU__)
+#include <OS.h>
+#endif
 #if MACOS
 #include <sys/param.h>
 #include <sys/sysctl.h>
@@ -91,7 +94,10 @@ void WorkerThread::threadMain()

 #if _WIN32
     SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_BELOW_NORMAL);
-#else
+#elif defined(__HAIKU__)
+    __attribute__((unused)) status_t
+    val = set_thread_priority(find_thread(NULL), B_LOW_PRIORITY);
+ #else
     __attribute__((unused)) int val = nice(10);
 #endif

-- 
2.2.2


More information about the x265-devel mailing list