this repo has no description

Merge pull request #27702 from lukstafi/master

conf-cuda compatibility with native Windows

Changed files
+32 -7
packages
conf-cuda
conf-cuda.1
conf-cuda-config
conf-cuda-config.1
+26 -1
packages/conf-cuda-config/conf-cuda-config.1/opam
···
wsl_distro_name: "$WSL_DISTRO_NAME"
}
EOF
-
"""]
+
"""] { os-family != "windows" }
+
["sh" "-exc" """
+
if [ -d "$CUDA_PATH" ]; then
+
CUDA_PREINSTALLED="true"
+
elif [ -d "/cygdrive/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.8" ]; then
+
CUDA_PATH="C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.8"
+
CUDA_PREINSTALLED="true"
+
elif [ -d "/cygdrive/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.9" ]; then
+
CUDA_PATH="C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.9"
+
CUDA_PREINSTALLED="true"
+
elif [ -d "/cygdrive/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v13.0" ]; then
+
CUDA_PATH="C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v13.0"
+
CUDA_PREINSTALLED="true"
+
elif [ -d "/cygdrive/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v13.1" ]; then
+
CUDA_PATH="C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v13.1"
+
CUDA_PREINSTALLED="true"
+
elif [ -d "/cygdrive/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA" ]; then
+
CUDA_PREINSTALLED="true"
+
else
+
CUDA_PREINSTALLED="false"
+
fi
+
echo 'opam-version: \"2.0\" variables { cuda_preinstalled: \"'$CUDA_PREINSTALLED'\" cuda_path: \"'$CUDA_PATH'\" }' > conf-cuda-config.config
+
"""] { os-family = "windows" }
+
[ "sh" "-exc" "cat conf-cuda-config.config" ] {os-family = "windows"}
+
[ "powershell" "-Command" "(Get-Content -Raw conf-cuda-config.config) -replace '\\\\', '\\\\' | Set-Content conf-cuda-config.config" ] {os-family = "windows"}
+
[ "sh" "-exc" "cat conf-cuda-config.config" ] {os-family = "windows"}
]
post-messages: [
"NOTE: assuming CUDA will be installed under %{conf-cuda-config:cuda_path}%"
+6 -6
packages/conf-cuda/conf-cuda.1/opam
···
#include \"cuda.h\"
#include \"nvrtc.h\"
"]
-
["sh" "-exc" "cc -c $CFLAGS -I%{conf-cuda-config:cuda_path}%/include test.c"]
+
["sh" "-exc" "$(ocamlc -config-var c_compiler) -c $CFLAGS -I'%{conf-cuda-config:cuda_path}%/include' test.c"]
]
# Note: the minimal set of packages directly from NVidia repositories, e.g. for cudajit:
# "cuda-cudart-X-Y" "cuda-cudart-dev-X-Y" "cuda-runtime-X-Y" "cuda-nvrtc-X-Y" "cuda-nvrtc-dev-X-Y"
···
[ CUDA_PATH = "%{conf-cuda-config:cuda_path}%" ]
]
post-messages: [
-
"Make sure that CUDA is properly installed under the path %{conf-cuda-config:cuda_path}%; or properly set the CUDA_PATH environment variable and re-install opam package conf-cuda-config. See: https://docs.nvidia.com/cuda/ Failing configuration: CUDA_PATH=%{conf-cuda-config:cuda_path}%, is-WSL %{conf-cuda-config:is_wsl}%, OS family %{os-family}%"
+
"Make sure that CUDA is properly installed under the path %{conf-cuda-config:cuda_path}%; or properly set the CUDA_PATH environment variable and re-install opam package conf-cuda-config. We recommend using the latest version of CUDA, at least v12.8. See: https://docs.nvidia.com/cuda/ Failing configuration: CUDA_PATH=%{conf-cuda-config:cuda_path}%, is-WSL %{conf-cuda-config:is_wsl}%, OS family %{os-family}%"
{failure & conf-cuda-config:cuda_preinstalled}
"Execute: $ sudo add-apt-repository multiverse; sudo apt update; sudo apt-get install nvidia-cuda-dev nvidia-cuda-toolkit"
{failure & !conf-cuda-config:cuda_preinstalled & !conf-cuda-config:is_wsl & os-family = "debian" & os-distribution != "ubuntu"}
···
(os-family = "opensuse" | os-distribution = "opensuse-leap" | os-distribution = "opensuse-tumbleweed")}
"Execute: $ sudo pacman -Sy cuda"
{failure & !conf-cuda-config:is_wsl & !conf-cuda-config:cuda_preinstalled & os-family = "arch"}
-
"Alternatively: manually install CUDA or verify that CUDA_PATH is set properly, and re-install opam package conf-cuda-config. See: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html"
+
"Alternatively: manually install CUDA or verify that CUDA_PATH is set properly, and re-install opam package conf-cuda-config. We recommend using the latest version of CUDA, at least v12.8. See: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html"
{failure & !conf-cuda-config:is_wsl & !conf-cuda-config:cuda_preinstalled & os = "linux"}
-
"Manually install CUDA or verify that CUDA_PATH is set properly, and re-install opam package conf-cuda-config. See: https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html"
-
{failure & !conf-cuda-config:is_wsl & !conf-cuda-config:cuda_preinstalled & os = "windows"}
+
"Manually install CUDA or verify that CUDA_PATH is set properly. See: https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html"
+
{failure & os-family = "windows"}
"If CUDA is supported on your system, manually install CUDA or verify that CUDA_PATH is set properly, and re-install opam package conf-cuda-config. See: https://docs.nvidia.com/cuda/"
-
{failure & !conf-cuda-config:is_wsl & !conf-cuda-config:cuda_preinstalled & os != "linux" & os != "windows"}
+
{failure & !conf-cuda-config:is_wsl & !conf-cuda-config:cuda_preinstalled & os != "linux" & os-family != "windows"}
]
synopsis: "Virtual package relying on a CUDA system installation"
description: