|
@@ -413,19 +413,29 @@ bool OS::has_feature(const String &p_feature) {
|
|
|
if (sizeof(void *) == 4 && p_feature == "32") {
|
|
|
return true;
|
|
|
}
|
|
|
-#if defined(__x86_64) || defined(__x86_64__) || defined(__amd64__)
|
|
|
+#if defined(__x86_64) || defined(__x86_64__) || defined(__amd64__) || defined(__i386) || defined(__i386__) || defined(_M_IX86) || defined(_M_X64)
|
|
|
+#if defined(__x86_64) || defined(__x86_64__) || defined(__amd64__) || defined(_M_X64)
|
|
|
if (p_feature == "x86_64") {
|
|
|
return true;
|
|
|
}
|
|
|
-#elif (defined(__i386) || defined(__i386__))
|
|
|
+#elif defined(__i386) || defined(__i386__) || defined(_M_IX86)
|
|
|
+ if (p_feature == "x86_32") {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+#endif
|
|
|
if (p_feature == "x86") {
|
|
|
return true;
|
|
|
}
|
|
|
-#elif defined(__aarch64__)
|
|
|
+#elif defined(__arm__) || defined(__aarch64__) || defined(_M_ARM) || defined(_M_ARM64)
|
|
|
+#if defined(__aarch64__) || defined(_M_ARM64)
|
|
|
if (p_feature == "arm64") {
|
|
|
return true;
|
|
|
}
|
|
|
-#elif defined(__arm__)
|
|
|
+#elif defined(__arm__) || defined(_M_ARM)
|
|
|
+ if (p_feature == "arm32") {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+#endif
|
|
|
#if defined(__ARM_ARCH_7A__)
|
|
|
if (p_feature == "armv7a" || p_feature == "armv7") {
|
|
|
return true;
|
|
@@ -457,6 +467,19 @@ bool OS::has_feature(const String &p_feature) {
|
|
|
if (p_feature == "ppc") {
|
|
|
return true;
|
|
|
}
|
|
|
+#elif defined(__wasm__)
|
|
|
+#if defined(__wasm64__)
|
|
|
+ if (p_feature == "wasm64") {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+#elif defined(__wasm32__)
|
|
|
+ if (p_feature == "wasm32") {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+#endif
|
|
|
+ if (p_feature == "wasm") {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
#endif
|
|
|
|
|
|
if (_check_internal_feature_support(p_feature)) {
|