mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-11-24 12:06:44 +08:00
ae76307e4b
* Audit use of TO_NATIVE_PATH. TO_NATIVE_PATH should only be used when (1) pasting a path into a command line, or (2) displaying a path to a user. It must not be used before calling other CMake operations like file(WRITE. Fixes https://github.com/microsoft/vcpkg/issues/26178 ports/ffmpeg/portfile.cmake: Both uses are being embedded into a command line ✅ ports/gdal/dependency_win.cmake 117: This used TO_NATIVE_PATH but didn't actually connect the result. It's going on a command line so TO_NATIVE_PATH is appropriate. Drive by: Added quotes around other uses (all of which seem to be going to command lines). 202: ${EXPAT_LIBRARY_REL} ${ZLIB_LIBRARY_REL} don't seem to be set even though they are used; I think this is wrong but I don't know for sure that it is so I'm leaving it alone for now. ports/msmpi/portfile.cmake All 3 uses are being embedded into a command line ✅ ports/jemalloc/fix-utilities.patch ports/libproxy/fix-dependency-libmodman.patch ports/qtbase/env.patch These are in upstream content / context so it is not edited. ports/opengl/portfile.cmake Broken! Drive by fixes: * Modernized checking VCPKG_BUILD_TYPE * Ordered things consistently to be release then debug. * Removed funny newlines. ports/openni2/portfile.cmake Borderline OK; it goes into an MSBuild / vcxproj. I'm leaving it alone. Drive by fixes: * Guarded debug-only copies for VCPKG_BUILD_TYPE * Fixed supports expression ports/openssl/unix/CMakeLists.txt: Unused! ports/pthreads/portfile.cmake: Both uses are being embedded into a command line ✅ ports/qt5-base/cmake/qt_fix_makefile_install.cmake I'm not sure if this one is OK but it's being embedded into a file so it's probably fine. ports/qtapplicationmanager/portfile.cmake: I'm pretty sure this one is wrong, but it's guarded by VCPKG_TARGET_IS_WINDOWS so the ability to create damage is limited. ports/readosm/portfile.cmake: The use is being embedded into a command line ✅ ports/spatialite-tools/portfile.cmake: The use is being embedded into a command line ✅ ports/sqlcipher/portfile.cmake: Both uses are being embedded into a command line ✅ scripts/ports.cmake: Some uses were unused, others are immediately used and printed to the console. ✅ scripts/buildsystems/vcpkg.cmake: Fixed :) scripts/cmake/vcpkg_build_qmake: Looks unused. scripts/cmake/vcpkg_build_process.cmake: Added to console message only. ✅ scripts/cmake/vcpkg_execute_required_process_repeat.cmake: Added to console message only. ✅ Drive by: Fixed typo in variable name in the message. scripts/cmake/vcpkg_execute_required_process.cmake: Added to console message only. ✅ * Fix missing license.
65 lines
3.2 KiB
CMake
65 lines
3.2 KiB
CMake
if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
|
|
vcpkg_get_windows_sdk(WINDOWS_SDK)
|
|
|
|
if (WINDOWS_SDK MATCHES "10.")
|
|
set(LIBGLFILEPATH "$ENV{WindowsSdkDir}Lib/${WINDOWS_SDK}/um/${TRIPLET_SYSTEM_ARCH}/OpenGL32.Lib")
|
|
set(LIBGLUFILEPATH "$ENV{WindowsSdkDir}Lib/${WINDOWS_SDK}/um/${TRIPLET_SYSTEM_ARCH}/GlU32.Lib")
|
|
set(HEADERSPATH "$ENV{WindowsSdkDir}Include/${WINDOWS_SDK}/um")
|
|
elseif(WINDOWS_SDK MATCHES "8.")
|
|
set(LIBGLFILEPATH "$ENV{WindowsSdkDir}Lib/winv6.3/um/${TRIPLET_SYSTEM_ARCH}/OpenGL32.Lib")
|
|
set(LIBGLUFILEPATH "$ENV{WindowsSdkDir}Lib/winv6.3/um/${TRIPLET_SYSTEM_ARCH}/GlU32.Lib")
|
|
set(HEADERSPATH "$ENV{WindowsSdkDir}Include/um")
|
|
else()
|
|
message(FATAL_ERROR "Portfile not yet configured for Windows SDK with version: ${WINDOWS_SDK}")
|
|
endif()
|
|
|
|
if (NOT EXISTS "${LIBGLFILEPATH}")
|
|
file(TO_NATIVE_PATH "${LIBGLFILEPATH}" DISPLAY)
|
|
message(FATAL_ERROR "Cannot find Windows ${WINDOWS_SDK} SDK. File does not exist: ${DISPLAY}")
|
|
endif()
|
|
|
|
if (NOT EXISTS "${LIBGLUFILEPATH}")
|
|
file(TO_NATIVE_PATH "${LIBGLUFILEPATH}" DISPLAY)
|
|
message(FATAL_ERROR "Cannot find Windows ${WINDOWS_SDK} SDK. File does not exist: ${DISPLAY}")
|
|
endif()
|
|
|
|
set(INCLUDEGLPATH "${CURRENT_PACKAGES_DIR}/include/gl")
|
|
set(SHAREOPENGLPATH "${CURRENT_PACKAGES_DIR}/share/opengl")
|
|
set(RELEASELIBPATH "${CURRENT_PACKAGES_DIR}/lib")
|
|
set(DEBUGLIBPATH "${CURRENT_PACKAGES_DIR}/debug/lib")
|
|
set(GLGLHPATH "${HEADERSPATH}/gl/GL.h")
|
|
set(GLGLUHPATH "${HEADERSPATH}/gl/GLU.h")
|
|
|
|
file(MAKE_DIRECTORY "${INCLUDEGLPATH}" "${SHAREOPENGLPATH}" "${RELEASELIBPATH}")
|
|
if (NOT VCPKG_BUILD_TYPE)
|
|
file(MAKE_DIRECTORY "${DEBUGLIBPATH}")
|
|
endif()
|
|
|
|
file(COPY "${GLGLHPATH}" "${GLGLUHPATH}" DESTINATION "${INCLUDEGLPATH}")
|
|
|
|
if (NOT VCPKG_BUILD_TYPE)
|
|
file(COPY "${LIBGLFILEPATH}" DESTINATION "${DEBUGLIBPATH}")
|
|
file(COPY "${LIBGLUFILEPATH}" DESTINATION "${DEBUGLIBPATH}")
|
|
endif()
|
|
file(COPY "${LIBGLFILEPATH}" DESTINATION "${RELEASELIBPATH}")
|
|
file(COPY "${LIBGLUFILEPATH}" DESTINATION "${RELEASELIBPATH}")
|
|
|
|
if (WINDOWS_SDK MATCHES "10.")
|
|
file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "See https://developer.microsoft.com/windows/downloads/windows-10-sdk for the Windows 10 SDK license")
|
|
elseif(WINDOWS_SDK MATCHES "8.")
|
|
file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "See https://developer.microsoft.com/windows/downloads/windows-8-1-sdk for the Windows 8.1 SDK license")
|
|
endif()
|
|
|
|
string(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.([0-9]+)" WINDOWS_SDK_SEMVER "${WINDOWS_SDK}")
|
|
configure_file("${CMAKE_CURRENT_LIST_DIR}/opengl.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/opengl.pc" @ONLY)
|
|
configure_file("${CMAKE_CURRENT_LIST_DIR}/glu.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/glu.pc" @ONLY)
|
|
if (NOT VCPKG_BUILD_TYPE)
|
|
configure_file("${CMAKE_CURRENT_LIST_DIR}/opengl.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/opengl.pc" @ONLY)
|
|
configure_file("${CMAKE_CURRENT_LIST_DIR}/glu.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/glu.pc" @ONLY)
|
|
endif()
|
|
|
|
vcpkg_fixup_pkgconfig()
|
|
else()
|
|
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
|
|
endif()
|