@@ -50,21 +50,40 @@ function Find-FirstFile {
5050
5151# --- ROCm ---
5252if ($RocmPath -eq " " ) {
53- if ($env: HIP_PATH -and (Test-Path (Join-Path $env: HIP_PATH " bin\clang++.exe" ))) {
53+ $hipPathHasClang = $env: HIP_PATH -and (
54+ (Test-Path (Join-Path $env: HIP_PATH " bin\clang++.exe" )) -or
55+ (Test-Path (Join-Path $env: HIP_PATH " lib\llvm\bin\clang++.exe" ))
56+ )
57+ if ($hipPathHasClang ) {
5458 $RocmPath = (Resolve-Path $env: HIP_PATH ).Path
5559 } else {
56- $clang = Find-FirstFile @ (" C:\Program Files\AMD\ROCm\*\bin\clang++.exe" )
60+ $clang = Find-FirstFile @ (
61+ " C:\Program Files\AMD\ROCm\*\bin\clang++.exe" ,
62+ " C:\TheRock\build\lib\llvm\bin\clang++.exe"
63+ )
5764 if ($clang -eq " " ) {
5865 throw " ROCm was not found. Install the AMD HIP SDK or pass -RocmPath."
5966 }
60- $RocmPath = (Resolve-Path (Join-Path (Split-Path $clang - Parent) " .." )).Path
67+ $clangDir = Split-Path $clang - Parent
68+ if ($clangDir -like " *\lib\llvm\bin" ) {
69+ $RocmPath = (Resolve-Path (Join-Path $clangDir " ..\..\.." )).Path
70+ } else {
71+ $RocmPath = (Resolve-Path (Join-Path $clangDir " .." )).Path
72+ }
6173 }
6274}
63- $clangxx = Join-Path $RocmPath " bin\clang++.exe"
64- $clangc = Join-Path $RocmPath " bin\clang.exe"
65- if (-not (Test-Path $clangxx ) -or -not (Test-Path $clangc )) {
66- throw " ROCm clang not found under $RocmPath \bin"
75+ $compilerDir = @ (
76+ (Join-Path $RocmPath " bin" ),
77+ (Join-Path $RocmPath " lib\llvm\bin" )
78+ ) | Where-Object {
79+ (Test-Path (Join-Path $_ " clang.exe" )) -and
80+ (Test-Path (Join-Path $_ " clang++.exe" ))
81+ } | Select-Object - First 1
82+ if ($null -eq $compilerDir ) {
83+ throw " ROCm clang not found under $RocmPath \bin or $RocmPath \lib\llvm\bin"
6784}
85+ $clangxx = Join-Path $compilerDir " clang++.exe"
86+ $clangc = Join-Path $compilerDir " clang.exe"
6887
6988# --- GPU targets ---
7089if ($GpuTargets -eq " " ) {
@@ -126,7 +145,7 @@ if ($Clean) {
126145
127146$env: HIP_PATH = $RocmPath
128147$env: ROCM_PATH = $RocmPath
129- $env: PATH = @ ((Join-Path $RocmPath " bin" ), $env: PATH ) -join [IO.Path ]::PathSeparator
148+ $env: PATH = @ ($compilerDir , (Join-Path $RocmPath " bin" ), $env: PATH ) -join [IO.Path ]::PathSeparator
130149
131150$configureArgs = @ (
132151 " -S" , $sourceDir ,
0 commit comments