diff --git a/SPIRV/SPVRemapper.cpp b/SPIRV/SPVRemapper.cpp index 1b06032e6a8182fac0dbe38ab2982d2b3510742c..0f303e3a0c2bb3e85f8a774673561fdf9eba8d36 100755 --- a/SPIRV/SPVRemapper.cpp +++ b/SPIRV/SPVRemapper.cpp @@ -42,6 +42,7 @@ #include <algorithm> #include <cassert> +#include "../glslang/Include/Common.h" namespace spv { diff --git a/StandAlone/CMakeLists.txt b/StandAlone/CMakeLists.txt index f5ebab9b3629e931e3435c3915e842a0d74881d1..bc35c08d35c65f32607a187d821a6d82e6c65544 100644 --- a/StandAlone/CMakeLists.txt +++ b/StandAlone/CMakeLists.txt @@ -24,7 +24,9 @@ set(LIBRARIES if(WIN32) set(LIBRARIES ${LIBRARIES} psapi) elseif(UNIX) - set(LIBRARIES ${LIBRARIES} pthread) + if(NOT ANDROID) + set(LIBRARIES ${LIBRARIES} pthread) + endif() endif(WIN32) target_link_libraries(glslangValidator ${LIBRARIES}) diff --git a/glslang/Include/Common.h b/glslang/Include/Common.h index 6076a34dc890c2163add7f8a1b85da2f0c5c30f5..9df6466d277fabd63e3b1b00dc6696ad1cf018b7 100644 --- a/glslang/Include/Common.h +++ b/glslang/Include/Common.h @@ -51,6 +51,17 @@ #define UINT_PTR uintptr_t #endif +#ifdef __ANDROID__ +#include <sstream> +namespace std { +template<typename T> +std::string to_string(const T& val) { + std::ostringstream os; + os << val; + return os.str(); +} +} +#endif /* windows only pragma */ #ifdef _MSC_VER #pragma warning(disable : 4786) // Don't warn about too long identifiers diff --git a/glslang/MachineIndependent/intermOut.cpp b/glslang/MachineIndependent/intermOut.cpp index 2b65ee1a72c972718e0dd7f9564c613e98bb1ff1..16a3ec202bbc9ab593ddda1e1548f6a974be6398 100644 --- a/glslang/MachineIndependent/intermOut.cpp +++ b/glslang/MachineIndependent/intermOut.cpp @@ -48,6 +48,8 @@ namespace { bool is_positive_infinity(double x) { #ifdef _MSC_VER return _fpclass(x) == _FPCLASS_PINF; +#elif defined __ANDROID__ + return std::isinf(x) && (x >= 0); #else return isinf(x) && (x >= 0); #endif diff --git a/glslang/OSDependent/Linux/ossource.cpp b/glslang/OSDependent/Linux/ossource.cpp index 8a1c53ff4a2a4bdf71a04a3c042e1b003457d233..d66beadbb815c66cf98b3197dd81c42a1eeac7e5 100644 --- a/glslang/OSDependent/Linux/ossource.cpp +++ b/glslang/OSDependent/Linux/ossource.cpp @@ -62,6 +62,9 @@ void DetachThreadLinux(void *) // void OS_CleanupThreadData(void) { +#ifdef __ANDROID__ + DetachThread(); +#else int old_cancel_state, old_cancel_type; void *cleanupArg = NULL; @@ -85,6 +88,7 @@ void OS_CleanupThreadData(void) // Restore the thread's previous cancellation mode. // pthread_setcanceltype(old_cancel_state, NULL); +#endif }