OpenCL build.bat: library detection without parentheses in blocks (Program Files (x86) broke the parser)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
a63ab440c4
commit
36447d1bef
1 changed files with 24 additions and 18 deletions
|
|
@ -8,7 +8,7 @@ rem OCL_ROOT the old AMD APP SDK layout: %OCL_ROOT%\include and %OCL_ROO
|
||||||
rem The runtime itself (OpenCL.dll in System32 plus the vendor ICD) comes with the AMD Adrenalin driver; no SDK needed to run.
|
rem The runtime itself (OpenCL.dll in System32 plus the vendor ICD) comes with the AMD Adrenalin driver; no SDK needed to run.
|
||||||
rem Usage: build.bat [pack]
|
rem Usage: build.bat [pack]
|
||||||
rem pack directory name under ..\proto-cuda\packs\ (default igneum-genesis-mh)
|
rem pack directory name under ..\proto-cuda\packs\ (default igneum-genesis-mh)
|
||||||
setlocal enabledelayedexpansion
|
setlocal
|
||||||
cd /d "%~dp0"
|
cd /d "%~dp0"
|
||||||
|
|
||||||
set PACK=%1
|
set PACK=%1
|
||||||
|
|
@ -50,23 +50,29 @@ if "%LIB%"=="" (
|
||||||
echo using headers %INC% and import library %LIB%
|
echo using headers %INC% and import library %LIB%
|
||||||
rem Find the MSVC runtime libraries and the Windows SDK libraries ourselves, in case the prompt did not set LIB
|
rem Find the MSVC runtime libraries and the Windows SDK libraries ourselves, in case the prompt did not set LIB
|
||||||
rem (seen on a Visual Studio 2026 install where vcvarsall reported success but linking could not find LIBCMT.lib).
|
rem (seen on a Visual Studio 2026 install where vcvarsall reported success but linking could not find LIBCMT.lib).
|
||||||
set EXTRALIB=
|
set "EXTRALIB="
|
||||||
set MSVCLIB=
|
set "MSVCLIB="
|
||||||
for /f "delims=" %%D in ('dir /b /ad /o-n "%VCINSTALLDIR%Tools\MSVC" 2^>nul') do (
|
set "SDKLIB="
|
||||||
if "!MSVCLIB!"=="" if exist "%VCINSTALLDIR%Tools\MSVC\%%D\lib\x64\libcmt.lib" set MSVCLIB=%VCINSTALLDIR%Tools\MSVC\%%D\lib\x64
|
set "VSVC=%VCINSTALLDIR%"
|
||||||
)
|
if "%VSVC%"=="" set "VSVC=C:\Program Files\Microsoft Visual Studio\18\Community\VC\"
|
||||||
if "%MSVCLIB%"=="" for /f "delims=" %%D in ('dir /b /ad /o-n "C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC" 2^>nul') do (
|
set "KITS=C:\Program Files (x86)\Windows Kits\10\Lib"
|
||||||
if "!MSVCLIB!"=="" if exist "C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\%%D\lib\x64\libcmt.lib" set MSVCLIB=C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\%%D\lib\x64
|
for /f "delims=" %%D in ('dir /b /ad /o-n "%VSVC%Tools\MSVC" 2^>nul') do call :msvc "%%D"
|
||||||
)
|
for /f "delims=" %%D in ('dir /b /ad /o-n "%KITS%" 2^>nul') do call :sdk "%%D"
|
||||||
set SDKLIB=
|
goto :found
|
||||||
for /f "delims=" %%D in ('dir /b /ad /o-n "C:\Program Files (x86)\Windows Kits\10\Lib" 2^>nul') do (
|
:msvc
|
||||||
if "!SDKLIB!"=="" if exist "C:\Program Files (x86)\Windows Kits\10\Lib\%%D\ucrt\x64\libucrt.lib" set SDKLIB=C:\Program Files (x86)\Windows Kits\10\Lib\%%D
|
if not "%MSVCLIB%"=="" goto :eof
|
||||||
)
|
if exist "%VSVC%Tools\MSVC\%~1\lib\x64\libcmt.lib" set "MSVCLIB=%VSVC%Tools\MSVC\%~1\lib\x64"
|
||||||
if not "%MSVCLIB%"=="" set EXTRALIB=%EXTRALIB% /LIBPATH:"%MSVCLIB%"
|
goto :eof
|
||||||
if not "%SDKLIB%"=="" set EXTRALIB=%EXTRALIB% /LIBPATH:"%SDKLIB%\ucrt\x64" /LIBPATH:"%SDKLIB%\um\x64"
|
:sdk
|
||||||
if "%MSVCLIB%"=="" echo warning: could not find libcmt.lib under any MSVC toolset; install "Desktop development with C++" in the Visual Studio Installer.
|
if not "%SDKLIB%"=="" goto :eof
|
||||||
if "%SDKLIB%"=="" echo warning: could not find the Windows 10/11 SDK libraries under C:\Program Files ^(x86^)\Windows Kits\10\Lib.
|
if exist "%KITS%\%~1\ucrt\x64\libucrt.lib" set "SDKLIB=%KITS%\%~1"
|
||||||
echo libraries: MSVC=%MSVCLIB% SDK=%SDKLIB%
|
goto :eof
|
||||||
|
:found
|
||||||
|
if not "%MSVCLIB%"=="" set "EXTRALIB=/LIBPATH:"%MSVCLIB%""
|
||||||
|
if not "%SDKLIB%"=="" set "EXTRALIB=%EXTRALIB% /LIBPATH:"%SDKLIB%\ucrt\x64" /LIBPATH:"%SDKLIB%\um\x64""
|
||||||
|
if "%MSVCLIB%"=="" echo warning: no libcmt.lib under any MSVC toolset. Install "Desktop development with C++" in the Visual Studio Installer.
|
||||||
|
if "%SDKLIB%"=="" echo warning: no Windows SDK libraries under "%KITS%".
|
||||||
|
echo libraries: MSVC="%MSVCLIB%" SDK="%SDKLIB%"
|
||||||
echo cl /nologo /O2 /W3 /std:c11 /I "%INC%" /I "%PACKDIR%" /DIGNEUM_KERNEL_PATH="\"%PACKDIR:\=/%/kernel.cl\"" /Fe:igneum-bench-cl-%PACK%.exe host.c /link "%LIB%" %EXTRALIB%
|
echo cl /nologo /O2 /W3 /std:c11 /I "%INC%" /I "%PACKDIR%" /DIGNEUM_KERNEL_PATH="\"%PACKDIR:\=/%/kernel.cl\"" /Fe:igneum-bench-cl-%PACK%.exe host.c /link "%LIB%" %EXTRALIB%
|
||||||
cl /nologo /O2 /W3 /std:c11 /I "%INC%" /I "%PACKDIR%" /DIGNEUM_KERNEL_PATH="\"%PACKDIR:\=/%/kernel.cl\"" /Fe:igneum-bench-cl-%PACK%.exe host.c /link "%LIB%" %EXTRALIB%
|
cl /nologo /O2 /W3 /std:c11 /I "%INC%" /I "%PACKDIR%" /DIGNEUM_KERNEL_PATH="\"%PACKDIR:\=/%/kernel.cl\"" /Fe:igneum-bench-cl-%PACK%.exe host.c /link "%LIB%" %EXTRALIB%
|
||||||
if errorlevel 1 (
|
if errorlevel 1 (
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue