mirror of
https://github.com/godotengine/webrtc-native.git
synced 2026-01-03 14:09:58 +03:00
Compare commits
30 Commits
1.0.2-stab
...
1.0.6-stab
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bf8f6e4581 | ||
|
|
1443d02c8d | ||
|
|
431df320c4 | ||
|
|
762f7cc5d2 | ||
|
|
66a9c6bab3 | ||
|
|
e391109df2 | ||
|
|
762365d20a | ||
|
|
34ef1043ee | ||
|
|
7141bc487e | ||
|
|
9520b23a4c | ||
|
|
cdb4673f48 | ||
|
|
5b4221462b | ||
|
|
86d080b328 | ||
|
|
1831677f63 | ||
|
|
fa28efa51d | ||
|
|
6e33e43f36 | ||
|
|
81239d820d | ||
|
|
b0efc17d3b | ||
|
|
ec0ededcde | ||
|
|
308db19120 | ||
|
|
724910c734 | ||
|
|
7a4e27e5f0 | ||
|
|
d768508435 | ||
|
|
fb2c9c3687 | ||
|
|
cf23e5e740 | ||
|
|
668d0250a7 | ||
|
|
121ed5664d | ||
|
|
67a378a667 | ||
|
|
023c42d3b3 | ||
|
|
6d96092f88 |
22
.github/actions/godot-cache/action.yml
vendored
Normal file
22
.github/actions/godot-cache/action.yml
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
name: Setup Godot build cache
|
||||||
|
description: Setup Godot build cache.
|
||||||
|
inputs:
|
||||||
|
cache-name:
|
||||||
|
description: The cache base name (job name by default).
|
||||||
|
default: "${{github.job}}"
|
||||||
|
scons-cache:
|
||||||
|
description: The scons cache path.
|
||||||
|
default: "${{github.workspace}}/.scons-cache/"
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
# Upload cache on completion and check it out now
|
||||||
|
- name: Load .scons_cache directory
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: ${{inputs.scons-cache}}
|
||||||
|
key: ${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
||||||
|
restore-keys: |
|
||||||
|
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
||||||
|
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}
|
||||||
|
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}
|
||||||
76
.github/workflows/build_release.yml
vendored
76
.github/workflows/build_release.yml
vendored
@@ -11,7 +11,7 @@ jobs:
|
|||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
@@ -76,18 +76,32 @@ jobs:
|
|||||||
# Linux
|
# Linux
|
||||||
- platform: linux
|
- platform: linux
|
||||||
arch: 'x86_32'
|
arch: 'x86_32'
|
||||||
buildroot: 'i686'
|
buildroot: 'i686-godot-linux-gnu_sdk-buildroot'
|
||||||
gdnative_flags: 'bits=32'
|
gdnative_flags: 'bits=32'
|
||||||
sconsflags: ''
|
sconsflags: ''
|
||||||
os: 'ubuntu-20.04'
|
os: 'ubuntu-20.04'
|
||||||
cache-name: linux-x86_32
|
cache-name: linux-x86_32
|
||||||
- platform: linux
|
- platform: linux
|
||||||
arch: 'x86_64'
|
arch: 'x86_64'
|
||||||
buildroot: 'x86_64'
|
buildroot: 'x86_64-godot-linux-gnu_sdk-buildroot'
|
||||||
gdnative_flags: 'bits=64'
|
gdnative_flags: 'bits=64'
|
||||||
sconsflags: ''
|
sconsflags: ''
|
||||||
os: 'ubuntu-20.04'
|
os: 'ubuntu-20.04'
|
||||||
cache-name: linux-x86_64
|
cache-name: linux-x86_64
|
||||||
|
- platform: linux
|
||||||
|
arch: 'arm32'
|
||||||
|
buildroot: 'arm-godot-linux-gnueabihf_sdk-buildroot'
|
||||||
|
gdnative_flags: 'bits=32'
|
||||||
|
sconsflags: ''
|
||||||
|
os: 'ubuntu-20.04'
|
||||||
|
cache-name: linux-arm32
|
||||||
|
- platform: linux
|
||||||
|
arch: 'arm64'
|
||||||
|
buildroot: 'aarch64-godot-linux-gnu_sdk-buildroot'
|
||||||
|
gdnative_flags: 'bits=64'
|
||||||
|
sconsflags: ''
|
||||||
|
os: 'ubuntu-20.04'
|
||||||
|
cache-name: linux-arm64
|
||||||
|
|
||||||
# macOS
|
# macOS
|
||||||
- platform: macos
|
- platform: macos
|
||||||
@@ -122,12 +136,12 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
|
|
||||||
- name: Setup Godot build cache
|
- name: Setup Godot build cache
|
||||||
uses: ./godot-cpp/.github/actions/godot-cache
|
uses: ./.github/actions/godot-cache
|
||||||
with:
|
with:
|
||||||
cache-name: ${{ matrix.cache-name }}
|
cache-name: ${{ matrix.cache-name }}
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
@@ -144,28 +158,22 @@ jobs:
|
|||||||
dpkg -l | grep ii | grep mingw
|
dpkg -l | grep ii | grep mingw
|
||||||
update-alternatives --get-selections | grep mingw
|
update-alternatives --get-selections | grep mingw
|
||||||
|
|
||||||
- name: Setup Linux buildroot toolchain cache
|
|
||||||
if: ${{ matrix.platform == 'linux' }}
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
${{ matrix.buildroot }}-godot-linux-gnu_sdk-buildroot.tar.bz2
|
|
||||||
key: linux-${{ matrix.buildroot }}-buildroot
|
|
||||||
|
|
||||||
- name: Install Linux build dependencies
|
- name: Install Linux build dependencies
|
||||||
if: ${{ matrix.platform == 'linux' }}
|
if: ${{ matrix.platform == 'linux' }}
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install build-essential gcc-multilib g++-multilib wget
|
sudo apt-get install build-essential gcc-multilib g++-multilib wget
|
||||||
if [ ! -f ${{ matrix.buildroot }}-godot-linux-gnu_sdk-buildroot.tar.bz2 ]; then
|
|
||||||
wget https://downloads.tuxfamily.org/godotengine/toolchains/linux/${{ matrix.buildroot }}-godot-linux-gnu_sdk-buildroot.tar.bz2
|
- name: Setup Linux buildroot toolchain cache
|
||||||
fi
|
if: ${{ matrix.platform == 'linux' }}
|
||||||
tar -xjf ${{ matrix.buildroot }}-godot-linux-gnu_sdk-buildroot.tar.bz2
|
uses: actions/cache@v4
|
||||||
echo "$GITHUB_WORKSPACE/${{ matrix.buildroot }}-godot-linux-gnu_sdk-buildroot/bin" >> $GITHUB_PATH
|
with:
|
||||||
patch -p1 < misc/patches/scons_path.diff
|
path: |
|
||||||
|
${{ matrix.buildroot }}.tar.bz2
|
||||||
|
key: linux-${{ matrix.buildroot }}-buildroot
|
||||||
|
|
||||||
- name: Set up Python 3.x
|
- name: Set up Python 3.x
|
||||||
uses: actions/setup-python@v4
|
uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: '3.x'
|
python-version: '3.x'
|
||||||
architecture: 'x64'
|
architecture: 'x64'
|
||||||
@@ -174,6 +182,22 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
python -c "import sys; print(sys.version)"
|
python -c "import sys; print(sys.version)"
|
||||||
python -m pip install scons
|
python -m pip install scons
|
||||||
|
|
||||||
|
- name: Setup Linux toolchains
|
||||||
|
if: ${{ matrix.platform == 'linux' }}
|
||||||
|
run: |
|
||||||
|
if [ ! -f ${{ matrix.buildroot }}.tar.bz2 ]; then
|
||||||
|
wget https://downloads.tuxfamily.org/godotengine/toolchains/linux/${{ matrix.buildroot }}.tar.bz2
|
||||||
|
fi
|
||||||
|
tar -xjf ${{ matrix.buildroot }}.tar.bz2
|
||||||
|
${{ matrix.buildroot }}/relocate-sdk.sh
|
||||||
|
echo "$GITHUB_WORKSPACE/${{ matrix.buildroot }}/bin" >> $GITHUB_PATH
|
||||||
|
echo "PKG_CONFIG=$GITHUB_WORKSPACE/${{ matrix.buildroot }}/share/pkgconfig/" >> $GITHUB_ENV
|
||||||
|
patch -p1 < misc/patches/scons_path.diff
|
||||||
|
patch -p1 < misc/patches/gdnantive_arm_warnings.diff
|
||||||
|
|
||||||
|
- name: Print tools versions
|
||||||
|
run: |
|
||||||
python --version
|
python --version
|
||||||
scons --version
|
scons --version
|
||||||
cmake --version
|
cmake --version
|
||||||
@@ -198,7 +222,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
scons target=release generate_bindings=yes ${{ matrix.gdnative_flags }} godot_version=3
|
scons target=release generate_bindings=yes ${{ matrix.gdnative_flags }} godot_version=3
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: ${{ github.job }}-${{ matrix.platform }}-${{ matrix.arch }}
|
name: ${{ github.job }}-${{ matrix.platform }}-${{ matrix.arch }}
|
||||||
path: |
|
path: |
|
||||||
@@ -210,11 +234,11 @@ jobs:
|
|||||||
needs: build
|
needs: build
|
||||||
runs-on: "ubuntu-latest"
|
runs-on: "ubuntu-latest"
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
|
|
||||||
- uses: actions/download-artifact@v3
|
- uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
path: artifacts
|
path: artifacts
|
||||||
|
|
||||||
@@ -241,17 +265,17 @@ jobs:
|
|||||||
|
|
||||||
ls -R release
|
ls -R release
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: godot-webrtc-extension-4.1
|
name: godot-webrtc-extension-4.1
|
||||||
path: release/*-extension-4.1-*.zip
|
path: release/*-extension-4.1-*.zip
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: godot-webrtc-extension-4.0
|
name: godot-webrtc-extension-4.0
|
||||||
path: release/*-extension-4.0-*.zip
|
path: release/*-extension-4.0-*.zip
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: godot-webrtc-gdnative
|
name: godot-webrtc-gdnative
|
||||||
path: release/*-gdnative-*.zip
|
path: release/*-gdnative-*.zip
|
||||||
|
|||||||
96
SConstruct
96
SConstruct
@@ -12,13 +12,31 @@ def add_sources(sources, dirpath, extension):
|
|||||||
|
|
||||||
def replace_flags(flags, replaces):
|
def replace_flags(flags, replaces):
|
||||||
for k, v in replaces.items():
|
for k, v in replaces.items():
|
||||||
if k in flags:
|
if k not in flags:
|
||||||
|
continue
|
||||||
|
if v is None:
|
||||||
|
flags.remove(k)
|
||||||
|
else:
|
||||||
flags[flags.index(k)] = v
|
flags[flags.index(k)] = v
|
||||||
|
|
||||||
|
|
||||||
|
def validate_godotcpp_dir(key, val, env):
|
||||||
|
normalized = val if os.path.isabs(val) else os.path.join(env.Dir("#").abspath, val)
|
||||||
|
if not os.path.isdir(normalized):
|
||||||
|
raise UserError("GDExtension directory ('%s') does not exist: %s" % (key, val))
|
||||||
|
|
||||||
|
|
||||||
env = Environment()
|
env = Environment()
|
||||||
opts = Variables(["customs.py"], ARGUMENTS)
|
opts = Variables(["customs.py"], ARGUMENTS)
|
||||||
opts.Add(EnumVariable("godot_version", "The Godot target version", "4.1", ["3", "4.0", "4.1"]))
|
opts.Add(EnumVariable("godot_version", "The Godot target version", "4.1", ["3", "4.0", "4.1"]))
|
||||||
|
opts.Add(
|
||||||
|
PathVariable(
|
||||||
|
"godot_cpp",
|
||||||
|
"Path to the directory containing Godot CPP folder",
|
||||||
|
None,
|
||||||
|
validate_godotcpp_dir,
|
||||||
|
)
|
||||||
|
)
|
||||||
opts.Update(env)
|
opts.Update(env)
|
||||||
|
|
||||||
# Minimum target platform versions.
|
# Minimum target platform versions.
|
||||||
@@ -29,15 +47,19 @@ if "macos_deployment_target" not in ARGUMENTS:
|
|||||||
if "android_api_level" not in ARGUMENTS:
|
if "android_api_level" not in ARGUMENTS:
|
||||||
ARGUMENTS["android_api_level"] = "28"
|
ARGUMENTS["android_api_level"] = "28"
|
||||||
|
|
||||||
|
# Recent godot-cpp versions disables exceptions by default, but libdatachannel requires them.
|
||||||
|
ARGUMENTS["disable_exceptions"] = "no"
|
||||||
|
|
||||||
if env["godot_version"] == "3":
|
if env["godot_version"] == "3":
|
||||||
if "platform" in ARGUMENTS and ARGUMENTS["platform"] == "macos":
|
if "platform" in ARGUMENTS and ARGUMENTS["platform"] == "macos":
|
||||||
ARGUMENTS["platform"] = "osx" # compatibility with old osx name
|
ARGUMENTS["platform"] = "osx" # compatibility with old osx name
|
||||||
|
|
||||||
env = SConscript("godot-cpp-3.x/SConstruct")
|
sconstruct = env.get("godot_cpp", "godot-cpp-3.x") + "/SConstruct"
|
||||||
|
cpp_env = SConscript(sconstruct)
|
||||||
|
|
||||||
# Patch base env
|
# Patch base env
|
||||||
replace_flags(
|
replace_flags(
|
||||||
env["CCFLAGS"],
|
cpp_env["CCFLAGS"],
|
||||||
{
|
{
|
||||||
"-mios-simulator-version-min=10.0": "-mios-simulator-version-min=11.0",
|
"-mios-simulator-version-min=10.0": "-mios-simulator-version-min=11.0",
|
||||||
"-miphoneos-version-min=10.0": "-miphoneos-version-min=11.0",
|
"-miphoneos-version-min=10.0": "-miphoneos-version-min=11.0",
|
||||||
@@ -46,7 +68,7 @@ if env["godot_version"] == "3":
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
env = env.Clone()
|
env = cpp_env.Clone()
|
||||||
|
|
||||||
if env["target"] == "debug":
|
if env["target"] == "debug":
|
||||||
env.Append(CPPDEFINES=["DEBUG_ENABLED"])
|
env.Append(CPPDEFINES=["DEBUG_ENABLED"])
|
||||||
@@ -64,7 +86,7 @@ if env["godot_version"] == "3":
|
|||||||
|
|
||||||
# Normalize suffix
|
# Normalize suffix
|
||||||
if env["platform"] in ["windows", "linux"]:
|
if env["platform"] in ["windows", "linux"]:
|
||||||
env["arch"] = "x86_32" if env["bits"] == "32" else "x86_64"
|
env["arch"] = ARGUMENTS.get("arch", "x86_32" if env["bits"] == "32" else "x86_64")
|
||||||
env["arch_suffix"] = env["arch"]
|
env["arch_suffix"] = env["arch"]
|
||||||
elif env["platform"] == "macos":
|
elif env["platform"] == "macos":
|
||||||
env["arch"] = env["macos_arch"]
|
env["arch"] = env["macos_arch"]
|
||||||
@@ -96,10 +118,23 @@ if env["godot_version"] == "3":
|
|||||||
elif not env["use_mingw"]:
|
elif not env["use_mingw"]:
|
||||||
# Mark as MSVC build (would have failed to build the library otherwise).
|
# Mark as MSVC build (would have failed to build the library otherwise).
|
||||||
env["is_msvc"] = True
|
env["is_msvc"] = True
|
||||||
|
# Some linux specific hacks to allow cross-compiling for non-x86 machines.
|
||||||
|
if env["platform"] == "linux" and env["arch"] not in ("x86_32", "x86_64"):
|
||||||
|
for flags in (env["CCFLAGS"], env["LINKFLAGS"], cpp_env["CCFLAGS"], cpp_env["LINKFLAGS"]):
|
||||||
|
replace_flags(flags, {"-m32": None, "-m64": None})
|
||||||
elif env["godot_version"] == "4.0":
|
elif env["godot_version"] == "4.0":
|
||||||
env = SConscript("godot-cpp-4.0/SConstruct").Clone()
|
sconstruct = env.get("godot_cpp", "godot-cpp-4.0") + "/SConstruct"
|
||||||
|
cpp_env = SConscript(sconstruct)
|
||||||
|
env = cpp_env.Clone()
|
||||||
else:
|
else:
|
||||||
env = SConscript("godot-cpp/SConstruct").Clone()
|
sconstruct = env.get("godot_cpp", "godot-cpp") + "/SConstruct"
|
||||||
|
cpp_env = SConscript(sconstruct)
|
||||||
|
env = cpp_env.Clone()
|
||||||
|
|
||||||
|
if cpp_env.get("is_msvc", False):
|
||||||
|
# Make sure we don't build with static cpp on MSVC (default in recent godot-cpp versions).
|
||||||
|
replace_flags(env["CCFLAGS"], {"/MT": "/MD"})
|
||||||
|
replace_flags(cpp_env["CCFLAGS"], {"/MT": "/MD"})
|
||||||
|
|
||||||
# Should probably go to upstream godot-cpp.
|
# Should probably go to upstream godot-cpp.
|
||||||
# We let SCons build its default ENV as it includes OS-specific things which we don't
|
# We let SCons build its default ENV as it includes OS-specific things which we don't
|
||||||
@@ -120,18 +155,6 @@ if env["platform"] == "macos" and os.environ.get("OSXCROSS_ROOT", ""):
|
|||||||
if env["macos_deployment_target"] != "default":
|
if env["macos_deployment_target"] != "default":
|
||||||
env["ENV"]["MACOSX_DEPLOYMENT_TARGET"] = env["macos_deployment_target"]
|
env["ENV"]["MACOSX_DEPLOYMENT_TARGET"] = env["macos_deployment_target"]
|
||||||
|
|
||||||
# Patch linux flags to statically link libgcc and libstdc++
|
|
||||||
if env["platform"] == "linux":
|
|
||||||
env.Append(
|
|
||||||
LINKFLAGS=[
|
|
||||||
"-Wl,--no-undefined",
|
|
||||||
"-static-libgcc",
|
|
||||||
"-static-libstdc++",
|
|
||||||
]
|
|
||||||
)
|
|
||||||
# And add some linux dependencies.
|
|
||||||
env.Append(LIBS=["pthread", "dl"])
|
|
||||||
|
|
||||||
opts.Update(env)
|
opts.Update(env)
|
||||||
|
|
||||||
target = env["target"]
|
target = env["target"]
|
||||||
@@ -175,9 +198,42 @@ rtc = env.BuildLibDataChannel(ssl)
|
|||||||
# but it's better to be safe in case of indirect inclusions by one of our other dependencies.
|
# but it's better to be safe in case of indirect inclusions by one of our other dependencies.
|
||||||
env.Depends(sources, ssl + rtc)
|
env.Depends(sources, ssl + rtc)
|
||||||
|
|
||||||
|
# We want to statically link against libstdc++ on Linux to maximize compatibility, but we must restrict the exported
|
||||||
|
# symbols using a GCC version script, or we might end up overriding symbols from other libraries.
|
||||||
|
# Using "-fvisibility=hidden" will not work, since libstdc++ explicitly exports its symbols.
|
||||||
|
symbols_file = None
|
||||||
|
if env["platform"] == "linux" or (
|
||||||
|
env["platform"] == "windows" and env.get("use_mingw", False) and not env.get("use_llvm", False)
|
||||||
|
):
|
||||||
|
if env["godot_version"] == "3":
|
||||||
|
symbols_file = env.File("misc/gcc/symbols-gdnative.map")
|
||||||
|
else:
|
||||||
|
symbols_file = env.File("misc/gcc/symbols-extension.map")
|
||||||
|
env.Append(
|
||||||
|
LINKFLAGS=[
|
||||||
|
"-Wl,--no-undefined,--version-script=" + symbols_file.abspath,
|
||||||
|
"-static-libgcc",
|
||||||
|
"-static-libstdc++",
|
||||||
|
]
|
||||||
|
)
|
||||||
|
env.Depends(sources, symbols_file)
|
||||||
|
|
||||||
# Make the shared library
|
# Make the shared library
|
||||||
result_name = "libwebrtc_native{}{}".format(env["suffix"], env["SHLIBSUFFIX"])
|
result_name = "libwebrtc_native{}{}".format(env["suffix"], env["SHLIBSUFFIX"])
|
||||||
library = env.SharedLibrary(target=os.path.join(result_path, "lib", result_name), source=sources)
|
if env["godot_version"] != "3" and env["platform"] == "macos":
|
||||||
|
framework_path = os.path.join(
|
||||||
|
result_path, "lib", "libwebrtc_native.macos.{}.{}.framework".format(env["target"], env["arch"])
|
||||||
|
)
|
||||||
|
library_file = env.SharedLibrary(target=os.path.join(framework_path, result_name), source=sources)
|
||||||
|
plist_file = env.Substfile(
|
||||||
|
os.path.join(framework_path, "Resources", "Info.plist"),
|
||||||
|
"misc/dist/macos/Info.plist",
|
||||||
|
SUBST_DICT={"{LIBRARY_NAME}": result_name, "{DISPLAY_NAME}": "libwebrtc_native" + env["suffix"]},
|
||||||
|
)
|
||||||
|
library = [library_file, plist_file]
|
||||||
|
else:
|
||||||
|
library = env.SharedLibrary(target=os.path.join(result_path, "lib", result_name), source=sources)
|
||||||
|
|
||||||
Default(library)
|
Default(library)
|
||||||
|
|
||||||
# GDNativeLibrary
|
# GDNativeLibrary
|
||||||
|
|||||||
28
misc/dist/macos/Info.plist
vendored
Normal file
28
misc/dist/macos/Info.plist
vendored
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>{LIBRARY_NAME}</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>org.godotengine.webrtc-native</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleDisplayName</key>
|
||||||
|
<string>{DISPLAY_NAME}</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>webrtc_native</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>FMWK</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>1.0.0</string>
|
||||||
|
<key>CFBundleSupportedPlatforms</key>
|
||||||
|
<array>
|
||||||
|
<string>MacOSX</string>
|
||||||
|
</array>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>1.0.0</string>
|
||||||
|
<key>LSMinimumSystemVersion</key>
|
||||||
|
<string>11.0</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
6
misc/gcc/symbols-extension.map
Normal file
6
misc/gcc/symbols-extension.map
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
global:
|
||||||
|
webrtc_extension_init;
|
||||||
|
local:
|
||||||
|
*;
|
||||||
|
};
|
||||||
9
misc/gcc/symbols-gdnative.map
Normal file
9
misc/gcc/symbols-gdnative.map
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
global:
|
||||||
|
godot_gdnative_singleton;
|
||||||
|
godot_gdnative_init;
|
||||||
|
godot_gdnative_terminate;
|
||||||
|
godot_nativescript_init;
|
||||||
|
local:
|
||||||
|
*;
|
||||||
|
};
|
||||||
34
misc/patches/gdnantive_arm_warnings.diff
Normal file
34
misc/patches/gdnantive_arm_warnings.diff
Normal file
@@ -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)
|
||||||
@@ -39,6 +39,8 @@ for f in "${files[@]}"; do
|
|||||||
continue
|
continue
|
||||||
elif [[ "$f" == "thirdparty/"* ]]; then
|
elif [[ "$f" == "thirdparty/"* ]]; then
|
||||||
continue
|
continue
|
||||||
|
elif [[ "$f" == "misc/patches/"* ]]; then
|
||||||
|
continue
|
||||||
elif [[ "$f" == *"/thirdparty/"* ]]; then
|
elif [[ "$f" == *"/thirdparty/"* ]]; then
|
||||||
continue
|
continue
|
||||||
elif [[ "$f" == "platform/android/java/lib/src/com/google"* ]]; then
|
elif [[ "$f" == "platform/android/java/lib/src/com/google"* ]]; then
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ DESTDIR="${DESTINATION}/${VERSION}/${TYPE}"
|
|||||||
|
|
||||||
mkdir -p ${DESTDIR}/lib
|
mkdir -p ${DESTDIR}/lib
|
||||||
|
|
||||||
find "${ARTIFACTS}" -wholename "*/${VERSION}/${TYPE}/lib/*" | xargs cp -t "${DESTDIR}/lib/"
|
find "${ARTIFACTS}" -maxdepth 5 -wholename "*/${VERSION}/${TYPE}/lib/*" | xargs cp -r -t "${DESTDIR}/lib/"
|
||||||
find "${ARTIFACTS}" -wholename "*/LICENSE*" | xargs cp -t "${DESTDIR}/"
|
find "${ARTIFACTS}" -wholename "*/LICENSE*" | xargs cp -t "${DESTDIR}/"
|
||||||
|
|
||||||
if [ $VERSION = "gdnative" ]; then
|
if [ $VERSION = "gdnative" ]; then
|
||||||
|
|||||||
@@ -5,26 +5,26 @@ compatibility_minimum = {GODOT_VERSION}
|
|||||||
|
|
||||||
[libraries]
|
[libraries]
|
||||||
|
|
||||||
linux.debug.x86_64 = "res://webrtc/lib/libwebrtc_native.linux.template_debug.x86_64.so"
|
linux.debug.x86_64 = "lib/libwebrtc_native.linux.template_debug.x86_64.so"
|
||||||
linux.debug.x86_32 = "res://webrtc/lib/libwebrtc_native.linux.template_debug.x86_32.so"
|
linux.debug.x86_32 = "lib/libwebrtc_native.linux.template_debug.x86_32.so"
|
||||||
linux.debug.arm64 = "res://webrtc/lib/libwebrtc_native.linux.template_debug.arm64.so"
|
linux.debug.arm64 = "lib/libwebrtc_native.linux.template_debug.arm64.so"
|
||||||
linux.debug.arm32 = "res://webrtc/lib/libwebrtc_native.linux.template_debug.arm32.so"
|
linux.debug.arm32 = "lib/libwebrtc_native.linux.template_debug.arm32.so"
|
||||||
macos.debug = "res://webrtc/lib/libwebrtc_native.macos.template_debug.universal.dylib"
|
macos.debug = "lib/libwebrtc_native.macos.template_debug.universal.framework"
|
||||||
windows.debug.x86_64 = "res://webrtc/lib/libwebrtc_native.windows.template_debug.x86_64.dll"
|
windows.debug.x86_64 = "lib/libwebrtc_native.windows.template_debug.x86_64.dll"
|
||||||
windows.debug.x86_32 = "res://webrtc/lib/libwebrtc_native.windows.template_debug.x86_32.dll"
|
windows.debug.x86_32 = "lib/libwebrtc_native.windows.template_debug.x86_32.dll"
|
||||||
android.debug.arm64 = "res://webrtc/lib/libwebrtc_native.android.template_debug.arm64.so"
|
android.debug.arm64 = "lib/libwebrtc_native.android.template_debug.arm64.so"
|
||||||
android.debug.x86_64 = "res://webrtc/lib/libwebrtc_native.android.template_debug.x86_64.so"
|
android.debug.x86_64 = "lib/libwebrtc_native.android.template_debug.x86_64.so"
|
||||||
ios.debug.arm64 = "res://webrtc/lib/libwebrtc_native.ios.template_debug.arm64.dylib"
|
ios.debug.arm64 = "lib/libwebrtc_native.ios.template_debug.arm64.dylib"
|
||||||
ios.debug.x86_64 = "res://webrtc/lib/libwebrtc_native.ios.template_debug.x86_64.simulator.dylib"
|
ios.debug.x86_64 = "lib/libwebrtc_native.ios.template_debug.x86_64.simulator.dylib"
|
||||||
|
|
||||||
linux.release.x86_64 = "res://webrtc/lib/libwebrtc_native.linux.template_release.x86_64.so"
|
linux.release.x86_64 = "lib/libwebrtc_native.linux.template_release.x86_64.so"
|
||||||
linux.release.x86_32 = "res://webrtc/lib/libwebrtc_native.linux.template_release.x86_32.so"
|
linux.release.x86_32 = "lib/libwebrtc_native.linux.template_release.x86_32.so"
|
||||||
linux.release.arm64 = "res://webrtc/lib/libwebrtc_native.linux.template_release.arm64.so"
|
linux.release.arm64 = "lib/libwebrtc_native.linux.template_release.arm64.so"
|
||||||
linux.release.arm32 = "res://webrtc/lib/libwebrtc_native.linux.template_release.arm32.so"
|
linux.release.arm32 = "lib/libwebrtc_native.linux.template_release.arm32.so"
|
||||||
macos.release = "res://webrtc/lib/libwebrtc_native.macos.template_release.universal.dylib"
|
macos.release = "lib/libwebrtc_native.macos.template_release.universal.framework"
|
||||||
windows.release.x86_64 = "res://webrtc/lib/libwebrtc_native.windows.template_release.x86_64.dll"
|
windows.release.x86_64 = "lib/libwebrtc_native.windows.template_release.x86_64.dll"
|
||||||
windows.release.x86_32 = "res://webrtc/lib/libwebrtc_native.windows.template_release.x86_32.dll"
|
windows.release.x86_32 = "lib/libwebrtc_native.windows.template_release.x86_32.dll"
|
||||||
android.release.arm64 = "res://webrtc/lib/libwebrtc_native.android.template_release.arm64.so"
|
android.release.arm64 = "lib/libwebrtc_native.android.template_release.arm64.so"
|
||||||
android.release.x86_64 = "res://webrtc/lib/libwebrtc_native.android.template_release.x86_64.so"
|
android.release.x86_64 = "lib/libwebrtc_native.android.template_release.x86_64.so"
|
||||||
ios.release.arm64 = "res://webrtc/lib/libwebrtc_native.ios.template_release.arm64.dylib"
|
ios.release.arm64 = "lib/libwebrtc_native.ios.template_release.arm64.dylib"
|
||||||
ios.release.x86_64 = "res://webrtc/lib/libwebrtc_native.ios.template_release.x86_64.simulator.dylib"
|
ios.release.x86_64 = "lib/libwebrtc_native.ios.template_release.x86_64.simulator.dylib"
|
||||||
|
|||||||
@@ -6,10 +6,14 @@ reloadable = false
|
|||||||
entry/OSX.64 = "res://{GDNATIVE_PATH}/lib/libwebrtc_native.macos.{TARGET}.universal.dylib"
|
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.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/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.64.x86_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/X11.32.x86_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/X11.64.arm64 = "res://{GDNATIVE_PATH}/lib/libwebrtc_native.linux.{TARGET}.arm64.so"
|
||||||
entry/Server.32 = "res://{GDNATIVE_PATH}/lib/libwebrtc_native.linux.{TARGET}.x86_32.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.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/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"
|
entry/iOS.armv7 = "res://{GDNATIVE_PATH}/lib/libwebrtc_native.ios.{TARGET}.armv32.dylib"
|
||||||
|
|||||||
@@ -143,12 +143,12 @@ int32_t WebRTCLibDataChannel::_get_id() const {
|
|||||||
|
|
||||||
int32_t WebRTCLibDataChannel::_get_max_packet_life_time() const {
|
int32_t WebRTCLibDataChannel::_get_max_packet_life_time() const {
|
||||||
ERR_FAIL_COND_V(!channel, 0);
|
ERR_FAIL_COND_V(!channel, 0);
|
||||||
return channel->reliability().type == rtc::Reliability::Type::Timed ? std::get<std::chrono::milliseconds>(channel->reliability().rexmit).count() : -1;
|
return channel->reliability().maxPacketLifeTime.has_value() ? channel->reliability().maxPacketLifeTime.value().count() : -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t WebRTCLibDataChannel::_get_max_retransmits() const {
|
int32_t WebRTCLibDataChannel::_get_max_retransmits() const {
|
||||||
ERR_FAIL_COND_V(!channel, 0);
|
ERR_FAIL_COND_V(!channel, 0);
|
||||||
return channel->reliability().type == rtc::Reliability::Type::Rexmit ? std::get<int>(channel->reliability().rexmit) : -1;
|
return channel->reliability().maxRetransmits.value_or(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
String WebRTCLibDataChannel::_get_protocol() const {
|
String WebRTCLibDataChannel::_get_protocol() const {
|
||||||
|
|||||||
@@ -74,6 +74,10 @@ private:
|
|||||||
protected:
|
protected:
|
||||||
static void _bind_methods() {}
|
static void _bind_methods() {}
|
||||||
|
|
||||||
|
godot::String _to_string() const {
|
||||||
|
return "WebRTCLibDataChannel";
|
||||||
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static WebRTCLibDataChannel *new_data_channel(std::shared_ptr<rtc::DataChannel> p_channel, bool p_negotiated);
|
static WebRTCLibDataChannel *new_data_channel(std::shared_ptr<rtc::DataChannel> p_channel, bool p_negotiated);
|
||||||
|
|
||||||
|
|||||||
@@ -39,15 +39,36 @@ using namespace godot_webrtc;
|
|||||||
#define FAILED Error::FAILED
|
#define FAILED Error::FAILED
|
||||||
#define ERR_UNCONFIGURED Error::ERR_UNCONFIGURED
|
#define ERR_UNCONFIGURED Error::ERR_UNCONFIGURED
|
||||||
#define ERR_INVALID_PARAMETER Error::ERR_INVALID_PARAMETER
|
#define ERR_INVALID_PARAMETER Error::ERR_INVALID_PARAMETER
|
||||||
|
#define VERBOSE_PRINT(str) Godot::print(str)
|
||||||
|
#else
|
||||||
|
#include <godot_cpp/variant/utility_functions.hpp>
|
||||||
|
#define VERBOSE_PRINT(str) UtilityFunctions::print_verbose(str)
|
||||||
#endif
|
#endif
|
||||||
|
void LogCallback(rtc::LogLevel level, std::string message) {
|
||||||
|
switch (level) {
|
||||||
|
case rtc::LogLevel::Fatal:
|
||||||
|
case rtc::LogLevel::Error:
|
||||||
|
ERR_PRINT(message.c_str());
|
||||||
|
return;
|
||||||
|
case rtc::LogLevel::Warning:
|
||||||
|
WARN_PRINT(message.c_str());
|
||||||
|
return;
|
||||||
|
default:
|
||||||
|
VERBOSE_PRINT(message.c_str());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void WebRTCLibPeerConnection::initialize_signaling() {
|
void WebRTCLibPeerConnection::initialize_signaling() {
|
||||||
#ifdef DEBUG_ENABLED
|
#ifdef DEBUG_ENABLED
|
||||||
rtc::InitLogger(rtc::LogLevel::Debug);
|
rtc::InitLogger(rtc::LogLevel::Debug, LogCallback);
|
||||||
|
#else
|
||||||
|
rtc::InitLogger(rtc::LogLevel::Warning, LogCallback);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void WebRTCLibPeerConnection::deinitialize_signaling() {
|
void WebRTCLibPeerConnection::deinitialize_signaling() {
|
||||||
|
rtc::Cleanup();
|
||||||
}
|
}
|
||||||
|
|
||||||
Error WebRTCLibPeerConnection::_parse_ice_server(rtc::Configuration &r_config, Dictionary p_server) {
|
Error WebRTCLibPeerConnection::_parse_ice_server(rtc::Configuration &r_config, Dictionary p_server) {
|
||||||
@@ -95,11 +116,9 @@ Error WebRTCLibPeerConnection::_parse_channel_config(rtc::DataChannelInit &r_con
|
|||||||
// Channels cannot be both time-constrained and retry-constrained.
|
// Channels cannot be both time-constrained and retry-constrained.
|
||||||
ERR_FAIL_COND_V(p_dict.has("maxPacketLifeTime") && p_dict.has("maxRetransmits"), ERR_INVALID_PARAMETER);
|
ERR_FAIL_COND_V(p_dict.has("maxPacketLifeTime") && p_dict.has("maxRetransmits"), ERR_INVALID_PARAMETER);
|
||||||
if (p_dict.has("maxPacketLifeTime")) {
|
if (p_dict.has("maxPacketLifeTime")) {
|
||||||
r_config.reliability.type = rtc::Reliability::Type::Timed;
|
r_config.reliability.maxPacketLifeTime = std::chrono::milliseconds(p_dict["maxPacketLifeTime"].operator int32_t());
|
||||||
r_config.reliability.rexmit = std::chrono::milliseconds(p_dict["maxPacketLifeTime"].operator int32_t());
|
|
||||||
} else if (p_dict.has("maxRetransmits")) {
|
} else if (p_dict.has("maxRetransmits")) {
|
||||||
r_config.reliability.type = rtc::Reliability::Type::Rexmit;
|
r_config.reliability.maxRetransmits = p_dict["maxRetransmits"].operator int32_t();
|
||||||
r_config.reliability.rexmit = p_dict["maxRetransmits"].operator int32_t();
|
|
||||||
}
|
}
|
||||||
if (p_dict.has("ordered") && p_dict["ordered"].operator bool() == false) {
|
if (p_dict.has("ordered") && p_dict["ordered"].operator bool() == false) {
|
||||||
r_config.reliability.unordered = true;
|
r_config.reliability.unordered = true;
|
||||||
|
|||||||
@@ -67,6 +67,10 @@ private:
|
|||||||
protected:
|
protected:
|
||||||
static void _bind_methods() {}
|
static void _bind_methods() {}
|
||||||
|
|
||||||
|
godot::String _to_string() const {
|
||||||
|
return "WebRTCLibPeerConnection";
|
||||||
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static void _register_methods() {}
|
static void _register_methods() {}
|
||||||
static void initialize_signaling();
|
static void initialize_signaling();
|
||||||
|
|||||||
14
thirdparty/README.md
vendored
14
thirdparty/README.md
vendored
@@ -8,7 +8,7 @@ readability.
|
|||||||
## json
|
## json
|
||||||
|
|
||||||
- Upstream: https://github.com/nlohmann/json
|
- Upstream: https://github.com/nlohmann/json
|
||||||
- Version: 3.10.5 (4f8fba14066156b73f1189a2b8bd568bde5284c5, 2022)
|
- Version: 3.11.3 (9cca280a4d0ccf0c08f47a99aa71d1b0e52f8d03, 2023)
|
||||||
- License: MIT
|
- License: MIT
|
||||||
|
|
||||||
Module location:
|
Module location:
|
||||||
@@ -19,7 +19,7 @@ Module location:
|
|||||||
## libdatachannel
|
## libdatachannel
|
||||||
|
|
||||||
- Upstream: https://github.com/paullouisageneau/libdatachannel
|
- Upstream: https://github.com/paullouisageneau/libdatachannel
|
||||||
- Version: 0.18.6 (bf8d8bd86afaffed89ba763107bcd8957c8cc319, 2023)
|
- Version: 0.20.2 (0b1074a9effeb8d9d3f4eca704d3fe3d2f9bc7e5, 2024)
|
||||||
- License: MPL 2.0
|
- License: MPL 2.0
|
||||||
|
|
||||||
Module location:
|
Module location:
|
||||||
@@ -30,7 +30,7 @@ Module location:
|
|||||||
# libjuice
|
# libjuice
|
||||||
|
|
||||||
- Upstream: https://github.com/paullouisageneau/libjuice
|
- Upstream: https://github.com/paullouisageneau/libjuice
|
||||||
- Version: 1.2.3 (8c23cc88c6d41e5ccbc44ea0ad3d79b22cf02361, 2023)
|
- Version: 1.3.4 (0b6f958baba55e1a4eb31ec2137f62b2e07382ae, 2024)
|
||||||
- License: MPL 2.0
|
- License: MPL 2.0
|
||||||
|
|
||||||
Module location:
|
Module location:
|
||||||
@@ -52,7 +52,7 @@ Module location:
|
|||||||
## openssl
|
## openssl
|
||||||
|
|
||||||
- Upstream: git://git.openssl.org/openssl.git
|
- Upstream: git://git.openssl.org/openssl.git
|
||||||
- Version: 3.0.10 (245cb0291e0db99d9ccf3692fa76f440b2b054c2, 2023)
|
- Version: 3.0.13 (85cf92f55d9e2ac5aacf92bedd33fb890b9f8b4c, 2024)
|
||||||
- License: Apache 2.0
|
- License: Apache 2.0
|
||||||
|
|
||||||
Module location:
|
Module location:
|
||||||
@@ -63,8 +63,8 @@ Module location:
|
|||||||
## plog
|
## plog
|
||||||
|
|
||||||
- Upstream: https://github.com/SergiusTheBest/plog
|
- Upstream: https://github.com/SergiusTheBest/plog
|
||||||
- Version: git (d8461e9d473e59fbcc1f79eee021550dcf81e618, 2021)
|
- Version: 1.1.10 (e21baecd4753f14da64ede979c5a19302618b752, 2023)
|
||||||
- License: MPL 2.0
|
- License: MIT
|
||||||
|
|
||||||
Module location:
|
Module location:
|
||||||
|
|
||||||
@@ -74,7 +74,7 @@ Module location:
|
|||||||
## usrsctp
|
## usrsctp
|
||||||
|
|
||||||
- Upstream: https://github.com/sctplab/usrsctp
|
- Upstream: https://github.com/sctplab/usrsctp
|
||||||
- Version: git (7c31bd35c79ba67084ce029511193a19ceb97447, 2021)
|
- Version: git (ebb18adac6501bad4501b1f6dccb67a1c85cc299, 2023)
|
||||||
- License: BSD-3-Clause
|
- License: BSD-3-Clause
|
||||||
|
|
||||||
Module location:
|
Module location:
|
||||||
|
|||||||
2
thirdparty/libdatachannel
vendored
2
thirdparty/libdatachannel
vendored
Submodule thirdparty/libdatachannel updated: bf8d8bd86a...0b1074a9ef
2
thirdparty/openssl
vendored
2
thirdparty/openssl
vendored
Submodule thirdparty/openssl updated: 245cb0291e...85cf92f55d
@@ -37,6 +37,8 @@ def cmake_default_flags(env):
|
|||||||
linux_flags = {
|
linux_flags = {
|
||||||
"x86_64": "-m64",
|
"x86_64": "-m64",
|
||||||
"x86_32": "-m32",
|
"x86_32": "-m32",
|
||||||
|
"arm32": "-march=armv7-a",
|
||||||
|
"arm64": "-march=armv8-a",
|
||||||
}.get(env["arch"], "")
|
}.get(env["arch"], "")
|
||||||
if linux_flags:
|
if linux_flags:
|
||||||
config["CMAKE_C_FLAGS"] = linux_flags
|
config["CMAKE_C_FLAGS"] = linux_flags
|
||||||
|
|||||||
@@ -125,6 +125,8 @@ def build_openssl(env, jobs=None):
|
|||||||
env.Prepend(LIBPATH=[env["SSL_BUILD"]])
|
env.Prepend(LIBPATH=[env["SSL_BUILD"]])
|
||||||
if env["platform"] == "windows":
|
if env["platform"] == "windows":
|
||||||
env.PrependUnique(LIBS=["crypt32", "ws2_32", "advapi32", "user32"])
|
env.PrependUnique(LIBS=["crypt32", "ws2_32", "advapi32", "user32"])
|
||||||
|
if env["platform"] == "linux":
|
||||||
|
env.PrependUnique(LIBS=["pthread", "dl"])
|
||||||
env.Prepend(LIBS=env["SSL_LIBS"])
|
env.Prepend(LIBS=env["SSL_LIBS"])
|
||||||
return [env["SSL_CRYPTO_LIBRARY"], env["SSL_LIBRARY"]]
|
return [env["SSL_CRYPTO_LIBRARY"], env["SSL_LIBRARY"]]
|
||||||
|
|
||||||
@@ -169,6 +171,8 @@ def build_openssl(env, jobs=None):
|
|||||||
env.Prepend(LIBPATH=[env["SSL_BUILD"]])
|
env.Prepend(LIBPATH=[env["SSL_BUILD"]])
|
||||||
if env["platform"] == "windows":
|
if env["platform"] == "windows":
|
||||||
env.PrependUnique(LIBS=["crypt32", "ws2_32", "advapi32", "user32"])
|
env.PrependUnique(LIBS=["crypt32", "ws2_32", "advapi32", "user32"])
|
||||||
|
if env["platform"] == "linux":
|
||||||
|
env.PrependUnique(LIBS=["pthread", "dl"])
|
||||||
env.Prepend(LIBS=env["SSL_LIBS"])
|
env.Prepend(LIBS=env["SSL_LIBS"])
|
||||||
|
|
||||||
return ssl
|
return ssl
|
||||||
|
|||||||
@@ -37,6 +37,8 @@ def build_library(env, ssl):
|
|||||||
# Configure env.
|
# Configure env.
|
||||||
if env["platform"] == "windows":
|
if env["platform"] == "windows":
|
||||||
env.PrependUnique(LIBS=["iphlpapi", "bcrypt"])
|
env.PrependUnique(LIBS=["iphlpapi", "bcrypt"])
|
||||||
|
if env["platform"] == "linux":
|
||||||
|
env.PrependUnique(LIBS=["pthread"])
|
||||||
env.Prepend(LIBS=list(filter(lambda f: str(f).endswith(lib_ext), rtc)))
|
env.Prepend(LIBS=list(filter(lambda f: str(f).endswith(lib_ext), rtc)))
|
||||||
env.Append(CPPPATH=["#thirdparty/libdatachannel/include"])
|
env.Append(CPPPATH=["#thirdparty/libdatachannel/include"])
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user