diff options
author | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2024-02-14 22:21:57 +0100 |
---|---|---|
committer | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2024-02-15 22:57:03 +0100 |
commit | 34ef1043ee1783f8ab20e74a8f883a235a96d629 (patch) | |
tree | 1bc5e49105e01d8961a9d1e5c65b887070f63616 /misc | |
parent | 7141bc487ec76c336fe1775d58771cecdb507957 (diff) | |
download | fork-godot-webrtc-native-34ef1043ee1783f8ab20e74a8f883a235a96d629.tar.gz fork-godot-webrtc-native-34ef1043ee1783f8ab20e74a8f883a235a96d629.tar.bz2 fork-godot-webrtc-native-34ef1043ee1783f8ab20e74a8f883a235a96d629.zip |
[Linux] Add arm32/arm64 linux builds support
Fix arch detection in GDNative builds (3.x) and add a small patch to
avoid warnings spam on ARM.
Make CMake march flags explicit for Linux arm32/arm64.
Add new platforms to CI.
Diffstat (limited to 'misc')
-rw-r--r-- | misc/patches/gdnantive_arm_warnings.diff | 34 | ||||
-rwxr-xr-x | misc/scripts/file_format.sh | 2 | ||||
-rw-r--r-- | misc/webrtc.tres | 12 |
3 files changed, 44 insertions, 4 deletions
diff --git a/misc/patches/gdnantive_arm_warnings.diff b/misc/patches/gdnantive_arm_warnings.diff new file mode 100644 index 0000000..4f1f085 --- /dev/null +++ b/misc/patches/gdnantive_arm_warnings.diff @@ -0,0 +1,34 @@ +diff --git a/godot-cpp-3.x/godot-headers/gdnative/gdnative.h b/godot-cpp-3.x/godot-headers/gdnative/gdnative.h +index c0573d21b5d7a..ec95c4c4ebfcc 100644 +--- a/godot-cpp-3.x/godot-headers/gdnative/gdnative.h ++++ b/godot-cpp-3.x/godot-headers/gdnative/gdnative.h +@@ -37,20 +37,24 @@ extern "C" { + + #if defined(_WIN32) || defined(__ANDROID__) + #define GDCALLINGCONV +-#define GDAPI GDCALLINGCONV ++ + #elif defined(__APPLE__) + #include "TargetConditionals.h" + #if TARGET_OS_IPHONE + #define GDCALLINGCONV __attribute__((visibility("default"))) +-#define GDAPI GDCALLINGCONV + #elif TARGET_OS_MAC + #define GDCALLINGCONV __attribute__((sysv_abi)) +-#define GDAPI GDCALLINGCONV + #endif +-#else // !_WIN32 && !__APPLE__ ++ ++#else // Linux/BSD/Web ++#if defined(__aarch64__) || defined(__arm__) ++#define GDCALLINGCONV ++#else + #define GDCALLINGCONV __attribute__((sysv_abi)) +-#define GDAPI GDCALLINGCONV + #endif ++#endif ++ ++#define GDAPI GDCALLINGCONV + + // This is for libraries *using* the header, NOT GODOT EXPOSING STUFF!! + #if !defined(GDN_EXPORT) diff --git a/misc/scripts/file_format.sh b/misc/scripts/file_format.sh index 94a3aff..f89e534 100755 --- a/misc/scripts/file_format.sh +++ b/misc/scripts/file_format.sh @@ -39,6 +39,8 @@ for f in "${files[@]}"; do continue elif [[ "$f" == "thirdparty/"* ]]; then continue + elif [[ "$f" == "misc/patches/"* ]]; then + continue elif [[ "$f" == *"/thirdparty/"* ]]; then continue elif [[ "$f" == "platform/android/java/lib/src/com/google"* ]]; then diff --git a/misc/webrtc.tres b/misc/webrtc.tres index bdcb80f..2b682ae 100644 --- a/misc/webrtc.tres +++ b/misc/webrtc.tres @@ -6,10 +6,14 @@ reloadable = false entry/OSX.64 = "res://{GDNATIVE_PATH}/lib/libwebrtc_native.macos.{TARGET}.universal.dylib" entry/Windows.64 = "res://{GDNATIVE_PATH}/lib/libwebrtc_native.windows.{TARGET}.x86_64.dll" entry/Windows.32 = "res://{GDNATIVE_PATH}/lib/libwebrtc_native.windows.{TARGET}.x86_32.dll" -entry/X11.64 = "res://{GDNATIVE_PATH}/lib/libwebrtc_native.linux.{TARGET}.x86_64.so" -entry/X11.32 = "res://{GDNATIVE_PATH}/lib/libwebrtc_native.linux.{TARGET}.x86_32.so" -entry/Server.64 = "res://{GDNATIVE_PATH}/lib/libwebrtc_native.linux.{TARGET}.x86_64.so" -entry/Server.32 = "res://{GDNATIVE_PATH}/lib/libwebrtc_native.linux.{TARGET}.x86_32.so" +entry/X11.64.x86_64 = "res://{GDNATIVE_PATH}/lib/libwebrtc_native.linux.{TARGET}.x86_64.so" +entry/X11.32.x86_32 = "res://{GDNATIVE_PATH}/lib/libwebrtc_native.linux.{TARGET}.x86_32.so" +entry/X11.64.arm64 = "res://{GDNATIVE_PATH}/lib/libwebrtc_native.linux.{TARGET}.arm64.so" +entry/X11.32.arm32 = "res://{GDNATIVE_PATH}/lib/libwebrtc_native.linux.{TARGET}.arm32.so" +entry/Server.64.x86_64 = "res://{GDNATIVE_PATH}/lib/libwebrtc_native.linux.{TARGET}.x86_64.so" +entry/Server.32.x86_32 = "res://{GDNATIVE_PATH}/lib/libwebrtc_native.linux.{TARGET}.x86_32.so" +entry/Server.64.arm64 = "res://{GDNATIVE_PATH}/lib/libwebrtc_native.linux.{TARGET}.arm64.so" +entry/Server.32.arm32 = "res://{GDNATIVE_PATH}/lib/libwebrtc_native.linux.{TARGET}.arm32.so" entry/Android.arm64-v8a = "res://{GDNATIVE_PATH}/lib/libwebrtc_native.android.{TARGET}.arm64.so" entry/Android.x64 = "res://{GDNATIVE_PATH}/lib/libwebrtc_native.android.{TARGET}.x86_64.so" entry/iOS.armv7 = "res://{GDNATIVE_PATH}/lib/libwebrtc_native.ios.{TARGET}.armv32.dylib" |