From 70d037353f49cdb1dbe3c290cf3e9be6196dfd44 Mon Sep 17 00:00:00 2001 From: Darryl Pogue Date: Sun, 12 Oct 2014 17:24:23 -0700 Subject: [PATCH 1/5] Fix for timeval on OSX. --- Sources/Plasma/PubUtilLib/plUnifiedTime/plUnifiedTime.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/Plasma/PubUtilLib/plUnifiedTime/plUnifiedTime.cpp b/Sources/Plasma/PubUtilLib/plUnifiedTime/plUnifiedTime.cpp index 62494529..1937be7d 100644 --- a/Sources/Plasma/PubUtilLib/plUnifiedTime/plUnifiedTime.cpp +++ b/Sources/Plasma/PubUtilLib/plUnifiedTime/plUnifiedTime.cpp @@ -448,7 +448,7 @@ plUnifiedTime::operator timeval() const // tv_secs should be a time_t, but on Windows it is a long struct timeval t = {(long)fSecs, (long)fMicros}; #else - struct timeval t = {fSecs, fMicros}; + struct timeval t = {fSecs, (suseconds_t)fMicros}; #endif return t; } From 55ea5a03fac384c394228c8cc6d4cccd7f57ea65 Mon Sep 17 00:00:00 2001 From: Darryl Pogue Date: Sun, 12 Oct 2014 17:24:43 -0700 Subject: [PATCH 2/5] Fix missing header on OSX. --- Sources/Plasma/CoreLib/hsAlignedAllocator.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Sources/Plasma/CoreLib/hsAlignedAllocator.hpp b/Sources/Plasma/CoreLib/hsAlignedAllocator.hpp index a592d45c..eacc4328 100644 --- a/Sources/Plasma/CoreLib/hsAlignedAllocator.hpp +++ b/Sources/Plasma/CoreLib/hsAlignedAllocator.hpp @@ -45,6 +45,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #include "HeadSpin.h" #include +#include template From ccd5687e6152eeafb7bbbaa631751d84b38a27a2 Mon Sep 17 00:00:00 2001 From: Darryl Pogue Date: Sun, 12 Oct 2014 17:27:32 -0700 Subject: [PATCH 3/5] Fix pnUUID linking on OSX. Closes #451. --- Sources/Plasma/NucleusLib/pnUUID/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/Plasma/NucleusLib/pnUUID/CMakeLists.txt b/Sources/Plasma/NucleusLib/pnUUID/CMakeLists.txt index ea70c49b..76566021 100644 --- a/Sources/Plasma/NucleusLib/pnUUID/CMakeLists.txt +++ b/Sources/Plasma/NucleusLib/pnUUID/CMakeLists.txt @@ -22,7 +22,7 @@ target_link_libraries(pnUUID CoreLib) if(WIN32) target_link_libraries(pnUUID pnUtils) target_link_libraries(pnUUID rpcrt4) -else(WIN32) +elseif(NOT APPLE) target_link_libraries(pnUUID uuid) endif(WIN32) From 95c52c0912380ca35fc392db05cc9915df1c4064 Mon Sep 17 00:00:00 2001 From: Darryl Pogue Date: Sun, 12 Oct 2014 23:51:33 -0700 Subject: [PATCH 4/5] Rename UniChar to plUniChar to avoid conflict on OSX. OSX defines a UniChar type as part of the OS headers. --- Sources/Plasma/CoreLib/plString.cpp | 20 +++++++++---------- Sources/Plasma/CoreLib/plString.h | 12 +++++------ .../FeatureLib/pfPython/pyGlueHelpers.cpp | 2 +- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/Sources/Plasma/CoreLib/plString.cpp b/Sources/Plasma/CoreLib/plString.cpp index 6d11502f..512e7db2 100644 --- a/Sources/Plasma/CoreLib/plString.cpp +++ b/Sources/Plasma/CoreLib/plString.cpp @@ -168,7 +168,7 @@ void plString::IConvertFromUtf16(const uint16_t *utf16, size_t size) while (sp < utf16 + size) { if (*sp >= 0xD800 && *sp <= 0xDFFF) { // Surrogate pair - UniChar unichar = 0x10000; + plUniChar unichar = 0x10000; if (sp + 1 >= utf16 + size) { hsAssert(0, "Incomplete surrogate pair in UTF-16 data"); @@ -209,11 +209,11 @@ void plString::IConvertFromWchar(const wchar_t *wstr, size_t size) // We assume that if sizeof(wchar_t) == 2, the data is UTF-16 already IConvertFromUtf16((const uint16_t *)wstr, size); #else - IConvertFromUtf32((const UniChar *)wstr, size); + IConvertFromUtf32((const plUniChar *)wstr, size); #endif } -void plString::IConvertFromUtf32(const UniChar *ustr, size_t size) +void plString::IConvertFromUtf32(const plUniChar *ustr, size_t size) { hsAssert(size == STRLEN_AUTO || size < FREAKING_BIG, "Your string is WAAAAAY too big"); @@ -226,7 +226,7 @@ void plString::IConvertFromUtf32(const UniChar *ustr, size_t size) // Calculate the UTF-8 size size_t convlen = 0; - const UniChar *sp = ustr; + const plUniChar *sp = ustr; while (sp < ustr + size) { if (*sp > 0x10FFFF) { hsAssert(0, "UTF-32 character out of range"); @@ -341,7 +341,7 @@ plStringBuffer plString::ToUtf16() const uint16_t *dp = ustr; sp = utf8; while (sp < utf8 + srcSize) { - UniChar unichar; + plUniChar unichar; if ((*sp & 0xF8) == 0xF0) { unichar = (*sp++ & 0x07) << 18; unichar |= (*sp++ & 0x3F) << 12; @@ -408,7 +408,7 @@ plStringBuffer plString::ToIso8859_1() const char *dp = astr; sp = utf8; while (sp < utf8 + srcSize) { - UniChar unichar; + plUniChar unichar; if ((*sp & 0xF8) == 0xF0) { unichar = (*sp++ & 0x07) << 18; unichar |= (*sp++ & 0x3F) << 12; @@ -455,11 +455,11 @@ plUnicodeBuffer plString::GetUnicodeArray() const } // And perform the actual conversion - UniChar *ustr = result.CreateWritableBuffer(convlen); - UniChar *dp = ustr; + plUniChar *ustr = result.CreateWritableBuffer(convlen); + plUniChar *dp = ustr; sp = utf8; while (sp < utf8 + srcSize) { - UniChar unichar; + plUniChar unichar; if ((*sp & 0xF8) == 0xF0) { unichar = (*sp++ & 0x07) << 18; unichar |= (*sp++ & 0x3F) << 12; @@ -942,7 +942,7 @@ plStringStream &plStringStream::operator<<(double num) return operator<<(buffer); } -size_t ustrlen(const UniChar *ustr) +size_t ustrlen(const plUniChar *ustr) { size_t length = 0; for ( ; *ustr++; ++length) diff --git a/Sources/Plasma/CoreLib/plString.h b/Sources/Plasma/CoreLib/plString.h index 0fb50769..77fd1897 100644 --- a/Sources/Plasma/CoreLib/plString.h +++ b/Sources/Plasma/CoreLib/plString.h @@ -47,7 +47,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #include /** Single Unicode character code unit */ -typedef unsigned int UniChar; +typedef unsigned int plUniChar; #define SSO_CHARS (16) #define STRING_STACK_SIZE (256) @@ -227,7 +227,7 @@ public: }; /** A plStringBuffer for storing fully-expanded Unicode data */ -typedef plStringBuffer plUnicodeBuffer; +typedef plStringBuffer plUnicodeBuffer; /** Unicode-capable and (mostly) binary safe string class. * plString stores SSO-optimized or reference counted strings (automatically @@ -251,7 +251,7 @@ private: void IConvertFromUtf8(const char *utf8, size_t size); void IConvertFromUtf16(const uint16_t *utf16, size_t size); void IConvertFromWchar(const wchar_t *wstr, size_t size); - void IConvertFromUtf32(const UniChar *ustr, size_t size); + void IConvertFromUtf32(const plUniChar *ustr, size_t size); void IConvertFromIso8859_1(const char *astr, size_t size); public: @@ -357,7 +357,7 @@ public: } /** Create a new plString object from the UTF-32 formatted data in \a utf32. */ - static inline plString FromUtf32(const UniChar *utf32, size_t size = STRLEN_AUTO) + static inline plString FromUtf32(const plUniChar *utf32, size_t size = STRLEN_AUTO) { plString str; str.IConvertFromUtf32(utf32, size); @@ -799,7 +799,7 @@ private: bool ICanHasHeap() const { return fBufSize > STRING_STACK_SIZE; } }; -/** \p strlen implementation for UniChar based C-style string buffers. */ -size_t ustrlen(const UniChar *ustr); +/** \p strlen implementation for plUniChar based C-style string buffers. */ +size_t ustrlen(const plUniChar *ustr); #endif //plString_Defined diff --git a/Sources/Plasma/FeatureLib/pfPython/pyGlueHelpers.cpp b/Sources/Plasma/FeatureLib/pfPython/pyGlueHelpers.cpp index b651b3c0..f95afb4f 100644 --- a/Sources/Plasma/FeatureLib/pfPython/pyGlueHelpers.cpp +++ b/Sources/Plasma/FeatureLib/pfPython/pyGlueHelpers.cpp @@ -54,7 +54,7 @@ plString PyString_AsStringEx(PyObject* obj) #if (Py_UNICODE_SIZE == 2) return plString::FromUtf16(reinterpret_cast(PyUnicode_AsUnicode(obj))); #elif (Py_UNICODE_SIZE == 4) - return plString::FromUtf32(reinterpret_cast(PyUnicode_AsUnicode(obj))); + return plString::FromUtf32(reinterpret_cast(PyUnicode_AsUnicode(obj))); #else # error "Py_UNICODE is an unexpected size" #endif From 30ac1610f1261b4124a8e54284824c98aaee1c14 Mon Sep 17 00:00:00 2001 From: Darryl Pogue Date: Mon, 13 Oct 2014 17:13:30 -0700 Subject: [PATCH 5/5] Add HS_BUILD_FOR_OSX definition. --- CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e1f87bc..62dae16a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,6 +21,9 @@ endif(WIN32 AND NOT CYGWIN) if(UNIX) add_definitions(-DHS_BUILD_FOR_UNIX) endif(UNIX) +if(APPLE AND ${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + add_definitions(-DHS_BUILD_FOR_OSX) +endif(APPLE AND ${CMAKE_SYSTEM_NAME} MATCHES "Darwin") # End HeadSpin Configuration set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")