From 10b2076de96a69df6cf55c27feaeaeaf6e14b9a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= Date: Thu, 7 Dec 2017 19:03:18 +0100 Subject: [PATCH] Haiku build fix --- cmake/Modules/FindIlmBase.cmake | 4 ++++ lib/Alembic/AbcCoreOgawa/StreamManager.cpp | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/cmake/Modules/FindIlmBase.cmake b/cmake/Modules/FindIlmBase.cmake index dac8659..3712e84 100644 --- a/cmake/Modules/FindIlmBase.cmake +++ b/cmake/Modules/FindIlmBase.cmake @@ -85,6 +85,7 @@ SET(_ilmbase_SEARCH_DIRS /opt/csw /opt /usr/freeware + /boot/system ) FIND_PATH(ILMBASE_INCLUDE_DIR @@ -95,6 +96,9 @@ FIND_PATH(ILMBASE_INCLUDE_DIR PATH_SUFFIXES include include/OpenEXR + develop/headers/OpenEXR + develop/headers/x86/OpenEXR + ) # If the headers were found, get the version from config file, if not already set. diff --git a/lib/Alembic/AbcCoreOgawa/StreamManager.cpp b/lib/Alembic/AbcCoreOgawa/StreamManager.cpp index f163173..c2d8fcc 100644 --- a/lib/Alembic/AbcCoreOgawa/StreamManager.cpp +++ b/lib/Alembic/AbcCoreOgawa/StreamManager.cpp @@ -46,8 +46,12 @@ namespace ALEMBIC_VERSION_NS { #if !defined( ALEMBIC_LIB_USES_TR1 ) && __cplusplus >= 201103L #define COMPARE_EXCHANGE( V, COMP, EXCH ) V.compare_exchange_weak( COMP, EXCH, std::memory_order_seq_cst, std::memory_order_seq_cst ) // Windows -#elif defined( _MSC_VER ) +#elif defined( _MSC_VER ) || defined(__HAIKU__) +#ifndef __HAIKU__ #define COMPARE_EXCHANGE( V, COMP, EXCH ) (InterlockedCompareExchange64( &V, EXCH, COMP ) == COMP) +#else +#define COMPARE_EXCHANGE( V, COMP, EXCH ) __atomic_compare_exchange_n( &V, &COMP, EXCH, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST ) +#endif Alembic::Util::int64_t ffsll( Alembic::Util::int64_t iValue ) { @@ -69,7 +73,7 @@ Alembic::Util::int64_t ffsll( Alembic::Util::int64_t iValue ) // gcc 4.8 and above not using C++11 -#elif defined(__GNUC__) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 8 +#elif (defined(__GNUC__) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 8) #define COMPARE_EXCHANGE( V, COMP, EXCH ) __atomic_compare_exchange_n( &V, &COMP, EXCH, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST ) // gcc 4.1 and above not using C++11 #elif defined(__GNUC__) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 1 -- 2.15.0