# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.

[package]
name = "pal"
edition.workspace = true
rust-version.workspace = true

[features]
# Disable tests that do not pass in the CI environment.
ci = []
sandbox_tests = []

[dependencies]
getrandom.workspace = true

[target.'cfg(windows)'.dependencies]
headervec.workspace = true
pal_event.workspace = true

ntapi = { workspace = true, features = ["impl-default"] }
socket2 = { workspace = true, features = ["all"] }
widestring.workspace = true
windows-result.workspace = true

[target.'cfg(windows)'.dependencies.winapi]
workspace = true
features = [
    "errhandlingapi",
    "fileapi",
    "handleapi",
    "heapapi",
    "ioapiset",
    "impl-default",
    "jobapi2",
    "memoryapi",
    "namedpipeapi",
    "ntstatus",
    "processenv",
    "processthreadsapi",
    "sddl",
    "securitybaseapi",
    "std",
    "synchapi",
    "threadpoolapiset",
    "winbase",
    "winerror",
    "winioctl",
    "winnt",
    "winsock2",
]

[target.'cfg(windows)'.dependencies.windows]
workspace = true
features = [
    "Wdk_Foundation",
    "Win32_Foundation",
    "Win32_Security",
]

[target.'cfg(windows)'.dependencies.windows-sys]
workspace = true
features = [
    "Wdk_Foundation",
    "Wdk_Storage_FileSystem",
    "Win32_Foundation",
    "Win32_Security",
    "Win32_Security_Authorization",
    "Win32_Storage_FileSystem",
    "Win32_Networking_WinSock",
    "Win32_System_Console",
    "Win32_System_Diagnostics_Debug",
    "Win32_System_IO",
    "Win32_System_Ioctl",
    "Win32_System_JobObjects",
    "Win32_System_Kernel",
    "Win32_System_LibraryLoader",
    "Win32_System_Memory",
    "Win32_System_Pipes",
    "Win32_System_SystemServices",
    "Win32_System_Threading",
    "Win32_System_WindowsProgramming",
]

[target.'cfg(unix)'.dependencies]
libc.workspace = true

[target.'cfg(target_os = "linux")'.dependencies]
caps.workspace = true
seccompiler.workspace = true
landlock.workspace = true
fs-err.workspace = true
thiserror.workspace = true
tracing.workspace = true

[lints]
workspace = true
