This does not always seem to be the case. For me the Windows SDK was installed in the root directory of a partition.
Hi @RobinKa ,
Plz following these steps:
vcpkg_get_program_files_32_bit(PROGRAM_FILES_32_BIT)message("prog path: ${PROGRAM_FILES_32_BIT}")Thanks,
Lily
Hello @wangli28 ,
Thanks for the response. Sorry if I was not clear enough. My program files path is found just fine. The issue is that the OpenGL portfile is looking within the program files folder for the Windows SDK, although Windows SDK does not have to be installed there (eg. for me it is F:\Windows Kits\). Instead of hardcoding the path to be in program files, the path should be determined by reading a value in the registry (see https://stackoverflow.com/a/35121768).
Hi,
I have the same issue,
The following packages will be built and installed:
libwebp[core]:x64-windows
* opengl[core]:x64-windows
Additional packages (*) will be modified to complete this operation.
Starting package 1/2: opengl:x64-windows
Building package opengl[core]:x64-windows...
CMake Error at ports/opengl/portfile.cmake:20 (message):
Cannot find Windows 10.0.18362.0 SDK. File does not exist: C:\Program
Files (x86)\Windows Kits\10\Lib\10.0.18362.0\um\x64\OpenGL32.Lib
Call Stack (most recent call first):
scripts/ports.cmake:74 (include)
my windows kit is installed in the following folder
D:\Windows Kits\10\Lib\10.0.18362.0\um\x64
Does anybody have any solutions?
Hi,
I have the same issue,The following packages will be built and installed: libwebp[core]:x64-windows * opengl[core]:x64-windows Additional packages (*) will be modified to complete this operation. Starting package 1/2: opengl:x64-windows Building package opengl[core]:x64-windows... CMake Error at ports/opengl/portfile.cmake:20 (message): Cannot find Windows 10.0.18362.0 SDK. File does not exist: C:\Program Files (x86)\Windows Kits\10\Lib\10.0.18362.0\um\x64\OpenGL32.Lib Call Stack (most recent call first): scripts/ports.cmake:74 (include)my windows kit is installed in the following folder
D:\Windows Kits\10\Lib\10.0.18362.0\um\x64Does anybody have any solutions?
this bug still exists and my workaroud is to make a dir junction
Change the file "vcpkg\ports\opengl\portfile.cmake":
vcpkg_get_program_files_32_bit(PROGRAM_FILES_32_BIT)
vcpkg_get_windows_sdk(WINDOWS_SDK)
if (WINDOWS_SDK MATCHES "10.")
set(LIBGLFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Lib\\${WINDOWS_SDK}\\um\\${TRIPLET_SYSTEM_ARCH}\\OpenGL32.Lib")
set(LIBGLUFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Lib\\${WINDOWS_SDK}\\um\\${TRIPLET_SYSTEM_ARCH}\\GlU32.Lib")
set(HEADERSPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Include\\${WINDOWS_SDK}\\um")
elseif(WINDOWS_SDK MATCHES "8.")
set(LIBGLFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\8.1\\Lib\\winv6.3\\um\\${TRIPLET_SYSTEM_ARCH}\\OpenGL32.Lib")
set(LIBGLUFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\8.1\\Lib\\winv6.3\\um\\${TRIPLET_SYSTEM_ARCH}\\GlU32.Lib")
set(HEADERSPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\8.1\\Include\\um")
else()
message(FATAL_ERROR "Portfile not yet configured for Windows SDK with version: ${WINDOWS_SDK}")
endif()
like this:
GET_FILENAME_COMPONENT(SDK_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots;KitsRoot10]" ABSOLUTE CACHE)
vcpkg_get_windows_sdk(WINDOWS_SDK)
if (WINDOWS_SDK MATCHES "10.")
set(LIBGLFILEPATH "${SDK_PATH}\\Lib\\${WINDOWS_SDK}\\um\\${TRIPLET_SYSTEM_ARCH}\\OpenGL32.Lib")
set(LIBGLUFILEPATH "${SDK_PATH}\\Lib\\${WINDOWS_SDK}\\um\\${TRIPLET_SYSTEM_ARCH}\\GlU32.Lib")
set(HEADERSPATH "${SDK_PATH}\\Include\\${WINDOWS_SDK}\\um")
elseif(WINDOWS_SDK MATCHES "8.")
set(LIBGLFILEPATH "${SDK_PATH}\\Lib\\winv6.3\\um\\${TRIPLET_SYSTEM_ARCH}\\OpenGL32.Lib")
set(LIBGLUFILEPATH "${SDK_PATH}\\Lib\\winv6.3\\um\\${TRIPLET_SYSTEM_ARCH}\\GlU32.Lib")
set(HEADERSPATH "${SDK_PATH}\\Include\\um")
else()
message(FATAL_ERROR "Portfile not yet configured for Windows SDK with version: ${WINDOWS_SDK}")
endif()
Solve the problem for me.
So, seens the problem is the hardcoded sdk path in cmake file.
I found @AlessandroMenti's suggestion here: #8288
Change the file "vcpkg\ports\opengl\portfile.cmake":
vcpkg_get_program_files_32_bit(PROGRAM_FILES_32_BIT) vcpkg_get_windows_sdk(WINDOWS_SDK) if (WINDOWS_SDK MATCHES "10.") set(LIBGLFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Lib\\${WINDOWS_SDK}\\um\\${TRIPLET_SYSTEM_ARCH}\\OpenGL32.Lib") set(LIBGLUFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Lib\\${WINDOWS_SDK}\\um\\${TRIPLET_SYSTEM_ARCH}\\GlU32.Lib") set(HEADERSPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Include\\${WINDOWS_SDK}\\um") elseif(WINDOWS_SDK MATCHES "8.") set(LIBGLFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\8.1\\Lib\\winv6.3\\um\\${TRIPLET_SYSTEM_ARCH}\\OpenGL32.Lib") set(LIBGLUFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\8.1\\Lib\\winv6.3\\um\\${TRIPLET_SYSTEM_ARCH}\\GlU32.Lib") set(HEADERSPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\8.1\\Include\\um") else() message(FATAL_ERROR "Portfile not yet configured for Windows SDK with version: ${WINDOWS_SDK}") endif()like this:
GET_FILENAME_COMPONENT(SDK_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots;KitsRoot10]" ABSOLUTE CACHE) vcpkg_get_windows_sdk(WINDOWS_SDK) if (WINDOWS_SDK MATCHES "10.") set(LIBGLFILEPATH "${SDK_PATH}\\Lib\\${WINDOWS_SDK}\\um\\${TRIPLET_SYSTEM_ARCH}\\OpenGL32.Lib") set(LIBGLUFILEPATH "${SDK_PATH}\\Lib\\${WINDOWS_SDK}\\um\\${TRIPLET_SYSTEM_ARCH}\\GlU32.Lib") set(HEADERSPATH "${SDK_PATH}\\Include\\${WINDOWS_SDK}\\um") elseif(WINDOWS_SDK MATCHES "8.") set(LIBGLFILEPATH "${SDK_PATH}\\Lib\\winv6.3\\um\\${TRIPLET_SYSTEM_ARCH}\\OpenGL32.Lib") set(LIBGLUFILEPATH "${SDK_PATH}\\Lib\\winv6.3\\um\\${TRIPLET_SYSTEM_ARCH}\\GlU32.Lib") set(HEADERSPATH "${SDK_PATH}\\Include\\um") else() message(FATAL_ERROR "Portfile not yet configured for Windows SDK with version: ${WINDOWS_SDK}") endif()Solve the problem for me.
So, seens the problem is the hardcoded sdk path in cmake file.
I found @AlessandroMenti's suggestion here: #8288
This solved it for me, too.
Duplicated to https://github.com/microsoft/vcpkg/issues/8288
Most helpful comment
Change the file "vcpkg\ports\opengl\portfile.cmake":
like this:
Solve the problem for me.
So, seens the problem is the hardcoded sdk path in cmake file.
I found @AlessandroMenti's suggestion here: #8288