From a6750208f4a388ca10acdaee21e48989dd372481 Mon Sep 17 00:00:00 2001 From: Meister1593 Date: Mon, 18 Aug 2025 17:03:55 +0200 Subject: [PATCH 1/6] Add x264 as submodule, lock to same commit --- .gitmodules | 4 ++++ x264 | 1 + 2 files changed, 5 insertions(+) create mode 160000 x264 diff --git a/.gitmodules b/.gitmodules index 6d2a35ce8..85b1fb138 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,3 +2,7 @@ path = openvr url = https://github.com/ValveSoftware/openvr.git shallow = true +[submodule "x264"] + path = x264 + url = https://code.videolan.org/videolan/x264.git + shallow = true diff --git a/x264 b/x264 new file mode 160000 index 000000000..c19624040 --- /dev/null +++ b/x264 @@ -0,0 +1 @@ +Subproject commit c196240409e4d7c01b47448d93b1f9683aaa7cf7 From f024e4730a20729679626884e3ae6578174c35aa Mon Sep 17 00:00:00 2001 From: Meister1593 Date: Mon, 18 Aug 2025 17:55:28 +0200 Subject: [PATCH 2/6] Added ffmpeg, nv-codec and adjusted xtask --- .gitignore | 4 +- .gitmodules | 9 +++ FFmpeg | 1 + nanvr/xtask/src/command.rs | 14 ---- nanvr/xtask/src/dependencies/linux.rs | 94 ++++----------------------- nanvr/xtask/src/main.rs | 17 ++--- nanvr/xtask/src/packaging.rs | 2 +- nv-codec-headers | 1 + 8 files changed, 30 insertions(+), 112 deletions(-) create mode 160000 FFmpeg create mode 160000 nv-codec-headers diff --git a/.gitignore b/.gitignore index 9e5d8b6a1..b7a610162 100644 --- a/.gitignore +++ b/.gitignore @@ -55,8 +55,8 @@ dist .DS_Store .ccls-cache -# dependencies installed by xtask -deps +# dependencies built by xtask +**/nanvr_build # dependencies installed by node node_modules diff --git a/.gitmodules b/.gitmodules index 85b1fb138..d7013bc94 100644 --- a/.gitmodules +++ b/.gitmodules @@ -6,3 +6,12 @@ path = x264 url = https://code.videolan.org/videolan/x264.git shallow = true +[submodule "FFmpeg"] + path = FFmpeg + url = https://code.ffmpeg.org/FFmpeg/FFmpeg.git + branch = release/6.0 + shallow = true +[submodule "nv-codec-headers"] + path = nv-codec-headers + url = https://code.ffmpeg.org/FFmpeg/nv-codec-headers.git + shallow = true diff --git a/FFmpeg b/FFmpeg new file mode 160000 index 000000000..d388c347d --- /dev/null +++ b/FFmpeg @@ -0,0 +1 @@ +Subproject commit d388c347d41e4eb516dec05910551c5461e65615 diff --git a/nanvr/xtask/src/command.rs b/nanvr/xtask/src/command.rs index cc9b7530b..d2c1373e0 100644 --- a/nanvr/xtask/src/command.rs +++ b/nanvr/xtask/src/command.rs @@ -10,10 +10,6 @@ pub fn unzip(sh: &Shell, source: &Path, destination: &Path) -> Result<(), xshell cmd!(sh, "unzip {source} -d {destination}").run() } -pub fn untar(sh: &Shell, source: &Path, destination: &Path) -> Result<(), xshell::Error> { - cmd!(sh, "tar -xvf {source} -C {destination}").run() -} - pub fn targz(sh: &Shell, source: &Path) -> Result<(), xshell::Error> { let parent_dir = source.parent().unwrap(); let file_name = source.file_name().unwrap(); @@ -35,16 +31,6 @@ pub fn download_and_extract_zip(url: &str, destination: &Path) -> Result<(), xsh unzip(&sh, &zip_file, destination) } -pub fn download_and_extract_tar(url: &str, destination: &Path) -> Result<(), xshell::Error> { - let sh = Shell::new().unwrap(); - let temp_dir_guard = sh.create_temp_dir()?; - - let tar_file = temp_dir_guard.path().join("temp_download.tar"); - download(&sh, url, &tar_file)?; - - untar(&sh, &tar_file, destination) -} - pub fn date_utc_yyyymmdd(sh: &Shell) -> Result { cmd!(sh, "date -u +%Y.%m.%d").read() } diff --git a/nanvr/xtask/src/dependencies/linux.rs b/nanvr/xtask/src/dependencies/linux.rs index 2ada37915..503ad8110 100644 --- a/nanvr/xtask/src/dependencies/linux.rs +++ b/nanvr/xtask/src/dependencies/linux.rs @@ -1,45 +1,22 @@ -use crate::command; - -use std::fs; use xshell::{Shell, cmd}; -pub fn prepare_server_deps(enable_nvenc: bool) { - let sh = Shell::new().unwrap(); - +pub fn build_server_deps(enable_nvenc: bool) { let deps_path = deps_path(); - sh.remove_path(&deps_path).ok(); - sh.create_dir(&deps_path).unwrap(); + assert!(deps_path.exists(), "Please download dependencies first."); - download_x264_src(); - download_ffmpeg_src(); - if enable_nvenc { - download_nvidia_ffmpeg_deps(); - } + clean_deps(); build_x264(); build_ffmpeg(enable_nvenc); } -pub fn download_server_deps(enable_nvenc: bool) { +fn clean_deps() { let sh = Shell::new().unwrap(); - let deps_path = deps_path(); - sh.remove_path(&deps_path).ok(); - sh.create_dir(&deps_path).unwrap(); - - download_x264_src(); - download_ffmpeg_src(); - if enable_nvenc { - download_nvidia_ffmpeg_deps(); - } -} - -pub fn build_server_deps(enable_nvenc: bool) { - let deps_path = deps_path(); - assert!(deps_path.exists(), "Please download dependencies first."); - - build_x264(); - build_ffmpeg(enable_nvenc); + sh.remove_path(x264_path().join("nanvr_build")).ok(); + sh.remove_path(ffmpeg_path().join("nanvr_build")).ok(); + sh.remove_path(nvenc_headers_path().join("nanvr_build")) + .ok(); } fn deps_path() -> std::path::PathBuf { @@ -47,62 +24,15 @@ fn deps_path() -> std::path::PathBuf { } fn x264_path() -> std::path::PathBuf { - deps_path().join("x264") + filepaths::workspace_dir().join("x264") } fn ffmpeg_path() -> std::path::PathBuf { - deps_path().join("ffmpeg") + filepaths::workspace_dir().join("ffmpeg") } fn nvenc_headers_path() -> std::path::PathBuf { - deps_path().join("nv-codec-headers") -} - -fn download_x264_src() { - let deps_path = deps_path(); - // x264 0.164 - command::download_and_extract_tar( - "https://code.videolan.org/videolan/x264/-/archive/c196240409e4d7c01b47448d93b1f9683aaa7cf7/x264-c196240409e4d7c01b47448d93b1f9683aaa7cf7.tar.bz2", - &deps_path, - ) - .unwrap(); - - fs::rename( - deps_path.join("x264-c196240409e4d7c01b47448d93b1f9683aaa7cf7"), - x264_path(), - ) - .unwrap(); -} - -fn download_ffmpeg_src() { - let deps_path = deps_path(); - - command::download_and_extract_zip( - "https://codeload.github.com/FFmpeg/FFmpeg/zip/n6.0", - &deps_path, - ) - .unwrap(); - - fs::rename(deps_path.join("FFmpeg-n6.0"), ffmpeg_path()).unwrap(); -} - -fn download_nvidia_ffmpeg_deps() { - let deps_path = deps_path(); - - let codec_header_version = "12.1.14.0"; - let temp_download_dir = deps_path.join("dl_temp"); - command::download_and_extract_zip( - &format!("https://github.com/FFmpeg/nv-codec-headers/archive/refs/tags/n{codec_header_version}.zip"), - &temp_download_dir - ) - .unwrap(); - - fs::rename( - temp_download_dir.join(format!("nv-codec-headers-n{codec_header_version}")), - nvenc_headers_path(), - ) - .unwrap(); - fs::remove_dir_all(temp_download_dir).unwrap(); + filepaths::workspace_dir().join("nv-codec-headers") } fn build_x264() { @@ -187,7 +117,7 @@ fn build_ffmpeg(enable_nvenc: bool) { https://docs.nvidia.com/video-technologies/video-codec-sdk/ffmpeg-with-nvidia-gpu/#commonly-faced-issues-and-tips-to-resolve-them */ let nvenc_headers_path = nvenc_headers_path(); - let header_build_dir = nvenc_headers_path.join("build"); + let header_build_dir = nvenc_headers_path.join("nanvr_build"); sh.remove_path(&header_build_dir).ok(); { let make_header_cmd = format!("make install PREFIX='{}'", header_build_dir.display()); diff --git a/nanvr/xtask/src/main.rs b/nanvr/xtask/src/main.rs index 0bcc46174..dd7ed8a7d 100644 --- a/nanvr/xtask/src/main.rs +++ b/nanvr/xtask/src/main.rs @@ -25,7 +25,7 @@ struct Cli { #[derive(Subcommand)] enum Commands { /// Download and compile streamer or/and client external dependencies - PrepareDeps { + BuildDeps { /// If not specified, prepares server and android dependencies at the same time #[arg(long, value_enum)] platform: Option, @@ -36,12 +36,6 @@ enum Commands { #[arg(long)] enable_nvenc: bool, }, - /// Download streamer external dependencies - DownloadServerDeps { - /// Enables nvenc support on Linux - #[arg(long)] - enable_nvenc: bool, - }, /// Compile streamer external dependencies BuildServerDeps { /// Enables nvenc support on Linux @@ -217,7 +211,7 @@ fn main() { let begin_time = Instant::now(); match cli.commands { - Commands::PrepareDeps { + Commands::BuildDeps { platform, all_targets, enable_nvenc, @@ -226,17 +220,14 @@ fn main() { if matches!(platform, TargetBuildPlatform::Android) { dependencies::android::build_deps(all_targets, &OpenXRLoadersSelection::All); } else { - dependencies::linux::prepare_server_deps(enable_nvenc); + dependencies::linux::build_server_deps(enable_nvenc); } } else { - dependencies::linux::prepare_server_deps(enable_nvenc); + dependencies::linux::build_server_deps(enable_nvenc); dependencies::android::build_deps(all_targets, &OpenXRLoadersSelection::All); } } - Commands::DownloadServerDeps { enable_nvenc } => { - dependencies::linux::download_server_deps(enable_nvenc); - } Commands::BuildServerDeps { enable_nvenc } => { dependencies::linux::build_server_deps(enable_nvenc); } diff --git a/nanvr/xtask/src/packaging.rs b/nanvr/xtask/src/packaging.rs index 328cb1f7c..87a6f3a32 100644 --- a/nanvr/xtask/src/packaging.rs +++ b/nanvr/xtask/src/packaging.rs @@ -50,7 +50,7 @@ pub fn include_licenses(root_path: &Path) { pub fn package_streamer(enable_nvenc: bool, root: Option) { let sh = Shell::new().unwrap(); - dependencies::linux::prepare_server_deps(enable_nvenc); + dependencies::linux::build_server_deps(enable_nvenc); build::build_streamer( Profile::Distribution, diff --git a/nv-codec-headers b/nv-codec-headers new file mode 160000 index 000000000..1889e62e2 --- /dev/null +++ b/nv-codec-headers @@ -0,0 +1 @@ +Subproject commit 1889e62e2d35ff7aa9baca2bceb14f053785e6f1 From 4c5b0694c4a1d2ec157569e8dfdcf0a23d7e5dc0 Mon Sep 17 00:00:00 2001 From: Meister1593 Date: Mon, 18 Aug 2025 20:31:10 +0200 Subject: [PATCH 3/6] migrated to submodules --- .gitmodules | 8 +++---- FFmpeg | 1 - nanvr/configuration/build.rs | 7 +++--- nanvr/server_openvr/build.rs | 20 ++++++++-------- nanvr/xtask/src/build.rs | 2 +- nanvr/xtask/src/dependencies/linux.rs | 24 +++++++------------ nanvr/xtask/src/main.rs | 6 ++--- nanvr/xtask/src/packaging.rs | 2 +- thirdparty/ffmpeg | 1 + .../nv-codec-headers | 0 openvr => thirdparty/openvr | 0 x264 => thirdparty/x264 | 0 12 files changed, 32 insertions(+), 39 deletions(-) delete mode 160000 FFmpeg create mode 160000 thirdparty/ffmpeg rename nv-codec-headers => thirdparty/nv-codec-headers (100%) rename openvr => thirdparty/openvr (100%) rename x264 => thirdparty/x264 (100%) diff --git a/.gitmodules b/.gitmodules index d7013bc94..91eefebbd 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,17 +1,17 @@ [submodule "openvr"] - path = openvr + path = thirdparty/openvr url = https://github.com/ValveSoftware/openvr.git shallow = true [submodule "x264"] - path = x264 + path = thirdparty/x264 url = https://code.videolan.org/videolan/x264.git shallow = true [submodule "FFmpeg"] - path = FFmpeg + path = thirdparty/ffmpeg url = https://code.ffmpeg.org/FFmpeg/FFmpeg.git branch = release/6.0 shallow = true [submodule "nv-codec-headers"] - path = nv-codec-headers + path = thirdparty/nv-codec-headers url = https://code.ffmpeg.org/FFmpeg/nv-codec-headers.git shallow = true diff --git a/FFmpeg b/FFmpeg deleted file mode 160000 index d388c347d..000000000 --- a/FFmpeg +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d388c347d41e4eb516dec05910551c5461e65615 diff --git a/nanvr/configuration/build.rs b/nanvr/configuration/build.rs index aaff0fbe1..ab4a0931f 100644 --- a/nanvr/configuration/build.rs +++ b/nanvr/configuration/build.rs @@ -2,9 +2,10 @@ use regex::Regex; use std::{env, fmt::Write, fs, path::PathBuf}; fn main() { - let openvr_driver_header_string = - fs::read_to_string(filepaths::workspace_dir().join("openvr/headers/openvr_driver.h")) - .expect("Missing openvr header files, did you clone the submodule?\n"); + let openvr_driver_header_string = fs::read_to_string( + filepaths::workspace_dir().join("thirdparty/openvr/headers/openvr_driver.h"), + ) + .expect("Missing openvr header files, did you clone the submodule?\n"); let property_finder = Regex::new( r"\tProp_([A-Za-z\d_]+)_(Bool|Int32|Uint64|Float|String|Vector3)[\t ]+= ([0-9]+)", diff --git a/nanvr/server_openvr/build.rs b/nanvr/server_openvr/build.rs index 034e6a017..21ba48811 100644 --- a/nanvr/server_openvr/build.rs +++ b/nanvr/server_openvr/build.rs @@ -2,12 +2,12 @@ use std::{env, path::PathBuf}; use shared::{NANVR_HIGH_NAME, NANVR_LOW_NAME}; -fn get_ffmpeg_path() -> PathBuf { - filepaths::deps_dir().join("linux/ffmpeg/nanvr_build") +fn get_ffmpeg_build_path() -> PathBuf { + filepaths::workspace_dir().join("thirdparty/ffmpeg/nanvr_build") } -fn get_linux_x264_path() -> PathBuf { - filepaths::deps_dir().join("linux/x264/nanvr_build") +fn get_linux_x264_build_path() -> PathBuf { + filepaths::workspace_dir().join("thirdparty/x264/nanvr_build") } fn main() { @@ -45,18 +45,18 @@ fn main() { .cpp(true) .std("c++17") .files(source_files_paths) - .include(filepaths::workspace_dir().join("openvr/headers")) + .include(filepaths::workspace_dir().join("thirdparty/openvr/headers")) .include("cpp"); #[cfg(debug_assertions)] build.define(&format!("{NANVR_HIGH_NAME}_DEBUG_LOG"), None); - let ffmpeg_path = get_ffmpeg_path(); + let ffmpeg_path = get_ffmpeg_build_path(); assert!(ffmpeg_path.join("include").exists()); build.include(ffmpeg_path.join("include")); - let x264_path = get_linux_x264_path(); + let x264_path = get_linux_x264_build_path(); assert!(x264_path.join("include").exists()); build.include(x264_path.join("include")); @@ -65,7 +65,7 @@ fn main() { build.compile("bindings"); - let x264_path = get_linux_x264_path(); + let x264_path = get_linux_x264_build_path(); let x264_lib_path = x264_path.join("lib"); println!( @@ -93,7 +93,7 @@ fn main() { .unwrap(); // ffmpeg - let ffmpeg_path = get_ffmpeg_path(); + let ffmpeg_path = get_ffmpeg_build_path(); let ffmpeg_lib_path = ffmpeg_path.join("lib"); assert!(ffmpeg_lib_path.exists()); @@ -134,7 +134,7 @@ fn main() { println!( "cargo:rustc-link-search=native={}", filepaths::workspace_dir() - .join("openvr/lib/linux64") + .join("thirdparty/openvr/lib/linux64") .to_string_lossy() ); println!("cargo:rustc-link-lib=openvr_api"); diff --git a/nanvr/xtask/src/build.rs b/nanvr/xtask/src/build.rs index 0325cc79f..b2f89171a 100644 --- a/nanvr/xtask/src/build.rs +++ b/nanvr/xtask/src/build.rs @@ -195,7 +195,7 @@ pub fn build_streamer( .unwrap(); sh.copy_file( - filepaths::workspace_dir().join("openvr/bin/linux64/libopenvr_api.so"), + filepaths::workspace_dir().join("thirdparty/openvr/bin/linux64/libopenvr_api.so"), build_layout.openvr_driver_lib_dir(), ) .unwrap(); diff --git a/nanvr/xtask/src/dependencies/linux.rs b/nanvr/xtask/src/dependencies/linux.rs index 503ad8110..6ab3fe455 100644 --- a/nanvr/xtask/src/dependencies/linux.rs +++ b/nanvr/xtask/src/dependencies/linux.rs @@ -1,9 +1,6 @@ use xshell::{Shell, cmd}; -pub fn build_server_deps(enable_nvenc: bool) { - let deps_path = deps_path(); - assert!(deps_path.exists(), "Please download dependencies first."); - +pub fn clean_and_build_server_deps(enable_nvenc: bool) { clean_deps(); build_x264(); @@ -13,26 +10,21 @@ pub fn build_server_deps(enable_nvenc: bool) { fn clean_deps() { let sh = Shell::new().unwrap(); - sh.remove_path(x264_path().join("nanvr_build")).ok(); - sh.remove_path(ffmpeg_path().join("nanvr_build")).ok(); - sh.remove_path(nvenc_headers_path().join("nanvr_build")) - .ok(); -} - -fn deps_path() -> std::path::PathBuf { - filepaths::deps_dir().join("linux") + // Clean submodule folders from previous build directories and patches + let ffmpeg_command = "for p in thirdparty/*; do (cd $p; git reset --hard; git clean -df); done"; + cmd!(sh, "bash -c {ffmpeg_command}").run().unwrap(); } fn x264_path() -> std::path::PathBuf { - filepaths::workspace_dir().join("x264") + filepaths::workspace_dir().join("thirdparty/x264") } fn ffmpeg_path() -> std::path::PathBuf { - filepaths::workspace_dir().join("ffmpeg") + filepaths::workspace_dir().join("thirdparty/ffmpeg") } fn nvenc_headers_path() -> std::path::PathBuf { - filepaths::workspace_dir().join("nv-codec-headers") + filepaths::workspace_dir().join("thirdparty/nv-codec-headers") } fn build_x264() { @@ -103,7 +95,7 @@ fn build_ffmpeg(enable_nvenc: bool) { let _env_vars = sh.push_env("LDSOFLAGS", config_vars); // Patches ffmpeg for workarounds and patches that have yet to be unstreamed - let ffmpeg_command = "for p in ../../../nanvr/xtask/patches/*; do patch -p1 < $p; done"; + let ffmpeg_command = "for p in ../../nanvr/xtask/patches/*; do patch -p1 < $p; done"; cmd!(sh, "bash -c {ffmpeg_command}").run().unwrap(); if enable_nvenc { diff --git a/nanvr/xtask/src/main.rs b/nanvr/xtask/src/main.rs index dd7ed8a7d..0f754d435 100644 --- a/nanvr/xtask/src/main.rs +++ b/nanvr/xtask/src/main.rs @@ -220,16 +220,16 @@ fn main() { if matches!(platform, TargetBuildPlatform::Android) { dependencies::android::build_deps(all_targets, &OpenXRLoadersSelection::All); } else { - dependencies::linux::build_server_deps(enable_nvenc); + dependencies::linux::clean_and_build_server_deps(enable_nvenc); } } else { - dependencies::linux::build_server_deps(enable_nvenc); + dependencies::linux::clean_and_build_server_deps(enable_nvenc); dependencies::android::build_deps(all_targets, &OpenXRLoadersSelection::All); } } Commands::BuildServerDeps { enable_nvenc } => { - dependencies::linux::build_server_deps(enable_nvenc); + dependencies::linux::clean_and_build_server_deps(enable_nvenc); } Commands::BuildStreamer { keep_config, diff --git a/nanvr/xtask/src/packaging.rs b/nanvr/xtask/src/packaging.rs index 87a6f3a32..53f3c854f 100644 --- a/nanvr/xtask/src/packaging.rs +++ b/nanvr/xtask/src/packaging.rs @@ -50,7 +50,7 @@ pub fn include_licenses(root_path: &Path) { pub fn package_streamer(enable_nvenc: bool, root: Option) { let sh = Shell::new().unwrap(); - dependencies::linux::build_server_deps(enable_nvenc); + dependencies::linux::clean_and_build_server_deps(enable_nvenc); build::build_streamer( Profile::Distribution, diff --git a/thirdparty/ffmpeg b/thirdparty/ffmpeg new file mode 160000 index 000000000..ea3d24bbe --- /dev/null +++ b/thirdparty/ffmpeg @@ -0,0 +1 @@ +Subproject commit ea3d24bbe3c58b171e55fe2151fc7ffaca3ab3d2 diff --git a/nv-codec-headers b/thirdparty/nv-codec-headers similarity index 100% rename from nv-codec-headers rename to thirdparty/nv-codec-headers diff --git a/openvr b/thirdparty/openvr similarity index 100% rename from openvr rename to thirdparty/openvr diff --git a/x264 b/thirdparty/x264 similarity index 100% rename from x264 rename to thirdparty/x264 From 6f8142448076b0902e22b19c12c03af8401c6e6b Mon Sep 17 00:00:00 2001 From: Meister1593 Date: Mon, 18 Aug 2025 21:21:28 +0200 Subject: [PATCH 4/6] use dirty ignore flag on submodules --- .gitmodules | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitmodules b/.gitmodules index 91eefebbd..3d698ae86 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,16 +2,20 @@ path = thirdparty/openvr url = https://github.com/ValveSoftware/openvr.git shallow = true + ignore = dirty [submodule "x264"] path = thirdparty/x264 url = https://code.videolan.org/videolan/x264.git shallow = true + ignore = dirty [submodule "FFmpeg"] path = thirdparty/ffmpeg url = https://code.ffmpeg.org/FFmpeg/FFmpeg.git branch = release/6.0 shallow = true + ignore = dirty [submodule "nv-codec-headers"] path = thirdparty/nv-codec-headers url = https://code.ffmpeg.org/FFmpeg/nv-codec-headers.git shallow = true + ignore = dirty \ No newline at end of file From f6af29f8bf3b13e79182befb92ea43cbabfa2ac3 Mon Sep 17 00:00:00 2001 From: Meister1593 Date: Mon, 18 Aug 2025 21:28:04 +0200 Subject: [PATCH 5/6] fix pipelines --- .github/workflows/queue.yml | 6 +++--- .github/workflows/rust.yml | 4 ++-- .../flatpak/com.valvesoftware.Steam.Utility.nanvr.json | 2 +- wiki/Building-From-Source.md | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/queue.yml b/.github/workflows/queue.yml index 2f3c251ed..918d12fc5 100644 --- a/.github/workflows/queue.yml +++ b/.github/workflows/queue.yml @@ -28,10 +28,10 @@ jobs: sudo apt-get update sudo apt-get install libfuse2 build-essential pkg-config nasm libva-dev libdrm-dev libvulkan-dev libx264-dev libx265-dev cmake libasound2-dev libjack-jackd2-dev libxrandr-dev libunwind-dev libgtk-3-dev libpipewire-0.3-dev libspa-0.2-dev - - name: Prepare deps + - name: Build deps env: RUST_BACKTRACE: 1 - run: cargo xtask prepare-deps --platform linux + run: cargo xtask build-server-deps - run: cargo xtask ci-clippy @@ -53,6 +53,6 @@ jobs: - name: Prepare deps env: RUST_BACKTRACE: 1 - run: cargo xtask prepare-deps --platform linux + run: cargo xtask build-server-deps - run: cargo xtask check-msrv diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index b814b5cf3..f783ac36b 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -27,10 +27,10 @@ jobs: sudo apt update sudo apt install build-essential pkg-config nasm libva-dev libdrm-dev libvulkan-dev libx264-dev libasound2-dev libxrandr-dev libunwind-dev libgtk-3-dev libpipewire-0.3-dev libspa-0.2-dev - - name: Prepare deps + - name: Build deps env: RUST_BACKTRACE: 1 - run: cargo xtask prepare-deps --platform linux + run: cargo xtask build-server-deps - run: cargo xtask ci-clippy diff --git a/nanvr/xtask/flatpak/com.valvesoftware.Steam.Utility.nanvr.json b/nanvr/xtask/flatpak/com.valvesoftware.Steam.Utility.nanvr.json index 35e569f68..6ccbfe3a1 100644 --- a/nanvr/xtask/flatpak/com.valvesoftware.Steam.Utility.nanvr.json +++ b/nanvr/xtask/flatpak/com.valvesoftware.Steam.Utility.nanvr.json @@ -36,7 +36,7 @@ "build-commands": [ "mkdir -p /app/utils/nanvr/bin", "cd nanvr/launcher", - "cargo xtask prepare-deps --platform linux", + "cargo xtask build-server-deps", "cargo xtask build-launcher --profile release", "mv '/run/build/nanvr/build/nanvr_launcher/NaNVR Launcher' /app/utils/nanvr/bin/nanvr_launcher", " # get read-only errors from following lines - because this is an extension - so leave as comments until someone figures this out", diff --git a/wiki/Building-From-Source.md b/wiki/Building-From-Source.md index f4900ad71..93096f91f 100644 --- a/wiki/Building-From-Source.md +++ b/wiki/Building-From-Source.md @@ -50,7 +50,7 @@ Install these additional packages: Move to the root directory of the project, then run this command (paying attention to the bullet points below): ```bash -cargo xtask prepare-deps --platform linux +cargo xtask build-server-deps ``` * Use the `--nvenc` flag if you have a Nvidia GPU. @@ -63,7 +63,7 @@ cargo xtask build-streamer --release You can find the resulting package in `build/nanvr_streamer_[your platform]` -If you want to edit and rebuild the code, you can skip the `prepare-deps` command and run only the `build-streamer` command. +If you want to edit and rebuild the code, you can skip the `build-server-deps` command and run only the `build-streamer` command. ## Fedora CUDA installation From cb76eef618174c3c8ed09d212fc0d1e617420214 Mon Sep 17 00:00:00 2001 From: Meister1593 Date: Mon, 18 Aug 2025 21:39:36 +0200 Subject: [PATCH 6/6] small renames, fixes to docs --- .github/workflows/queue.yml | 2 +- nanvr/xtask/src/main.rs | 6 +++--- wiki/Building-From-Source.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/queue.yml b/.github/workflows/queue.yml index 918d12fc5..8dab6658f 100644 --- a/.github/workflows/queue.yml +++ b/.github/workflows/queue.yml @@ -50,7 +50,7 @@ jobs: sudo apt update sudo apt install build-essential pkg-config nasm libva-dev libdrm-dev libvulkan-dev libx264-dev libasound2-dev libxrandr-dev libunwind-dev libgtk-3-dev libpipewire-0.3-dev libspa-0.2-dev - - name: Prepare deps + - name: Build deps env: RUST_BACKTRACE: 1 run: cargo xtask build-server-deps diff --git a/nanvr/xtask/src/main.rs b/nanvr/xtask/src/main.rs index 0f754d435..dd63d7893 100644 --- a/nanvr/xtask/src/main.rs +++ b/nanvr/xtask/src/main.rs @@ -24,8 +24,8 @@ struct Cli { } #[derive(Subcommand)] enum Commands { - /// Download and compile streamer or/and client external dependencies - BuildDeps { + /// Compile streamer or/and download client external dependencies + PrepareDeps { /// If not specified, prepares server and android dependencies at the same time #[arg(long, value_enum)] platform: Option, @@ -211,7 +211,7 @@ fn main() { let begin_time = Instant::now(); match cli.commands { - Commands::BuildDeps { + Commands::PrepareDeps { platform, all_targets, enable_nvenc, diff --git a/wiki/Building-From-Source.md b/wiki/Building-From-Source.md index 93096f91f..16a95ffee 100644 --- a/wiki/Building-From-Source.md +++ b/wiki/Building-From-Source.md @@ -61,7 +61,7 @@ Next up is the proper build of the streamer. Run the following: cargo xtask build-streamer --release ``` -You can find the resulting package in `build/nanvr_streamer_[your platform]` +You can find the resulting package in `build/nanvr_streamer` If you want to edit and rebuild the code, you can skip the `build-server-deps` command and run only the `build-streamer` command.