00531fb591
Building the `gpu` (OpenCL) backend on Windows no longer needs a vendor OpenCL SDK. `cl-sys` links `OpenCL` (#[link(name = "OpenCL")]); instead of requiring an SDK-provided OpenCL.lib, build.rs now generates a vendor-neutral import library at build time from windows/OpenCL.def (all 118 cl-sys exports) — lib.exe for MSVC (located via the cc crate), dlltool for MinGW — and puts it on the link search path. The real OpenCL.dll is supplied at runtime by the GPU driver. build.rs no-ops on non-Windows targets and when the gpu feature is off, and warns rather than panics if the toolchain tool is absent so `cargo check` still works. Combined with the runtime-loaded (dlopen) CUDA/NVML, a Windows build now needs zero external GPU libraries. Add BUILD-windows.md (toolchain, build, crt-static packaging, runtime deps, CI) and link it from the README. Verified the whole crate compiles for x86_64-pc-windows-gnu (default features and gpu,cuda); Linux is unaffected. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
125 lines
3.1 KiB
Modula-2
125 lines
3.1 KiB
Modula-2
; OpenCL import library definition for jackpotminer's Windows build.
|
|
; Generated from the cl-sys 0.4.3 exports so a vendor-neutral OpenCL.lib /
|
|
; libOpenCL.a can be produced at build time without an OpenCL SDK. The actual
|
|
; OpenCL.dll (ICD loader) is provided at runtime by the GPU driver.
|
|
LIBRARY OpenCL
|
|
EXPORTS
|
|
clBuildProgram
|
|
clCloneKernel
|
|
clCompileProgram
|
|
clCreateBuffer
|
|
clCreateCommandQueue
|
|
clCreateCommandQueueWithProperties
|
|
clCreateContext
|
|
clCreateContextFromType
|
|
clCreateFromGLBuffer
|
|
clCreateFromGLRenderbuffer
|
|
clCreateFromGLTexture
|
|
clCreateFromGLTexture2D
|
|
clCreateFromGLTexture3D
|
|
clCreateImage
|
|
clCreateImage2D
|
|
clCreateImage3D
|
|
clCreateKernel
|
|
clCreateKernelsInProgram
|
|
clCreatePipe
|
|
clCreateProgramWithBinary
|
|
clCreateProgramWithBuiltInKernels
|
|
clCreateProgramWithIL
|
|
clCreateProgramWithSource
|
|
clCreateSampler
|
|
clCreateSamplerWithProperties
|
|
clCreateSubBuffer
|
|
clCreateSubDevices
|
|
clCreateUserEvent
|
|
clEnqueueAcquireGLObjects
|
|
clEnqueueBarrier
|
|
clEnqueueBarrierWithWaitList
|
|
clEnqueueCopyBuffer
|
|
clEnqueueCopyBufferRect
|
|
clEnqueueCopyBufferToImage
|
|
clEnqueueCopyImage
|
|
clEnqueueCopyImageToBuffer
|
|
clEnqueueFillBuffer
|
|
clEnqueueFillImage
|
|
clEnqueueMapBuffer
|
|
clEnqueueMapImage
|
|
clEnqueueMarker
|
|
clEnqueueMarkerWithWaitList
|
|
clEnqueueMigrateMemObjects
|
|
clEnqueueNativeKernel
|
|
clEnqueueNDRangeKernel
|
|
clEnqueueReadBuffer
|
|
clEnqueueReadBufferRect
|
|
clEnqueueReadImage
|
|
clEnqueueReleaseGLObjects
|
|
clEnqueueSVMFree
|
|
clEnqueueSVMMap
|
|
clEnqueueSVMMemcpy
|
|
clEnqueueSVMMemFill
|
|
clEnqueueSVMMigrateMem
|
|
clEnqueueSVMUnmap
|
|
clEnqueueTask
|
|
clEnqueueUnmapMemObject
|
|
clEnqueueWaitForEvents
|
|
clEnqueueWriteBuffer
|
|
clEnqueueWriteBufferRect
|
|
clEnqueueWriteImage
|
|
clFinish
|
|
clFlush
|
|
clGetCommandQueueInfo
|
|
clGetContextInfo
|
|
clGetDeviceAndHostTimer
|
|
clGetDeviceIDs
|
|
clGetDeviceInfo
|
|
clGetEventInfo
|
|
clGetEventProfilingInfo
|
|
clGetExtensionFunctionAddress
|
|
clGetExtensionFunctionAddressForPlatform
|
|
clGetGLContextInfoKHR
|
|
clGetGLObjectInfo
|
|
clGetGLTextureInfo
|
|
clGetHostTimer
|
|
clGetImageInfo
|
|
clGetKernelArgInfo
|
|
clGetKernelInfo
|
|
clGetKernelSubGroupInfo
|
|
clGetKernelWorkGroupInfo
|
|
clGetMemObjectInfo
|
|
clGetPipeInfo
|
|
clGetPlatformIDs
|
|
clGetPlatformInfo
|
|
clGetProgramBuildInfo
|
|
clGetProgramInfo
|
|
clGetSamplerInfo
|
|
clGetSupportedImageFormats
|
|
clLinkProgram
|
|
clReleaseCommandQueue
|
|
clReleaseContext
|
|
clReleaseDevice
|
|
clReleaseEvent
|
|
clReleaseKernel
|
|
clReleaseMemObject
|
|
clReleaseProgram
|
|
clReleaseSampler
|
|
clRetainCommandQueue
|
|
clRetainContext
|
|
clRetainDevice
|
|
clRetainEvent
|
|
clRetainKernel
|
|
clRetainMemObject
|
|
clRetainProgram
|
|
clRetainSampler
|
|
clSetDefaultDeviceCommandQueue
|
|
clSetEventCallback
|
|
clSetKernelArg
|
|
clSetKernelArgSVMPointer
|
|
clSetKernelExecInfo
|
|
clSetMemObjectDestructorCallback
|
|
clSetUserEventStatus
|
|
clSVMAlloc
|
|
clSVMFree
|
|
clUnloadCompiler
|
|
clUnloadPlatformCompiler
|
|
clWaitForEvents
|