diff --git a/.config/hakari.toml b/.config/hakari.toml new file mode 100644 index 0000000000..0dea44fe3f --- /dev/null +++ b/.config/hakari.toml @@ -0,0 +1,27 @@ +# This file contains settings for `cargo hakari`. +# See https://docs.rs/cargo-hakari/latest/cargo_hakari/config for a full list of options. + +hakari-package = "workspace-hack" + +# Format version for hakari's output. Version 4 requires cargo-hakari 0.9.22 or above. +dep-format-version = "4" + +# Setting workspace.resolver = "2" or higher in the root Cargo.toml is HIGHLY recommended. +# Hakari works much better with the v2 resolver. (The v2 and v3 resolvers are identical from +# hakari's perspective, so you're welcome to set either.) +# +# For more about the new feature resolver, see: +# https://blog.rust-lang.org/2021/03/25/Rust-1.51.0.html#cargos-new-feature-resolver +resolver = "2" + +# Add triples corresponding to platforms commonly used by developers here. +# https://doc.rust-lang.org/rustc/platform-support.html +platforms = [ + # "x86_64-unknown-linux-gnu", + # "x86_64-apple-darwin", + "aarch64-apple-darwin", + "x86_64-pc-windows-msvc", +] + +# Write out exact versions rather than a semver range. (Defaults to false.) +# exact-versions = true diff --git a/Cargo.lock b/Cargo.lock index 2cf33319a8..9e16573eda 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1040,6 +1040,7 @@ dependencies = [ "tracing", "tracing-subscriber", "uuid", + "workspace-hack", ] [[package]] @@ -1047,6 +1048,7 @@ name = "cap-api" version = "0.0.0" dependencies = [ "reqwest 0.12.24", + "workspace-hack", ] [[package]] @@ -1058,6 +1060,7 @@ dependencies = [ "ffmpeg-next", "tokio", "tracing", + "workspace-hack", ] [[package]] @@ -1074,6 +1077,7 @@ dependencies = [ "thiserror 1.0.69", "windows 0.60.0", "windows-core 0.60.1", + "workspace-hack", ] [[package]] @@ -1084,6 +1088,7 @@ dependencies = [ "clap", "inquire", "tracing", + "workspace-hack", ] [[package]] @@ -1096,6 +1101,7 @@ dependencies = [ "tracing-subscriber", "windows 0.60.0", "windows-core 0.60.1", + "workspace-hack", ] [[package]] @@ -1111,6 +1117,7 @@ dependencies = [ "thiserror 1.0.69", "windows 0.60.0", "windows-core 0.60.1", + "workspace-hack", ] [[package]] @@ -1123,6 +1130,7 @@ dependencies = [ "tracing", "windows 0.60.0", "windows-core 0.60.1", + "workspace-hack", ] [[package]] @@ -1136,6 +1144,7 @@ dependencies = [ "thiserror 1.0.69", "windows 0.60.0", "windows-core 0.60.1", + "workspace-hack", ] [[package]] @@ -1144,6 +1153,7 @@ version = "0.1.0" dependencies = [ "cpal 0.15.3 (git+https://github.com/CapSoftware/cpal?rev=3cc779a7b4ca)", "ffmpeg-next", + "workspace-hack", ] [[package]] @@ -1153,6 +1163,7 @@ dependencies = [ "core-graphics 0.24.0", "device_query", "scap-targets", + "workspace-hack", ] [[package]] @@ -1167,6 +1178,7 @@ dependencies = [ "specta", "strum 0.27.2", "windows 0.60.0", + "workspace-hack", ] [[package]] @@ -1270,6 +1282,7 @@ dependencies = [ "whisper-rs", "windows 0.60.0", "windows-sys 0.59.0", + "workspace-hack", ] [[package]] @@ -1293,6 +1306,7 @@ dependencies = [ "tokio", "tokio-util", "tracing", + "workspace-hack", ] [[package]] @@ -1304,6 +1318,7 @@ dependencies = [ "ffmpeg-next", "thiserror 1.0.69", "tracing", + "workspace-hack", ] [[package]] @@ -1314,6 +1329,7 @@ dependencies = [ "ffmpeg-next", "thiserror 1.0.69", "tracing", + "workspace-hack", ] [[package]] @@ -1325,6 +1341,7 @@ dependencies = [ "rgb", "thiserror 1.0.69", "tracing", + "workspace-hack", ] [[package]] @@ -1340,6 +1357,7 @@ dependencies = [ "windows 0.60.0", "windows-core 0.60.1", "windows-numerics 0.2.0", + "workspace-hack", ] [[package]] @@ -1372,6 +1390,7 @@ dependencies = [ "thiserror 1.0.69", "tokio", "tracing", + "workspace-hack", ] [[package]] @@ -1379,6 +1398,7 @@ name = "cap-fail" version = "0.1.0" dependencies = [ "inventory", + "workspace-hack", ] [[package]] @@ -1387,6 +1407,7 @@ version = "0.1.0" dependencies = [ "serde", "specta", + "workspace-hack", ] [[package]] @@ -1394,6 +1415,7 @@ name = "cap-gpu-converters" version = "0.1.0" dependencies = [ "wgpu", + "workspace-hack", ] [[package]] @@ -1406,6 +1428,7 @@ dependencies = [ "thiserror 1.0.69", "tokio", "tracing-subscriber", + "workspace-hack", ] [[package]] @@ -1415,6 +1438,7 @@ dependencies = [ "cpal 0.15.3 (git+https://github.com/CapSoftware/cpal?rev=3cc779a7b4ca)", "ffmpeg-next", "thiserror 1.0.69", + "workspace-hack", ] [[package]] @@ -1429,6 +1453,7 @@ dependencies = [ "tracing", "windows 0.60.0", "windows-numerics 0.2.0", + "workspace-hack", ] [[package]] @@ -1437,6 +1462,7 @@ version = "0.1.0" dependencies = [ "windows 0.60.0", "windows-core 0.60.1", + "workspace-hack", ] [[package]] @@ -1453,6 +1479,7 @@ dependencies = [ "tempfile", "tracing", "uuid", + "workspace-hack", ] [[package]] @@ -1515,6 +1542,7 @@ dependencies = [ "tracing", "tracing-subscriber", "windows 0.60.0", + "workspace-hack", ] [[package]] @@ -1549,6 +1577,7 @@ dependencies = [ "tokio", "tracing", "wgpu", + "workspace-hack", ] [[package]] @@ -1564,6 +1593,7 @@ dependencies = [ "thiserror 1.0.69", "tracing", "tracing-subscriber", + "workspace-hack", ] [[package]] @@ -1573,6 +1603,7 @@ dependencies = [ "cidre 0.11.0", "cpal 0.15.3 (git+https://github.com/CapSoftware/cpal?rev=3cc779a7b4ca)", "windows 0.60.0", + "workspace-hack", ] [[package]] @@ -1590,6 +1621,7 @@ dependencies = [ "uuid", "windows 0.58.0", "windows-sys 0.52.0", + "workspace-hack", ] [[package]] @@ -1601,6 +1633,7 @@ dependencies = [ "ffmpeg-next", "tokio", "tracing", + "workspace-hack", ] [[package]] @@ -3023,6 +3056,7 @@ name = "ffmpeg-hw-device" version = "0.1.0" dependencies = [ "ffmpeg-next", + "workspace-hack", ] [[package]] @@ -7828,6 +7862,7 @@ version = "0.1.0" dependencies = [ "cpal 0.15.3 (git+https://github.com/CapSoftware/cpal?rev=3cc779a7b4ca)", "thiserror 1.0.69", + "workspace-hack", ] [[package]] @@ -7839,6 +7874,7 @@ dependencies = [ "thiserror 1.0.69", "windows 0.60.0", "windows-numerics 0.2.0", + "workspace-hack", ] [[package]] @@ -7855,6 +7891,7 @@ dependencies = [ "scap-targets", "tokio", "windows 0.60.0", + "workspace-hack", ] [[package]] @@ -7871,6 +7908,7 @@ dependencies = [ "scap-targets", "tokio", "tracing", + "workspace-hack", ] [[package]] @@ -7888,6 +7926,7 @@ dependencies = [ "tokio", "tracing", "windows 0.60.0", + "workspace-hack", ] [[package]] @@ -12075,6 +12114,75 @@ dependencies = [ "wayland-protocols-wlr", ] +[[package]] +name = "workspace-hack" +version = "0.1.0" +dependencies = [ + "arrayvec", + "axum", + "bitflags 2.9.4", + "bytemuck", + "chrono", + "clang-sys", + "clap", + "clap_builder", + "deranged", + "either", + "flate2", + "form_urlencoded", + "futures-channel", + "futures-core", + "futures-executor", + "futures-sink", + "futures-task", + "futures-util", + "getrandom 0.2.16", + "gif", + "hashbrown 0.15.5", + "idna", + "itertools 0.12.1", + "itertools 0.13.0", + "libc", + "log", + "memchr", + "miniz_oxide", + "nom", + "num-rational", + "num-traits", + "percent-encoding", + "phf_shared 0.10.0", + "phf_shared 0.11.3", + "proc-macro2", + "profiling", + "quote", + "rand 0.8.5", + "regex", + "regex-automata", + "regex-syntax", + "reqwest 0.12.24", + "rgb", + "rustc-hash 1.1.0", + "schemars 0.8.22", + "semver", + "serde", + "serde_core", + "serde_json", + "simd-adler32", + "smallvec", + "specta", + "specta-macros", + "stable_deref_trait", + "syn 2.0.106", + "tauri-utils", + "thiserror 2.0.16", + "time", + "tokio", + "tracing", + "tracing-core", + "tracing-subscriber", + "uuid", +] + [[package]] name = "writeable" version = "0.6.1" diff --git a/Cargo.toml b/Cargo.toml index 1dfe748dd7..4005cd0d3d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [workspace] resolver = "2" -members = ["apps/cli", "apps/desktop/src-tauri", "crates/*"] +members = ["apps/cli", "apps/desktop/src-tauri", "crates/*", "crates/workspace-hack"] [workspace.dependencies] anyhow = { version = "1.0.86" } diff --git a/apps/cli/Cargo.toml b/apps/cli/Cargo.toml index d7c5bd16eb..0b3fdf9240 100644 --- a/apps/cli/Cargo.toml +++ b/apps/cli/Cargo.toml @@ -23,6 +23,7 @@ ffmpeg = { workspace = true } tracing.workspace = true tracing-subscriber = "0.3.19" flume.workspace = true +workspace-hack = { version = "0.1", path = "../../crates/workspace-hack" } [target.'cfg(target_os = "macos")'.dependencies] cidre = { workspace = true } diff --git a/apps/desktop/src-tauri/Cargo.toml b/apps/desktop/src-tauri/Cargo.toml index 74792fc4e8..52e4776d20 100644 --- a/apps/desktop/src-tauri/Cargo.toml +++ b/apps/desktop/src-tauri/Cargo.toml @@ -113,6 +113,7 @@ opentelemetry = "0.31.0" opentelemetry-otlp = "0.31.0" #{ version = , features = ["http-proto", "reqwest-client"] } opentelemetry_sdk = { version = "0.31.0", features = ["rt-tokio", "trace"] } posthog-rs = "0.3.7" +workspace-hack = { version = "0.1", path = "../../../crates/workspace-hack" } [target.'cfg(target_os = "macos")'.dependencies] diff --git a/crates/api/Cargo.toml b/crates/api/Cargo.toml index 6545b383b8..59404026ae 100644 --- a/crates/api/Cargo.toml +++ b/crates/api/Cargo.toml @@ -6,6 +6,7 @@ publish = false [dependencies] reqwest = "0.12.24" +workspace-hack = { version = "0.1", path = "../workspace-hack" } [lints] workspace = true diff --git a/crates/audio/Cargo.toml b/crates/audio/Cargo.toml index 49df5da1a8..39099118e1 100644 --- a/crates/audio/Cargo.toml +++ b/crates/audio/Cargo.toml @@ -9,6 +9,7 @@ ffmpeg = { workspace = true } cpal = { workspace = true } tokio.workspace = true tracing = { workspace = true } +workspace-hack = { version = "0.1", path = "../workspace-hack" } [target.'cfg(target_os = "macos")'.dependencies] cidre = { workspace = true } diff --git a/crates/camera-avfoundation/Cargo.toml b/crates/camera-avfoundation/Cargo.toml index 4eba06649e..f4f37b6da3 100644 --- a/crates/camera-avfoundation/Cargo.toml +++ b/crates/camera-avfoundation/Cargo.toml @@ -16,3 +16,4 @@ inquire = "0.7.5" [dependencies] tracing.workspace = true +workspace-hack = { version = "0.1", path = "../workspace-hack" } diff --git a/crates/camera-directshow/Cargo.toml b/crates/camera-directshow/Cargo.toml index 685da4c6f9..7d4de20dd8 100644 --- a/crates/camera-directshow/Cargo.toml +++ b/crates/camera-directshow/Cargo.toml @@ -7,6 +7,7 @@ license = "MIT" [dependencies] tracing.workspace = true thiserror.workspace = true +workspace-hack = { version = "0.1", path = "../workspace-hack" } [target.'cfg(windows)'.dependencies] windows-core = { workspace = true } diff --git a/crates/camera-ffmpeg/Cargo.toml b/crates/camera-ffmpeg/Cargo.toml index c924c9ffb9..019697c6b0 100644 --- a/crates/camera-ffmpeg/Cargo.toml +++ b/crates/camera-ffmpeg/Cargo.toml @@ -8,6 +8,7 @@ license = "MIT" ffmpeg = { workspace = true } thiserror.workspace = true cap-camera = { path = "../camera" } +workspace-hack = { version = "0.1", path = "../workspace-hack" } [target.'cfg(target_os = "macos")'.dependencies] cidre = { workspace = true } diff --git a/crates/camera-mediafoundation/Cargo.toml b/crates/camera-mediafoundation/Cargo.toml index 239ce520c4..0bee6fe27d 100644 --- a/crates/camera-mediafoundation/Cargo.toml +++ b/crates/camera-mediafoundation/Cargo.toml @@ -7,6 +7,7 @@ license = "MIT" [dependencies] tracing.workspace = true thiserror.workspace = true +workspace-hack = { version = "0.1", path = "../workspace-hack" } [target.'cfg(windows)'.dependencies] cap-mediafoundation-utils = { path = "../mediafoundation-utils" } diff --git a/crates/camera-windows/Cargo.toml b/crates/camera-windows/Cargo.toml index 5f3378c321..6947dc7226 100644 --- a/crates/camera-windows/Cargo.toml +++ b/crates/camera-windows/Cargo.toml @@ -7,6 +7,7 @@ license = "MIT" [dependencies] thiserror.workspace = true inquire = "0.7.5" +workspace-hack = { version = "0.1", path = "../workspace-hack" } [target.'cfg(windows)'.dependencies] cap-mediafoundation-utils = { path = "../mediafoundation-utils" } diff --git a/crates/camera/Cargo.toml b/crates/camera/Cargo.toml index ff64fcd156..5e63811c5e 100644 --- a/crates/camera/Cargo.toml +++ b/crates/camera/Cargo.toml @@ -8,6 +8,7 @@ license = "MIT" thiserror = { workspace = true } serde = { workspace = true, optional = true } specta = { workspace = true, optional = true } +workspace-hack = { version = "0.1", path = "../workspace-hack" } [target.'cfg(target_os = "macos")'.dependencies] cidre = { workspace = true } diff --git a/crates/cpal-ffmpeg/Cargo.toml b/crates/cpal-ffmpeg/Cargo.toml index 4ea431bd53..1053f58519 100644 --- a/crates/cpal-ffmpeg/Cargo.toml +++ b/crates/cpal-ffmpeg/Cargo.toml @@ -6,6 +6,7 @@ edition = "2024" [dependencies] cpal.workspace = true ffmpeg.workspace = true +workspace-hack = { version = "0.1", path = "../workspace-hack" } [lints] workspace = true diff --git a/crates/cursor-capture/Cargo.toml b/crates/cursor-capture/Cargo.toml index 5cf9754778..4fa5511449 100644 --- a/crates/cursor-capture/Cargo.toml +++ b/crates/cursor-capture/Cargo.toml @@ -10,6 +10,7 @@ workspace = true scap-targets = { path = "../scap-targets" } device_query = "4.0.1" +workspace-hack = { version = "0.1", path = "../workspace-hack" } [target.'cfg(target_os = "macos")'.dependencies] core-graphics = "0.24.0" diff --git a/crates/cursor-info/Cargo.toml b/crates/cursor-info/Cargo.toml index ff60f499cf..e86871e9ec 100644 --- a/crates/cursor-info/Cargo.toml +++ b/crates/cursor-info/Cargo.toml @@ -8,6 +8,7 @@ publish = false serde = { version = "1.0.219", features = ["derive"] } specta = { workspace = true, features = ["derive"] } strum = { version = "0.27.2", features = ["derive"] } +workspace-hack = { version = "0.1", path = "../workspace-hack" } [target.'cfg(target_os= "windows")'.dependencies] windows = { workspace = true, features = [ diff --git a/crates/editor/Cargo.toml b/crates/editor/Cargo.toml index 575f3892cf..89201baddf 100644 --- a/crates/editor/Cargo.toml +++ b/crates/editor/Cargo.toml @@ -25,3 +25,4 @@ tracing.workspace = true flume.workspace = true tokio-util = "0.7.15" ringbuf = "0.4.8" +workspace-hack = { version = "0.1", path = "../workspace-hack" } diff --git a/crates/enc-avfoundation/Cargo.toml b/crates/enc-avfoundation/Cargo.toml index 244a3e41a6..369c2db4d6 100644 --- a/crates/enc-avfoundation/Cargo.toml +++ b/crates/enc-avfoundation/Cargo.toml @@ -9,6 +9,7 @@ cap-media-info = { path = "../media-info" } ffmpeg.workspace = true thiserror.workspace = true tracing.workspace = true +workspace-hack = { version = "0.1", path = "../workspace-hack" } [target.'cfg(target_os = "macos")'.dependencies] cidre = { workspace = true } diff --git a/crates/enc-ffmpeg/Cargo.toml b/crates/enc-ffmpeg/Cargo.toml index 17605eb6f8..28f1c012e6 100644 --- a/crates/enc-ffmpeg/Cargo.toml +++ b/crates/enc-ffmpeg/Cargo.toml @@ -9,6 +9,7 @@ cap-media-info = { path = "../media-info" } ffmpeg.workspace = true thiserror.workspace = true tracing.workspace = true +workspace-hack = { version = "0.1", path = "../workspace-hack" } [lints] workspace = true diff --git a/crates/enc-gif/Cargo.toml b/crates/enc-gif/Cargo.toml index cea52b600e..4a5b3c7c5c 100644 --- a/crates/enc-gif/Cargo.toml +++ b/crates/enc-gif/Cargo.toml @@ -9,6 +9,7 @@ tracing.workspace = true gifski = "1.32" imgref = "1.10" rgb = "0.8" +workspace-hack = { version = "0.1", path = "../workspace-hack" } [lints] workspace = true diff --git a/crates/enc-mediafoundation/Cargo.toml b/crates/enc-mediafoundation/Cargo.toml index 1cc679fdb5..7df3e9a3cb 100644 --- a/crates/enc-mediafoundation/Cargo.toml +++ b/crates/enc-mediafoundation/Cargo.toml @@ -7,6 +7,7 @@ edition = "2024" cap-media-info = { path = "../media-info" } futures.workspace = true thiserror.workspace = true +workspace-hack = { version = "0.1", path = "../workspace-hack" } [target.'cfg(windows)'.dependencies] windows = { workspace = true, features = [ diff --git a/crates/export/Cargo.toml b/crates/export/Cargo.toml index b37778be4a..f24850afef 100644 --- a/crates/export/Cargo.toml +++ b/crates/export/Cargo.toml @@ -28,6 +28,7 @@ tracing.workspace = true gifski = "1.32" imgref = "1.10" rgb = "0.8" +workspace-hack = { version = "0.1", path = "../workspace-hack" } [dev-dependencies] clap = { version = "4.5.41", features = ["derive"] } diff --git a/crates/fail/Cargo.toml b/crates/fail/Cargo.toml index 73214b96fc..6d8599acbd 100644 --- a/crates/fail/Cargo.toml +++ b/crates/fail/Cargo.toml @@ -5,6 +5,7 @@ edition = "2024" [dependencies] inventory = "0.3.19" +workspace-hack = { version = "0.1", path = "../workspace-hack" } [lints] workspace = true diff --git a/crates/ffmpeg-hw-device/Cargo.toml b/crates/ffmpeg-hw-device/Cargo.toml index 1217ac6512..f1fd52e785 100644 --- a/crates/ffmpeg-hw-device/Cargo.toml +++ b/crates/ffmpeg-hw-device/Cargo.toml @@ -5,6 +5,7 @@ edition = "2024" [dependencies] ffmpeg.workspace = true +workspace-hack = { version = "0.1", path = "../workspace-hack" } [lints] workspace = true diff --git a/crates/flags/Cargo.toml b/crates/flags/Cargo.toml index 10a4ae7ac2..c6e2b2e680 100644 --- a/crates/flags/Cargo.toml +++ b/crates/flags/Cargo.toml @@ -6,6 +6,7 @@ edition = "2024" [dependencies] serde = { workspace = true } specta.workspace = true +workspace-hack = { version = "0.1", path = "../workspace-hack" } [lints] workspace = true diff --git a/crates/gpu-converters/Cargo.toml b/crates/gpu-converters/Cargo.toml index ead0b7fc8a..c5970f8406 100644 --- a/crates/gpu-converters/Cargo.toml +++ b/crates/gpu-converters/Cargo.toml @@ -5,6 +5,7 @@ edition = "2024" [dependencies] wgpu.workspace = true +workspace-hack = { version = "0.1", path = "../workspace-hack" } [lints] workspace = true diff --git a/crates/media-info/Cargo.toml b/crates/media-info/Cargo.toml index b3eb8a6919..40350902d3 100644 --- a/crates/media-info/Cargo.toml +++ b/crates/media-info/Cargo.toml @@ -7,6 +7,7 @@ edition = "2024" ffmpeg.workspace = true thiserror.workspace = true cpal.workspace = true +workspace-hack = { version = "0.1", path = "../workspace-hack" } [lints] diff --git a/crates/media/Cargo.toml b/crates/media/Cargo.toml index 389e141b82..0e71606ad4 100644 --- a/crates/media/Cargo.toml +++ b/crates/media/Cargo.toml @@ -11,6 +11,7 @@ workspace = true cap-media-info = { path = "../media-info" } ffmpeg.workspace = true thiserror.workspace = true +workspace-hack = { version = "0.1", path = "../workspace-hack" } [dev-dependencies] inquire = "0.7.5" diff --git a/crates/mediafoundation-ffmpeg/Cargo.toml b/crates/mediafoundation-ffmpeg/Cargo.toml index 28a844b406..9d806dfde7 100644 --- a/crates/mediafoundation-ffmpeg/Cargo.toml +++ b/crates/mediafoundation-ffmpeg/Cargo.toml @@ -9,6 +9,7 @@ cap-media-info = { path = "../media-info" } tracing = { workspace = true } flume = { workspace = true } thiserror = { workspace = true } +workspace-hack = { version = "0.1", path = "../workspace-hack" } [target.'cfg(windows)'.dependencies] cap-mediafoundation-utils = { path = "../mediafoundation-utils" } diff --git a/crates/mediafoundation-utils/Cargo.toml b/crates/mediafoundation-utils/Cargo.toml index 18da3b7a55..b802602c5d 100644 --- a/crates/mediafoundation-utils/Cargo.toml +++ b/crates/mediafoundation-utils/Cargo.toml @@ -4,6 +4,7 @@ version = "0.1.0" edition = "2024" [dependencies] +workspace-hack = { version = "0.1", path = "../workspace-hack" } [target.'cfg(windows)'.dependencies] windows-core = { workspace = true } diff --git a/crates/project/Cargo.toml b/crates/project/Cargo.toml index b5196be102..999b22cf4d 100644 --- a/crates/project/Cargo.toml +++ b/crates/project/Cargo.toml @@ -19,3 +19,4 @@ log = "0.4" tracing = "0.1.41" tempfile = "3.23.0" uuid = { version = "1.18.1", features = ["v4"]} +workspace-hack = { version = "0.1", path = "../workspace-hack" } diff --git a/crates/recording/Cargo.toml b/crates/recording/Cargo.toml index 201b87afbe..fa131876a4 100644 --- a/crates/recording/Cargo.toml +++ b/crates/recording/Cargo.toml @@ -49,6 +49,7 @@ kameo = "0.17.2" inquire = "0.7.5" replace_with = "0.1.8" retry = "2.1.0" +workspace-hack = { version = "0.1", path = "../workspace-hack" } [target.'cfg(target_os = "macos")'.dependencies] cidre = { workspace = true } diff --git a/crates/rendering-skia/Cargo.toml b/crates/rendering-skia/Cargo.toml index 2d992c7047..084bee733c 100644 --- a/crates/rendering-skia/Cargo.toml +++ b/crates/rendering-skia/Cargo.toml @@ -18,6 +18,7 @@ tracing-subscriber = "0.3" # Project dependencies cap-project = { path = "../project" } +workspace-hack = { version = "0.1", path = "../workspace-hack" } [target.'cfg(target_os = "macos")'.dependencies] skia-safe = { version = "0.86.1", features = ["metal"] } diff --git a/crates/rendering/Cargo.toml b/crates/rendering/Cargo.toml index 98be71a675..4ee460611d 100644 --- a/crates/rendering/Cargo.toml +++ b/crates/rendering/Cargo.toml @@ -32,6 +32,7 @@ tracing.workspace = true resvg = "0.45" tiny-skia = "0.11" clap = { version = "4.5", features = ["derive"] } +workspace-hack = { version = "0.1", path = "../workspace-hack" } [target.'cfg(target_os = "macos")'.dependencies] cidre.workspace = true diff --git a/crates/scap-cpal/Cargo.toml b/crates/scap-cpal/Cargo.toml index dae7575133..955935f94c 100644 --- a/crates/scap-cpal/Cargo.toml +++ b/crates/scap-cpal/Cargo.toml @@ -7,6 +7,7 @@ license = "MIT" [dependencies] cpal.workspace = true thiserror.workspace = true +workspace-hack = { version = "0.1", path = "../workspace-hack" } [lints] workspace = true diff --git a/crates/scap-direct3d/Cargo.toml b/crates/scap-direct3d/Cargo.toml index 073acdbe1d..d19e4e8237 100644 --- a/crates/scap-direct3d/Cargo.toml +++ b/crates/scap-direct3d/Cargo.toml @@ -41,3 +41,4 @@ workspace = true [dependencies] thiserror.workspace = true +workspace-hack = { version = "0.1", path = "../workspace-hack" } diff --git a/crates/scap-ffmpeg/Cargo.toml b/crates/scap-ffmpeg/Cargo.toml index 0c90dba2ae..ac7ebaab36 100644 --- a/crates/scap-ffmpeg/Cargo.toml +++ b/crates/scap-ffmpeg/Cargo.toml @@ -8,6 +8,7 @@ license = "MIT" ffmpeg = { workspace = true } cpal = { workspace = true } scap-cpal = { optional = true, path = "../scap-cpal" } +workspace-hack = { version = "0.1", path = "../workspace-hack" } [target.'cfg(windows)'.dependencies] scap-direct3d = { path = "../scap-direct3d" } diff --git a/crates/scap-screencapturekit/Cargo.toml b/crates/scap-screencapturekit/Cargo.toml index 6a82597ba4..8d71749275 100644 --- a/crates/scap-screencapturekit/Cargo.toml +++ b/crates/scap-screencapturekit/Cargo.toml @@ -7,6 +7,7 @@ license = "MIT" [dependencies] futures = { workspace = true } tracing = { workspace = true } +workspace-hack = { version = "0.1", path = "../workspace-hack" } [target.'cfg(target_os = "macos")'.dependencies] cidre = { workspace = true } diff --git a/crates/scap-targets/Cargo.toml b/crates/scap-targets/Cargo.toml index 2f35517cd3..8bf81d2030 100644 --- a/crates/scap-targets/Cargo.toml +++ b/crates/scap-targets/Cargo.toml @@ -11,6 +11,7 @@ serde = { version = "1.0.219", features = ["derive"] } specta.workspace = true image = "0.24" tracing.workspace = true +workspace-hack = { version = "0.1", path = "../workspace-hack" } [target.'cfg(target_os = "macos")'.dependencies] cidre = { workspace = true, default-features = false, features = ["sc"] } diff --git a/crates/timestamp/Cargo.toml b/crates/timestamp/Cargo.toml index ea06425822..305b951137 100644 --- a/crates/timestamp/Cargo.toml +++ b/crates/timestamp/Cargo.toml @@ -7,6 +7,7 @@ edition = "2024" [dependencies] cpal = { workspace = true } +workspace-hack = { version = "0.1", path = "../workspace-hack" } [target.'cfg(target_os = "macos")'.dependencies] cidre = { workspace = true } diff --git a/crates/utils/Cargo.toml b/crates/utils/Cargo.toml index e457e719cb..c1b9db8e14 100644 --- a/crates/utils/Cargo.toml +++ b/crates/utils/Cargo.toml @@ -27,6 +27,7 @@ serde_json = "1.0" flume = "0.11.0" tracing.workspace = true directories = "5.0" +workspace-hack = { version = "0.1", path = "../workspace-hack" } [lints] workspace = true diff --git a/crates/video-decode/Cargo.toml b/crates/video-decode/Cargo.toml index d6bfc085ca..09bb6c3590 100644 --- a/crates/video-decode/Cargo.toml +++ b/crates/video-decode/Cargo.toml @@ -11,6 +11,7 @@ ffmpeg.workspace = true ffmpeg-hw-device = { path = "../ffmpeg-hw-device" } tokio = { workspace = true, features = ["rt", "rt-multi-thread"] } tracing = "0.1.41" +workspace-hack = { version = "0.1", path = "../workspace-hack" } [target.'cfg(target_os = "macos")'.dependencies] cidre = { workspace = true } diff --git a/crates/workspace-hack/.gitattributes b/crates/workspace-hack/.gitattributes new file mode 100644 index 0000000000..3e9dba4b64 --- /dev/null +++ b/crates/workspace-hack/.gitattributes @@ -0,0 +1,4 @@ +# Avoid putting conflict markers in the generated Cargo.toml file, since their presence breaks +# Cargo. +# Also do not check out the file as CRLF on Windows, as that's what hakari needs. +Cargo.toml merge=binary -crlf diff --git a/crates/workspace-hack/Cargo.toml b/crates/workspace-hack/Cargo.toml new file mode 100644 index 0000000000..32e6b341b5 --- /dev/null +++ b/crates/workspace-hack/Cargo.toml @@ -0,0 +1,118 @@ +# This file is generated by `cargo hakari`. +# To regenerate, run: +# cargo hakari generate + +[package] +name = "workspace-hack" +version = "0.1.0" +edition = "2021" +description = "workspace-hack package, managed by hakari" +# You can choose to publish this crate: see https://docs.rs/cargo-hakari/latest/cargo_hakari/publishing. +publish = false + +# The parts of the file between the BEGIN HAKARI SECTION and END HAKARI SECTION comments +# are managed by hakari. + +### BEGIN HAKARI SECTION +[dependencies] +arrayvec = { version = "0.7" } +axum = { version = "0.7", features = ["macros", "ws"] } +bitflags = { version = "2", default-features = false, features = ["serde", "std"] } +bytemuck = { version = "1", default-features = false, features = ["aarch64_simd", "derive", "extern_crate_alloc", "min_const_generics"] } +chrono = { version = "0.4", features = ["serde"] } +clap = { version = "4", features = ["cargo", "derive"] } +clap_builder = { version = "4", default-features = false, features = ["cargo", "color", "help", "std", "suggestions", "usage"] } +deranged = { version = "0.5", features = ["powerfmt", "serde"] } +either = { version = "1", features = ["use_std"] } +flate2 = { version = "1", features = ["zlib-rs"] } +form_urlencoded = { version = "1" } +futures-channel = { version = "0.3", features = ["sink"] } +futures-core = { version = "0.3" } +futures-executor = { version = "0.3" } +futures-sink = { version = "0.3" } +futures-task = { version = "0.3" } +futures-util = { version = "0.3", features = ["channel", "io", "sink"] } +getrandom = { version = "0.2", default-features = false, features = ["js", "rdrand", "std"] } +gif = { version = "0.13" } +hashbrown = { version = "0.15", default-features = false, features = ["default-hasher", "inline-more"] } +idna = { version = "1" } +itertools-5ef9efb8ec2df382 = { package = "itertools", version = "0.12" } +libc = { version = "0.2" } +log = { version = "0.4", default-features = false, features = ["std"] } +memchr = { version = "2" } +miniz_oxide = { version = "0.8", features = ["simd"] } +nom = { version = "7" } +num-rational = { version = "0.4", features = ["serde"] } +num-traits = { version = "0.2", features = ["i128"] } +percent-encoding = { version = "2" } +phf_shared-93f6ce9d446188ac = { package = "phf_shared", version = "0.10", default-features = false, features = ["std"] } +phf_shared-a6292c17cd707f01 = { package = "phf_shared", version = "0.11" } +proc-macro2 = { version = "1", features = ["span-locations"] } +profiling = { version = "1" } +quote = { version = "1" } +rand = { version = "0.8", features = ["small_rng"] } +regex = { version = "1" } +regex-automata = { version = "0.4", default-features = false, features = ["dfa-build", "dfa-onepass", "hybrid", "meta", "nfa-backtrack", "perf-inline", "perf-literal", "std", "unicode"] } +regex-syntax = { version = "0.8" } +reqwest = { git = "https://github.com/CapSoftware/reqwest", rev = "9b5ecbd5210a9510fde766015cabb724c1e70d2e", features = ["blocking", "cookies", "json", "macos-system-configuration", "multipart", "rustls-tls", "stream"] } +rgb = { version = "0.8" } +rustc-hash = { version = "1" } +schemars = { version = "0.8", features = ["preserve_order", "url", "uuid1"] } +semver = { version = "1", features = ["serde"] } +serde = { version = "1", features = ["alloc", "derive", "rc"] } +serde_core = { version = "1", features = ["alloc", "rc"] } +serde_json = { version = "1", features = ["alloc", "raw_value", "unbounded_depth"] } +simd-adler32 = { version = "0.3" } +smallvec = { version = "1", default-features = false, features = ["const_new"] } +specta = { version = "2.0.0-rc.20", features = ["derive", "function", "serde_json", "uuid"] } +stable_deref_trait = { version = "1" } +tauri-utils = { version = "2", default-features = false, features = ["build", "compression", "resources"] } +thiserror = { version = "2" } +time = { version = "0.3", features = ["formatting", "macros", "parsing", "serde"] } +tokio = { version = "1", features = ["fs", "io-std", "io-util", "macros", "net", "process", "rt-multi-thread", "sync", "time", "tracing"] } +tracing = { version = "0.1", features = ["log"] } +tracing-core = { version = "0.1" } +tracing-subscriber = { version = "0.3", features = ["env-filter"] } +uuid = { version = "1", features = ["serde", "v4", "v7"] } + +[build-dependencies] +bitflags = { version = "2", default-features = false, features = ["serde", "std"] } +clang-sys = { version = "1", default-features = false, features = ["clang_11_0", "runtime"] } +either = { version = "1", features = ["use_std"] } +flate2 = { version = "1", features = ["zlib-rs"] } +form_urlencoded = { version = "1" } +getrandom = { version = "0.2", default-features = false, features = ["js", "rdrand", "std"] } +hashbrown = { version = "0.15", default-features = false, features = ["default-hasher", "inline-more"] } +idna = { version = "1" } +itertools-594e8ee84c453af0 = { package = "itertools", version = "0.13" } +itertools-5ef9efb8ec2df382 = { package = "itertools", version = "0.12" } +libc = { version = "0.2" } +log = { version = "0.4", default-features = false, features = ["std"] } +memchr = { version = "2" } +miniz_oxide = { version = "0.8", features = ["simd"] } +nom = { version = "7" } +percent-encoding = { version = "2" } +phf_shared-93f6ce9d446188ac = { package = "phf_shared", version = "0.10", default-features = false, features = ["std"] } +phf_shared-a6292c17cd707f01 = { package = "phf_shared", version = "0.11" } +proc-macro2 = { version = "1", features = ["span-locations"] } +quote = { version = "1" } +rand = { version = "0.8", features = ["small_rng"] } +regex = { version = "1" } +regex-automata = { version = "0.4", default-features = false, features = ["dfa-build", "dfa-onepass", "hybrid", "meta", "nfa-backtrack", "perf-inline", "perf-literal", "std", "unicode"] } +regex-syntax = { version = "0.8" } +rustc-hash = { version = "1" } +schemars = { version = "0.8", features = ["preserve_order", "url", "uuid1"] } +semver = { version = "1", features = ["serde"] } +serde = { version = "1", features = ["alloc", "derive", "rc"] } +serde_core = { version = "1", features = ["alloc", "rc"] } +serde_json = { version = "1", features = ["alloc", "raw_value", "unbounded_depth"] } +simd-adler32 = { version = "0.3" } +smallvec = { version = "1", default-features = false, features = ["const_new"] } +specta-macros = { version = "2.0.0-rc.17", features = ["DO_NOT_USE_function"] } +stable_deref_trait = { version = "1" } +syn = { version = "2", features = ["extra-traits", "fold", "full", "visit", "visit-mut"] } +tauri-utils = { version = "2", default-features = false, features = ["build", "compression", "resources"] } +thiserror = { version = "2" } +uuid = { version = "1", features = ["serde", "v4", "v7"] } + +### END HAKARI SECTION diff --git a/crates/workspace-hack/build.rs b/crates/workspace-hack/build.rs new file mode 100644 index 0000000000..92518ef04c --- /dev/null +++ b/crates/workspace-hack/build.rs @@ -0,0 +1,2 @@ +// A build script is required for cargo to consider build dependencies. +fn main() {} diff --git a/crates/workspace-hack/src/lib.rs b/crates/workspace-hack/src/lib.rs new file mode 100644 index 0000000000..22489f632b --- /dev/null +++ b/crates/workspace-hack/src/lib.rs @@ -0,0 +1 @@ +// This is a stub lib.rs.