IVGCVSW-5104 Fix OS-X GetCurrentThreadId build error

Change-Id: Ic54b8d387d8507209e8777d25dcd2c4bc1641bf4
Signed-off-by: Jim Flynn <jim.flynn@arm.com>
diff --git a/cmake/GlobalConfig.cmake b/cmake/GlobalConfig.cmake
index 60b6a3d..142e536 100644
--- a/cmake/GlobalConfig.cmake
+++ b/cmake/GlobalConfig.cmake
@@ -37,7 +37,9 @@
 include(SelectLibraryConfigurations)
 
 set(COMPILER_IS_GNU_LIKE 0)
-if(${CMAKE_CXX_COMPILER_ID} STREQUAL GNU OR ${CMAKE_CXX_COMPILER_ID} STREQUAL Clang)
+if(${CMAKE_CXX_COMPILER_ID} STREQUAL GNU OR
+   ${CMAKE_CXX_COMPILER_ID} STREQUAL Clang OR
+   ${CMAKE_CXX_COMPILER_ID} STREQUAL AppleClang)
     set(COMPILER_IS_GNU_LIKE 1)
 endif()
 
diff --git a/src/armnnUtils/Threads.cpp b/src/armnnUtils/Threads.cpp
index 561edcb..0ca1adf 100644
--- a/src/armnnUtils/Threads.cpp
+++ b/src/armnnUtils/Threads.cpp
@@ -11,6 +11,11 @@
 #define gettid() syscall(SYS_gettid)
 #elif defined(_MSC_VER)
 #include "WindowsWrapper.hpp"
+#elif defined(__APPLE__)
+#include "AvailabilityMacros.h"
+#include <sys/syscall.h>
+#include <sys/time.h>
+#include <unistd.h>
 #endif
 
 namespace armnnUtils
@@ -24,6 +29,14 @@
     return static_cast<int>(gettid());
 #elif defined(_MSC_VER)
     return ::GetCurrentThreadId();
+#elif defined(__APPLE__)
+    uint64_t threadId;
+    int iRet = pthread_threadid_np(NULL, &threadId);
+    if (iRet != 0)
+    {
+        return 0;
+    }
+    return threadId;
 #endif
 }