Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WebRTC を M121 に更新する #54

Merged
merged 24 commits into from
Jan 29, 2024
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
1790263
WebRTC を m121.6167.3.0 に上げる
torikizi Jan 16, 2024
e329eca
Ubuntu でビルドする際の install_boost_args に _LIBCPP_HARDENING_MODE の指定が必要だった
enm10k Jan 16, 2024
1fc82be
Lyra にも _LIBCPP_HARDENING_MODE の指定が必要だった
enm10k Jan 16, 2024
1577a1e
VPL と Blend2S にも _LIBCPP_HARDENING_MODE を指定する
enm10k Jan 16, 2024
4cd6858
Blend2D への追加方法が間違っていたので修正する
enm10k Jan 16, 2024
d519122
sora にも _LIBCPP_HARDENING_MODE を指定する
enm10k Jan 16, 2024
01be8ce
Lyra への指定が漏れていたので追加する
enm10k Jan 16, 2024
0864183
webrtc::ConnectionContext::Create が Environment を引数にとるようになったので対応する
enm10k Jan 16, 2024
8fa0fec
Android の test にも _LIBCPP_HARDENING_MODE の指定が必要だった
enm10k Jan 17, 2024
c763309
clang と CUDA のバージョンを上げる
enm10k Jan 17, 2024
6f83209
https://github.com/llvm/llvm-project-release-prs/pull/698 を参考にビルド・エラー…
enm10k Jan 17, 2024
7421e5f
Windows で利用する CUDA も 11.8 にする
enm10k Jan 17, 2024
291be2e
CUDA のバージョン・アップに伴い、ディレクトリの構成が変わり nvcc が nvcc と cudart に分割されていた
enm10k Jan 17, 2024
706d793
include/sora/fix_cuda_noinline_macro_error.h を追加する
enm10k Jan 19, 2024
43ea5d3
libwebrtc M121 に対応する
enm10k Jan 16, 2024
108c476
CHANGES.md を更新する
enm10k Jan 25, 2024
c89cee7
インストールするパッケージを (cuda-toolkit ではなく) cuda にすることでパッチ・バージョンが指定できた
enm10k Jan 25, 2024
3b18e8c
CHANGES.md を更新する
enm10k Jan 26, 2024
31fa477
CUDA の Windows インストーラーの URL を残す
enm10k Jan 26, 2024
4c214d1
Windows で CUDA をキャッシュするパスを変更する
enm10k Jan 26, 2024
03eb1f8
git checkout origin/develop -- third_party/NvCodec/
enm10k Jan 26, 2024
a215b95
third_party/NvCodec は自動フォーマットしない
enm10k Jan 26, 2024
be3a060
CUDA のビルド・エラーを修正するマクロをヘッダーで include するのを止める
enm10k Jan 26, 2024
aec1aa0
不要な include を削除する
enm10k Jan 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 7 additions & 8 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -163,19 +163,18 @@ jobs:
if: matrix.name == 'ubuntu-20.04_x86_64' || matrix.name == 'ubuntu-22.04_x86_64'
run: |
source VERSION
# clang-15 と CUDA を入れる
# clang-18 と CUDA を入れる
sudo apt-get update
sudo apt-get install -y software-properties-common
# CUDA 10 なので ubuntu1804 で正しい
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
DEBIAN_FRONTEND=noninteractive sudo apt-get -y install cuda=$CUDA_VERSION

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_*all.deb
sudo apt-get update
DEBIAN_FRONTEND=noninteractive sudo apt-get -y install cuda-toolkit-$CUDA_VERSION

wget https://apt.llvm.org/llvm.sh
chmod a+x llvm.sh
sudo ./llvm.sh 15
sudo ./llvm.sh 18

# Intel Media SDK のために libva-dev, libdrm-dev を入れる
DEBIAN_FRONTEND=noninteractive sudo apt-get -y install libva-dev libdrm-dev
Expand Down
9 changes: 9 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,17 @@

## develop

- [CHANGE] WebRTC を `m121.6167.3.0` にあげる
- libwebrtc から cricket::MediaEngineDependencies が削除されたため、 SoraClientContextConfig から configure_media_dependencies を削除した
- 同じく、 libwertc の更新に伴い webrtc::ConnectionContext のメソッド default_network_manager, default_socket_factory を signaling_thread 上で実行することが必須になった
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

これは以前からそうだったはずです。リリースビルドだと気が付かないから放置されてただけで。

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ありがとうございます。
CHANGES.md から記述を削除しました。

- @torikizi @enm10k
- [UPDATE] Boost を1.84.0 にあげる
- @enm10k
- [UPDATE] CMake を3.28.1 にあげる
- @enm10k
- [UPDATE] CUDA を 11.8 にあげる
- 更新時に発生したビルド・エラーを回避するために `include/sora/fix_cuda_noinline_macro_error.h` を追加した
- @enm10k

## 2024.1.0 (2024-01-16)

Expand Down
4 changes: 2 additions & 2 deletions VERSION
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
SORA_CPP_SDK_VERSION=2024.1.0
WEBRTC_BUILD_VERSION=m120.6099.1.2
WEBRTC_BUILD_VERSION=m121.6167.3.0
BOOST_VERSION=1.84.0
CMAKE_VERSION=3.28.1
BAZEL_VERSION=5.4.1
LYRA_VERSION=1.3.0
LYRA_COMPATIBLE_VERSION=1.3.0
CUDA_VERSION=10.2.89-1
CUDA_VERSION=11.8
ANDROID_NDK_VERSION=r26b
ANDROID_NATIVE_API_LEVEL=29
ANDROID_SDK_CMDLINE_TOOLS_VERSION=8092744
Expand Down
22 changes: 22 additions & 0 deletions include/sora/fix_cuda_noinline_macro_error.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/*
## 背景

WebRTC を M121 に更新した際に以下のビルド・エラーが発生した

```
error: use of undeclared identifier 'noinline'; did you mean 'inline'
```

WebRTC に含まれる libcxx のバージョンが更新されたことが原因だと思われる

## 対応

同様の問題を解消したと思われる LLVM の [PR](https://github.com/llvm/llvm-project-release-prs/pull/698) を調査したところ、 PR で追加されたファイルは存在するにも関わらず、問題が継続して発生していることがわかった
(libcxx に bits/basic_string.h が含まれておらず、 cuda_wrappers 以下のファイルがインクルードされていないようだった)

上記 PR を参考に、ファイルを直接修正したところエラーが解消したため、このヘッダー・ファイルをエラーが発生する箇所でインクルードすることにした
オリジナルのパッチには push_macro や pop_macro が含まれているが、省いても問題が無かったため省略している

*/

#undef __noinline__
4 changes: 4 additions & 0 deletions include/sora/hwenc_nvcodec/nvcodec_decoder_cuda.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@
#define SORA_HWENC_NVCODEC_NVCODEC_DECODER_CUDA_H_

#include <memory>

// clang-format off
#include "sora/fix_cuda_noinline_macro_error.h"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • 問題のある include があるたびにこのファイルを include するのはきつい
  • CUDA コンパイル時だけの問題なのに、ヘッダーでこのファイルを include すると、C++ のコンパイルにも影響が出る

なので CUDA ソースの先頭で include して解消するかどうか確認して、それで済むならそうしておきたいです。

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

 be3a060 で対応しました

#include <string>
// clang-format on

#include "sora/cuda_context.h"

Expand Down
9 changes: 0 additions & 9 deletions include/sora/sora_client_context.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,6 @@ struct SoraClientContextConfig {
// false にするとソフトウェアエンコーダ/デコーダのみになる(H.264 は利用できない)
bool use_hardware_encoder = true;

// MediaEngineDependencies をカスタマイズするためのコールバック関数
// デフォルトの値が設定された上で、cricket::CreateMediaEngine を生成する直前に呼ばれる
std::function<void(const webrtc::PeerConnectionFactoryDependencies&,
cricket::MediaEngineDependencies&)>
configure_media_dependencies;

// PeerConnectionFactoryDependencies をカスタマイズするためのコールバック関数
// デフォルトの値が設定された上で、PeerConnectionFactory を生成する直前に呼ばれる
std::function<void(webrtc::PeerConnectionFactoryDependencies&)>
Expand All @@ -43,9 +37,6 @@ struct SoraClientContextConfig {
// 使い方:
// sora::SoraClientContextConfig context_config;
// // 必要なら context_config をカスタマイズする
// context_config.configure_media_dependencies =
// [](const webrtc::PeerConnectionFactoryDependencies& dep,
// cricket::MediaEngineDependencies& mdep) { ... };
// context_config.configure_dependencies = [](webrtc::PeerConnectionFactoryDependencies& dep) { ... };
// // Android に対応する場合は get_android_application_context を設定する
// context_config.get_android_application_context = [](void* env) { ... };
Expand Down
63 changes: 47 additions & 16 deletions run.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import argparse
import multiprocessing
import hashlib
import glob
from typing import Callable, NamedTuple, Optional, List, Union, Dict
if platform.system() == 'Windows':
import winreg
Expand Down Expand Up @@ -351,6 +352,18 @@ def apply_patch(patch, dir, depth):
with open(patch) as stdin:
cmd(['patch', f'-p{depth}'], stdin=stdin)

# NOTE(enm10k): shutil.copytree に Python 3.8 で追加された dirs_exist_ok=True を指定して使いたかったが、 GitHub Actions の Windows のランナー (widnwos-2019) にインストールされている Python のバージョンが古くて利用できなかった
# actions/setup-python で Python 3.8 を設定してビルドしたところ、 Lyra のビルドがエラーになったためこの関数を自作した
# Windows のランナーを更新した場合は、この関数は不要になる可能性が高い
def copytree(src_dir, dst_dir):
for file_path in glob.glob(src_dir + '/**', recursive=True):
dest_path = os.path.join(dst_dir, os.path.relpath(file_path, src_dir))

if os.path.isdir(file_path):
os.makedirs(dest_path, exist_ok=True)
else:
shutil.copy2(file_path, dest_path)


@versioned
def install_webrtc(version, source_dir, install_dir, platform: str):
Expand Down Expand Up @@ -699,8 +712,8 @@ def install_bazel(version, source_dir, install_dir, platform: str):
def install_cuda_windows(version, source_dir, build_dir, install_dir):
rm_rf(os.path.join(build_dir, 'cuda'))
rm_rf(os.path.join(install_dir, 'cuda'))
if version == '10.2.89-1':
url = 'http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_441.22_win10.exe' # noqa: E501
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

以前のバージョンの URL は残しておいてあげても良さそう

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

残すことにしました

if version == '11.8':
url = 'https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_522.06_windows.exe' # noqa: E501
else:
raise f'Unknown CUDA version {version}'
file = download(url, source_dir)
Expand All @@ -709,7 +722,8 @@ def install_cuda_windows(version, source_dir, build_dir, install_dir):
mkdir_p(os.path.join(install_dir, 'cuda'))
with cd(os.path.join(build_dir, 'cuda')):
cmd(['7z', 'x', file])
os.rename(os.path.join(build_dir, 'cuda', 'nvcc'), os.path.join(install_dir, 'cuda', 'nvcc'))
copytree(os.path.join(build_dir, 'cuda', 'cuda_nvcc', 'nvcc'), os.path.join(install_dir, 'cuda'))
copytree(os.path.join(build_dir, 'cuda', 'cuda_cudart', 'cudart'), os.path.join(install_dir, 'cuda'))


@versioned
Expand Down Expand Up @@ -1272,6 +1286,7 @@ def install_deps(platform: Platform, source_dir, build_dir, install_dir, debug,
'-D_LIBCPP_ABI_NAMESPACE=Cr',
'-D_LIBCPP_ABI_VERSION=2',
'-D_LIBCPP_DISABLE_AVAILABILITY',
'-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE',
'-nostdinc++',
'-std=gnu++17',
f"-isystem{os.path.join(webrtc_info.libcxx_dir, 'include')}",
Expand All @@ -1298,6 +1313,7 @@ def install_deps(platform: Platform, source_dir, build_dir, install_dir, debug,
'-D_LIBCPP_ABI_NAMESPACE=Cr',
'-D_LIBCPP_ABI_VERSION=2',
'-D_LIBCPP_DISABLE_AVAILABILITY',
'-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE',
'-nostdinc++',
'-std=gnu++17',
f"-isystem{os.path.join(webrtc_info.libcxx_dir, 'include')}",
Expand All @@ -1315,6 +1331,7 @@ def install_deps(platform: Platform, source_dir, build_dir, install_dir, debug,
'-D_LIBCPP_ABI_NAMESPACE=Cr',
'-D_LIBCPP_ABI_VERSION=2',
'-D_LIBCPP_DISABLE_AVAILABILITY',
'-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE',
'-nostdinc++',
f"-isystem{os.path.join(webrtc_info.libcxx_dir, 'include')}",
'-fPIC',
Expand Down Expand Up @@ -1403,14 +1420,15 @@ def install_deps(platform: Platform, source_dir, build_dir, install_dir, debug,
install_vpl_args['cmake_args'].append(f"-DCMAKE_CXX_FLAGS={' '.join(cxxflags)}")
if platform.target.os == 'ubuntu':
cmake_args = []
cmake_args.append("-DCMAKE_C_COMPILER=clang-15")
cmake_args.append("-DCMAKE_CXX_COMPILER=clang++-15")
cmake_args.append("-DCMAKE_C_COMPILER=clang-18")
cmake_args.append("-DCMAKE_CXX_COMPILER=clang++-18")
path = cmake_path(os.path.join(webrtc_info.libcxx_dir, 'include'))
cmake_args.append(f"-DCMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES={path}")
flags = [
'-nostdinc++', '-D_LIBCPP_ABI_NAMESPACE=Cr', '-D_LIBCPP_ABI_VERSION=2',
'-D_LIBCPP_DISABLE_AVAILABILITY', '-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS',
'-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS', '-D_LIBCPP_ENABLE_NODISCARD']
'-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS', '-D_LIBCPP_ENABLE_NODISCARD',
'-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE']
cmake_args.append(f"-DCMAKE_CXX_FLAGS={' '.join(flags)}")
install_vpl_args['cmake_args'] += cmake_args
install_vpl(**install_vpl_args)
Expand Down Expand Up @@ -1481,16 +1499,17 @@ def install_deps(platform: Platform, source_dir, build_dir, install_dir, debug,
cmake_args.append(f'-DCMAKE_SYSROOT={sysroot}')
if platform.target.os == 'ubuntu':
if platform.target.package_name in ('ubuntu-20.04_x86_64', 'ubuntu-22.04_x86_64'):
cmake_args.append("-DCMAKE_C_COMPILER=clang-15")
cmake_args.append("-DCMAKE_CXX_COMPILER=clang++-15")
cmake_args.append("-DCMAKE_C_COMPILER=clang-18")
cmake_args.append("-DCMAKE_CXX_COMPILER=clang++-18")
else:
cmake_args.append(
f"-DCMAKE_C_COMPILER={cmake_path(os.path.join(webrtc_info.clang_dir, 'bin', 'clang'))}")
cmake_args.append(
f"-DCMAKE_CXX_COMPILER={cmake_path(os.path.join(webrtc_info.clang_dir, 'bin', 'clang++'))}")
path = cmake_path(os.path.join(webrtc_info.libcxx_dir, 'include'))
cmake_args.append(f"-DCMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES={path}")
cmake_args.append(f"-DCMAKE_CXX_FLAGS={' '.join(['-nostdinc++'])}")
cxxflags = ['-nostdinc++', '-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE']
cmake_args.append(f"-DCMAKE_CXX_FLAGS={' '.join(cxxflags)}")
if platform.target.os == 'jetson':
sysroot = os.path.join(install_dir, 'rootfs')
cmake_args.append('-DCMAKE_SYSTEM_NAME=Linux')
Expand All @@ -1509,7 +1528,8 @@ def install_deps(platform: Platform, source_dir, build_dir, install_dir, debug,
cmake_args.append('-DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=BOTH')
path = cmake_path(os.path.join(webrtc_info.libcxx_dir, 'include'))
cmake_args.append(f"-DCMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES={path}")
cmake_args.append(f"-DCMAKE_CXX_FLAGS={' '.join(['-nostdinc++'])}")
cxxflags = ['-nostdinc++', '-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE']
cmake_args.append(f"-DCMAKE_CXX_FLAGS={' '.join(cxxflags)}")
if platform.target.os == 'ios':
cmake_args += ['-G', 'Xcode']
cmake_args.append("-DCMAKE_SYSTEM_NAME=iOS")
Expand All @@ -1532,7 +1552,8 @@ def install_deps(platform: Platform, source_dir, build_dir, install_dir, debug,
# https://github.com/android/ndk/issues/1618
cmake_args.append('-DCMAKE_ANDROID_EXCEPTIONS=ON')
cmake_args.append('-DANDROID_NDK=OFF')
cmake_args.append(f"-DCMAKE_CXX_FLAGS={' '.join(['-nostdinc++'])}")
cxxflags = ['-nostdinc++', '-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE']
cmake_args.append(f"-DCMAKE_CXX_FLAGS={' '.join(cxxflags)}")
install_blend2d_args['cmake_args'] = cmake_args
install_blend2d(**install_blend2d_args)

Expand Down Expand Up @@ -1636,8 +1657,8 @@ def main():
cmake_args.append(f'-DCMAKE_SYSTEM_VERSION={WINDOWS_SDK_VERSION}')
if platform.target.os == 'ubuntu':
if platform.target.package_name in ('ubuntu-20.04_x86_64', 'ubuntu-22.04_x86_64'):
cmake_args.append("-DCMAKE_C_COMPILER=clang-15")
cmake_args.append("-DCMAKE_CXX_COMPILER=clang++-15")
cmake_args.append("-DCMAKE_C_COMPILER=clang-18")
cmake_args.append("-DCMAKE_CXX_COMPILER=clang++-18")
else:
cmake_args.append(
f"-DCMAKE_C_COMPILER={cmake_path(os.path.join(webrtc_info.clang_dir, 'bin', 'clang'))}")
Expand All @@ -1646,6 +1667,8 @@ def main():
cmake_args.append("-DUSE_LIBCXX=ON")
cmake_args.append(
f"-DLIBCXX_INCLUDE_DIR={cmake_path(os.path.join(webrtc_info.libcxx_dir, 'include'))}")
cxxflags = ['-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE']
cmake_args.append(f"-DCMAKE_CXX_FLAGS={' '.join(cxxflags)}")
if platform.target.os == 'macos':
sysroot = cmdcap(['xcrun', '--sdk', 'macosx', '--show-sdk-path'])
target = 'x86_64-apple-darwin' if platform.target.arch == 'x86_64' else 'aarch64-apple-darwin'
Expand Down Expand Up @@ -1678,6 +1701,8 @@ def main():
cmake_args.append('-DCMAKE_ANDROID_EXCEPTIONS=ON')
cmake_args.append('-DANDROID_NDK=OFF')
cmake_args.append(f"-DSORA_WEBRTC_LDFLAGS={os.path.join(install_dir, 'webrtc.ldflags')}")
cxxflags = ['-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE']
cmake_args.append(f"-DCMAKE_CXX_FLAGS={' '.join(cxxflags)}")
if platform.target.os == 'jetson':
sysroot = os.path.join(install_dir, 'rootfs')
cmake_args.append('-DCMAKE_SYSTEM_NAME=Linux')
Expand All @@ -1694,12 +1719,14 @@ def main():
cmake_args.append(
f"-DCMAKE_CXX_COMPILER={cmake_path(os.path.join(webrtc_info.clang_dir, 'bin', 'clang++'))}")
cmake_args.append('-DUSE_JETSON_ENCODER=ON')
cxxflags = ['-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE']
cmake_args.append(f"-DCMAKE_CXX_FLAGS={' '.join(cxxflags)}")

# NvCodec
if platform.target.os in ('windows', 'ubuntu') and platform.target.arch == 'x86_64':
cmake_args.append('-DUSE_NVCODEC_ENCODER=ON')
if platform.target.os == 'windows':
cmake_args.append(f"-DCUDA_TOOLKIT_ROOT_DIR={cmake_path(os.path.join(install_dir, 'cuda', 'nvcc'))}")
cmake_args.append(f"-DCUDA_TOOLKIT_ROOT_DIR={cmake_path(os.path.join(install_dir, 'cuda'))}")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nvcc ディレクトリが消えると

path: _install\windows_x86_64\release\cuda\nvcc
ここのキャッシュが使えなくなっちゃうかも

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

キャッシュのパスを修正しました
4c214d1


if platform.target.os in ('windows', 'ubuntu') and platform.target.arch == 'x86_64':
cmake_args.append('-DUSE_VPL_ENCODER=ON')
Expand Down Expand Up @@ -1792,8 +1819,8 @@ def main():
cmake_args.append(f'-DCMAKE_SYSROOT={sysroot}')
if platform.target.os == 'ubuntu':
if platform.target.package_name in ('ubuntu-20.04_x86_64', 'ubuntu-22.04_x86_64'):
cmake_args.append("-DCMAKE_C_COMPILER=clang-15")
cmake_args.append("-DCMAKE_CXX_COMPILER=clang++-15")
cmake_args.append("-DCMAKE_C_COMPILER=clang-18")
cmake_args.append("-DCMAKE_CXX_COMPILER=clang++-18")
else:
cmake_args.append(
f"-DCMAKE_C_COMPILER={cmake_path(os.path.join(webrtc_info.clang_dir, 'bin', 'clang'))}")
Expand All @@ -1802,6 +1829,8 @@ def main():
cmake_args.append("-DUSE_LIBCXX=ON")
cmake_args.append(
f"-DLIBCXX_INCLUDE_DIR={cmake_path(os.path.join(webrtc_info.libcxx_dir, 'include'))}")
cxxflags = ['-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE']
cmake_args.append(f"-DCMAKE_CXX_FLAGS={' '.join(cxxflags)}")
if platform.target.os == 'jetson':
sysroot = os.path.join(install_dir, 'rootfs')
cmake_args.append('-DJETSON=ON')
Expand All @@ -1822,6 +1851,8 @@ def main():
f"-DCMAKE_C_COMPILER={cmake_path(os.path.join(webrtc_info.clang_dir, 'bin', 'clang'))}")
cmake_args.append(
f"-DCMAKE_CXX_COMPILER={cmake_path(os.path.join(webrtc_info.clang_dir, 'bin', 'clang++'))}")
cxxflags = ['-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE']
cmake_args.append(f"-DCMAKE_CXX_FLAGS={' '.join(cxxflags)}")

if platform.target.os in ('windows', 'macos', 'ubuntu'):
cmake_args.append("-DTEST_CONNECT_DISCONNECT=ON")
Expand Down
Loading