Răsfoiți Sursa

Merge pull request #1005 from oon3m0oo/emscripten

Adds support for building protobuf with emscripten
Feng Xiao 10 ani în urmă
părinte
comite
d8b6452e37
2 a modificat fișierele cu 5 adăugiri și 1 ștergeri
  1. 3 1
      src/google/protobuf/map.h
  2. 2 0
      src/google/protobuf/stubs/platform_macros.h

+ 3 - 1
src/google/protobuf/map.h

@@ -546,7 +546,9 @@ class Map {
     }
     }
 
 
 #if __cplusplus >= 201103L && !defined(GOOGLE_PROTOBUF_OS_APPLE) && \
 #if __cplusplus >= 201103L && !defined(GOOGLE_PROTOBUF_OS_APPLE) && \
-    !defined(GOOGLE_PROTOBUF_OS_NACL) && !defined(GOOGLE_PROTOBUF_OS_ANDROID)
+    !defined(GOOGLE_PROTOBUF_OS_NACL) &&                            \
+    !defined(GOOGLE_PROTOBUF_OS_ANDROID) &&                         \
+    !defined(GOOGLE_PROTOBUF_OS_EMSCRIPTEN)
     template<class NodeType, class... Args>
     template<class NodeType, class... Args>
     void construct(NodeType* p, Args&&... args) {
     void construct(NodeType* p, Args&&... args) {
       new (static_cast<void*>(p)) NodeType(std::forward<Args>(args)...);
       new (static_cast<void*>(p)) NodeType(std::forward<Args>(args)...);

+ 2 - 0
src/google/protobuf/stubs/platform_macros.h

@@ -97,6 +97,8 @@ GOOGLE_PROTOBUF_PLATFORM_ERROR
 #if TARGET_OS_IPHONE
 #if TARGET_OS_IPHONE
 #define GOOGLE_PROTOBUF_OS_IPHONE
 #define GOOGLE_PROTOBUF_OS_IPHONE
 #endif
 #endif
+#elif defined(__EMSCRIPTEN__)
+#define GOOGLE_PROTOBUF_OS_EMSCRIPTEN
 #elif defined(__native_client__)
 #elif defined(__native_client__)
 #define GOOGLE_PROTOBUF_OS_NACL
 #define GOOGLE_PROTOBUF_OS_NACL
 #elif defined(sun)
 #elif defined(sun)