mirror of https://github.com/microsoft/vcpkg.git
[opencl] Use canonical cmake install and fixup (#40042)
This commit is contained in:
parent
aae75b3554
commit
6fb9a26cf4
|
|
@ -1,24 +1,21 @@
|
|||
# OpenCL headers
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
OUT_SOURCE_PATH OPENCL_HEADERS
|
||||
REPO KhronosGroup/OpenCL-Headers
|
||||
REF "${VERSION}"
|
||||
SHA512 41730e80b267de45db9d7a3bcf9e0f29bfc86b25475a86d50180a7258e1240fc8c8f2ad3e222b03b3ef50c10ef63fb5b1647c056fec615e87965aa3196e8ac60
|
||||
HEAD_REF main
|
||||
)
|
||||
|
||||
file(INSTALL "${SOURCE_PATH}/CL" DESTINATION ${CURRENT_PACKAGES_DIR}/include)
|
||||
|
||||
# OpenCL C++ headers
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
OUT_SOURCE_PATH OPENCL_CLHPP
|
||||
REPO KhronosGroup/OpenCL-CLHPP
|
||||
REF "${VERSION}"
|
||||
SHA512 30252a832287375d550a5e184779881d5b22207a636298c7f52f277c219d3a1ae6983259cfea7bf4f90f0840fec114ee0e7a8c1e6a6fe48c24fd3b5119e7a7f8
|
||||
HEAD_REF main
|
||||
)
|
||||
|
||||
file(INSTALL "${SOURCE_PATH}/include/CL" DESTINATION ${CURRENT_PACKAGES_DIR}/include)
|
||||
|
||||
# OpenCL ICD loader
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
|
|
@ -28,56 +25,53 @@ vcpkg_from_github(
|
|||
HEAD_REF main
|
||||
)
|
||||
|
||||
string(COMPARE EQUAL ${VCPKG_CRT_LINKAGE} dynamic USE_DYNAMIC_VCXX_RUNTIME)
|
||||
block(SCOPE_FOR VARIABLES)
|
||||
set(VCPKG_BUILD_TYPE release) # header-only SDK components
|
||||
|
||||
message(STATUS "OpenCL headers (${OPENCL_HEADERS})")
|
||||
vcpkg_cmake_configure(
|
||||
SOURCE_PATH "${OPENCL_HEADERS}"
|
||||
OPTIONS
|
||||
-DOPENCL_HEADERS_BUILD_CXX_TESTS=OFF
|
||||
-DBUILD_TESTING=OFF
|
||||
)
|
||||
vcpkg_cmake_install()
|
||||
vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/OpenCLHeaders" PACKAGE_NAME "openclheaders")
|
||||
file(RENAME "${CURRENT_PACKAGES_DIR}/lib/pkgconfig" "${CURRENT_PACKAGES_DIR}/share/pkgconfig")
|
||||
unset(Z_VCPKG_CMAKE_GENERATOR CACHE) # suppress warning
|
||||
|
||||
message(STATUS "OpenCL C++ headers (${OPENCL_CLHPP})")
|
||||
vcpkg_cmake_configure(
|
||||
SOURCE_PATH "${OPENCL_CLHPP}"
|
||||
OPTIONS
|
||||
-DBUILD_DOCS=OFF
|
||||
-DBUILD_EXAMPLES=OFF
|
||||
-DBUILD_TESTING=OFF
|
||||
"-DOpenCLHeaders_DIR=${CURRENT_PACKAGES_DIR}/share/openclheaders"
|
||||
)
|
||||
vcpkg_cmake_install()
|
||||
vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/OpenCLHeadersCpp" PACKAGE_NAME "openclheaderscpp")
|
||||
unset(Z_VCPKG_CMAKE_GENERATOR CACHE) # suppress warning
|
||||
endblock()
|
||||
|
||||
message(STATUS "OpenCL ICD loader (${SOURCE_PATH})")
|
||||
vcpkg_cmake_configure(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
SOURCE_PATH "${SOURCE_PATH}"
|
||||
OPTIONS
|
||||
-DOPENCL_ICD_LOADER_HEADERS_DIR=${CURRENT_PACKAGES_DIR}/include
|
||||
"-DOPENCL_ICD_LOADER_HEADERS_DIR=${CURRENT_PACKAGES_DIR}/include"
|
||||
-DENABLE_OPENCL_LAYERINFO=OFF
|
||||
)
|
||||
|
||||
vcpkg_cmake_build(TARGET OpenCL)
|
||||
|
||||
if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
|
||||
if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
|
||||
file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${VCPKG_TARGET_STATIC_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
|
||||
endif()
|
||||
if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
|
||||
file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/${VCPKG_TARGET_STATIC_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
|
||||
endif()
|
||||
else()
|
||||
if(VCPKG_TARGET_IS_WINDOWS)
|
||||
if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
|
||||
file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}" DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
|
||||
file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}" DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
|
||||
endif()
|
||||
if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
|
||||
file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
|
||||
file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
|
||||
endif()
|
||||
elseif(VCPKG_TARGET_IS_LINUX)
|
||||
if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
|
||||
file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}" DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
|
||||
file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}.1" DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
|
||||
file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}.1.2" DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
|
||||
endif()
|
||||
if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
|
||||
file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
|
||||
file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}.1" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
|
||||
file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}.1.2" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
|
||||
endif()
|
||||
elseif(VCPKG_TARGET_IS_OSX)
|
||||
if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
|
||||
file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}" DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
|
||||
endif()
|
||||
if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
|
||||
file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
vcpkg_cmake_install()
|
||||
vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/OpenCLICDLoader" PACKAGE_NAME "openclicdloader")
|
||||
vcpkg_fixup_pkgconfig()
|
||||
vcpkg_copy_pdbs()
|
||||
|
||||
file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
|
||||
file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
||||
configure_file(${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake ${CURRENT_PACKAGES_DIR}/share/${PORT} @ONLY)
|
||||
file(GLOB files_in_bin "${CURRENT_PACKAGES_DIR}/bin/*")
|
||||
if(files_in_bin STREQUAL "")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
|
||||
endif()
|
||||
|
||||
configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY)
|
||||
|
||||
file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
|
||||
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
|
||||
|
|
|
|||
|
|
@ -1,16 +1,28 @@
|
|||
The package opencl is compatible with built-in CMake targets via CMake v3.6 and prior syntax
|
||||
opencl provides CMake targets:
|
||||
|
||||
find_package(OpenCL REQUIRED)
|
||||
target_link_libraries(main PRIVATE ${OpenCL_LIBRARIES})
|
||||
target_include_directories(main PRIVATE ${OpenCL_INCLUDE_DIRS})
|
||||
# Khronos OpenCL Headers
|
||||
find_package(OpenCLHeaders CONFIG REQUIRED)
|
||||
target_link_libraries(main PRIVATE OpenCL::Headers)
|
||||
|
||||
and the CMake v3.7 and beyond imported target syntax
|
||||
# Khronos OpenCL C++ Headers
|
||||
find_package(OpenCLHeadersCpp CONFIG REQUIRED)
|
||||
target_link_libraries(main PRIVATE OpenCL::HeadersCpp)
|
||||
|
||||
find_package(OpenCL REQUIRED)
|
||||
target_link_libraries(main PRIVATE OpenCL::OpenCL)
|
||||
# Khronos OpenCL ICD Loader
|
||||
find_package(OpenCLICDLoader CONFIG REQUIRED)
|
||||
target_link_libraries(main PRIVATE OpenCL::OpenCL)
|
||||
|
||||
opencl provides pkg-config modules:
|
||||
|
||||
# Khronos OpenCL Headers
|
||||
OpenCL-Headers
|
||||
|
||||
# Khronos OpenCL ICD Loader
|
||||
OpenCL
|
||||
|
||||
This package is only an OpenCL SDK. To actually run OpenCL code you also need to install an implementation.
|
||||
|
||||
WINDOWS: implementations typically ship with the drivers of you CPU/GPU vendors.
|
||||
LINUX: implementations may be installed from your distro's repo or manually. There are too many to count.
|
||||
APPLE: consult your distribution vendor on the state of OpenCL support: https://support.apple.com/en-us/HT202823
|
||||
Windows: Implementations typically ship with the drivers of you CPU/GPU vendors.
|
||||
Linux: Implementations may be installed from your distro's repo or manually.
|
||||
Apple: Consult your distribution vendor on the state of OpenCL support:
|
||||
https://support.apple.com/en-us/HT202823
|
||||
|
|
|
|||
|
|
@ -1,13 +1,14 @@
|
|||
string(FIND ";${ARGS};" ";CONFIG;" z_vcpkg_opencl_config)
|
||||
_find_package(${ARGS})
|
||||
if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static" AND (NOT CMAKE_SYSTEM_NAME MATCHES "Darwin"))
|
||||
if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static" AND (NOT CMAKE_SYSTEM_NAME MATCHES "Darwin") AND z_vcpkg_opencl_config EQUAL "-1")
|
||||
find_package(Threads REQUIRED)
|
||||
set(OpenCL_Extra_Libs ${CMAKE_DL_LIBS} ${CMAKE_THREAD_LIBS_INIT})
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||
list(APPEND OpenCL_Extra_Libs cfgmgr32)
|
||||
if($ENV{WindowsSDKVersion} MATCHES "^10")
|
||||
list(APPEND OpenCL_Extra_Libs OneCoreUAP)
|
||||
if("$ENV{WindowsSDKVersion}" MATCHES "^10")
|
||||
list(APPEND OpenCL_Extra_Libs OneCoreUAP)
|
||||
endif()
|
||||
endif()
|
||||
endif(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||
|
||||
if(TARGET OpenCL::OpenCL)
|
||||
set_property(TARGET OpenCL::OpenCL APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${OpenCL_Extra_Libs})
|
||||
|
|
@ -17,3 +18,4 @@ if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static" AND (NOT CMAKE_SYSTEM_NAME MATCHE
|
|||
endif()
|
||||
unset(OpenCL_Extra_Libs)
|
||||
endif()
|
||||
unset(z_vcpkg_opencl_config)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "opencl",
|
||||
"version-string": "v2023.02.06",
|
||||
"port-version": 2,
|
||||
"port-version": 3,
|
||||
"description": "C/C++ headers and ICD loader (Installable Client Driver) for OpenCL",
|
||||
"homepage": "https://github.com/KhronosGroup/OpenCL-Headers",
|
||||
"license": "Apache-2.0",
|
||||
|
|
|
|||
|
|
@ -6494,7 +6494,7 @@
|
|||
},
|
||||
"opencl": {
|
||||
"baseline": "v2023.02.06",
|
||||
"port-version": 2
|
||||
"port-version": 3
|
||||
},
|
||||
"opencolorio": {
|
||||
"baseline": "2.2.1",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "4e224177099db3e6f391e33fc250d7a8699d60b9",
|
||||
"version-string": "v2023.02.06",
|
||||
"port-version": 3
|
||||
},
|
||||
{
|
||||
"git-tree": "c55e82e4ec70906ec28b692d2625584025de4725",
|
||||
"version-string": "v2023.02.06",
|
||||
|
|
|
|||
Loading…
Reference in New Issue