Skip to content

Adds support for vcpkg in Makefile.win #101

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 23 additions & 5 deletions Makefile.win
Original file line number Diff line number Diff line change
@@ -1,20 +1,42 @@

!IFNDEF PLATFORM
PLATFORM=$(VSCMD_ARG_TGT_ARCH)
!ENDIF

# TODO FIXME find a better way to detect the directory to use
# for OpenCL development files
!IF ("$(OPENCLDIR)" == "") && EXIST("$(VCPKG_ROOT)\installed\$(PLATFORM)-windows\include\CL\cl.h")
OPENCLDIR = $(VCPKG_ROOT)\installed\$(PLATFORM)-windows
LIBS = OpenCL.lib
LIBPATH32 = /LIBPATH:"$(OPENCLDIR)\lib"
LIBPATH64 = /LIBPATH:"$(OPENCLDIR)\lib"
!ENDIF
!IF "$(OPENCLDIR)" == ""
OPENCLDIR = $(INTELOCLSDKROOT)
LIBS = OpenCL.lib
LIBPATH32 = /LIBPATH:"$(OPENCLDIR)\lib\x86"
LIBPATH64 = /LIBPATH:"$(OPENCLDIR)\lib\x64"
!ENDIF
!IF "$(OPENCLDIR)" == ""
OPENCLDIR = $(AMDAPPSDKROOT)
LIBS = libopenCL.a
LIBPATH32 = /LIBPATH:"$(OPENCLDIR)\lib\x86"
LIBPATH64 = /LIBPATH:"$(OPENCLDIR)\lib\x86_64"
!ENDIF
!IF "$(OPENCLDIR)" == ""
OPENCLDIR = $(MAKEDIR)
LIBS = libopenCL.a
LIBPATH32 = /LIBPATH:"$(OPENCLDIR)\lib" /LIBPATH:"$(OPENCLDIR)\lib\x86"
LIBPATH64 = /LIBPATH:"$(OPENCLDIR)\lib\x64" /LIBPATH:"$(OPENCLDIR)\lib\x86_64" /LIBPATH:"$(OPENCLDIR)\lib\x86_amd64"
!ENDIF
!IF "$(OPENCLDIR)" == ""
OPENCLDIR = .
LIBS = libopenCL.a
LIBPATH32 = /LIBPATH:"$(OPENCLDIR)\lib" /LIBPATH:"$(OPENCLDIR)\lib\x86"
LIBPATH64 = /LIBPATH:"$(OPENCLDIR)\lib\x64" /LIBPATH:"$(OPENCLDIR)\lib\x86_64" /LIBPATH:"$(OPENCLDIR)\lib\x86_amd64"
!ENDIF
!MESSAGE OpenCL dir: $(OPENCLDIR)


HDR = src/error.h \
src/ext.h \
src/ctx_prop.h \
Expand All @@ -27,7 +49,6 @@ HDR = src/error.h \
src/strbuf.h

CFLAGS = /GL /Ox /W4 /Zi /I"$(OPENCLDIR)\include" /nologo
LIBS = libOpenCL.a

# TODO there's most likely a better way to do the multiarch
# switching
Expand All @@ -46,9 +67,6 @@ ARCH=32

!MESSAGE Building for $(ARCH)-bit (processor architecture: $(PROCESSOR_ARCHITECTURE), platform: $(PLATFORM))

LIBPATH32 = /LIBPATH:"$(OPENCLDIR)\lib" /LIBPATH:"$(OPENCLDIR)\lib\x86"
LIBPATH64 = /LIBPATH:"$(OPENCLDIR)\lib\x64" /LIBPATH:"$(OPENCLDIR)\lib\x86_64" /LIBPATH:"$(OPENCLDIR)\lib\x86_amd64"

# And since we can't do $(LIBPATH$(ARCH)) with nmake ...
!IF "$(ARCH)" == "64"
LINKOPTS = /LTCG $(LIBPATH64) /nologo
Expand Down
36 changes: 36 additions & 0 deletions fetch-opencl-vcpkg-win.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
REM call as fetch-opencl-vcpkg-win x86|x64
@echo off
SETLOCAL

set VCPKG_VERSION="2024.10.21"

if not "%~1" == "" (
set VCPKG_ARCH=%1
) else if not defined PLATFORM (
set VCPKG_ARCH=%VSCMD_ARG_TGT_ARCH%
) else (
set VCPKG_ARCH=%PLATFORM%
)

if NOT "%VCPKG_ARCH%" == "x64" (
if NOT "%VCPKG_ARCH%" == "x86" (
echo Bad argument: %VCPKG_ARCH%
echo %0 [x86^|x64]
exit /B 1
)
)

if not exist ".\vcpkg" (
git clone -b %VCPKG_VERSION% --depth 1 https://github.com/microsoft/vcpkg .\vcpkg
)

if not exist ".\vcpkg\vcpkg.exe" (
cmd.exe /C .\vcpkg\bootstrap-vcpkg.bat -disableMetrics
)

echo Install OpenCL SDK
.\vcpkg\vcpkg.exe install opencl --triplet="%VCPKG_ARCH%-windows"

ENDLOCAL
set VCPKG_ROOT=.\vcpkg