summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorsL1pKn072020-03-13 22:39:25 +0100
committersL1pKn072020-03-13 22:39:25 +0100
commitf69e34c10f90c650c27e635684a48dfc93583fa7 (patch)
treeac0461db276ad6c470aca0488bbf98f7cf3e239f
downloadaur-f69e34c10f90c650c27e635684a48dfc93583fa7.tar.gz
Initial commit
-rw-r--r--.SRCINFO25
-rw-r--r--.gitignore5
-rw-r--r--66.diff311
-rw-r--r--PKGBUILD56
4 files changed, 397 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..2221e3604eb9
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,25 @@
+pkgbase = khronos-ocl-icd-git
+ pkgdesc = Khronos Group OpenCL 1.2 installable client driver (ICD) loader
+ pkgver = v2020.03.13.0.gc7fda8b
+ pkgrel = 1
+ url = http://www.khronos.org/registry/cl
+ arch = x86_64
+ license = custom:Khronos
+ makedepends = git
+ makedepends = cmake
+ makedepends = mesa
+ makedepends = opencl-headers-git
+ depends = glibc
+ provides = libcl
+ provides = opencl-icd-loader
+ provides = ocl-icd
+ conflicts = libcl
+ conflicts = opencl-icd-loader
+ conflicts = ocl-icd
+ source = ocl::git+https://github.com/KhronosGroup/OpenCL-ICD-Loader.git
+ source = 66.diff
+ sha256sums = SKIP
+ sha256sums = eeff2a8cb94d3ce7a5cc6e4440c28e6ea8359201d8fa8dcdbc1c28cea6f39045
+
+pkgname = khronos-ocl-icd-git
+
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..cb1e74b2bd63
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+*
+!.gitignore
+!.SRCINFO
+!PKGBUILD
+!66.diff
diff --git a/66.diff b/66.diff
new file mode 100644
index 000000000000..3f6c12550b09
--- /dev/null
+++ b/66.diff
@@ -0,0 +1,311 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4bafa86..091c695 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,8 +1,6 @@
+-cmake_minimum_required (VERSION 2.8.11)
+-
+-project (OPENCL_ICD_LOADER)
++cmake_minimum_required (VERSION 3.1)
++project (OPENCL_ICD_LOADER VERSION 1.2 LANGUAGES C)
+ include (GNUInstallDirs)
+-find_package (Threads REQUIRED)
+
+ # The option below allows building the ICD Loader library as a shared library
+ # (ON, default) or a static library (OFF).
+@@ -40,99 +40,52 @@ check_function_exists(__secure_getenv HAVE___SECURE_GETENV)
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/loader/icd_cmake_config.h.in
+ ${CMAKE_CURRENT_BINARY_DIR}/icd_cmake_config.h)
+
+-set (OPENCL_ICD_LOADER_SOURCES
+- loader/icd.c
+- loader/icd.h
+- loader/icd_dispatch.c
+- loader/icd_dispatch.h
+- loader/icd_envvars.h
+- loader/icd_platform.h)
+-
+-if (WIN32)
+- list (APPEND OPENCL_ICD_LOADER_SOURCES
+- loader/windows/icd_windows.c
+- loader/windows/icd_windows.h
+- loader/windows/icd_windows_dxgk.c
+- loader/windows/icd_windows_dxgk.h
+- loader/windows/icd_windows_envvars.c
+- loader/windows/icd_windows_hkr.c
+- loader/windows/icd_windows_hkr.h
+- loader/windows/OpenCL.def
+- loader/windows/OpenCL.rc)
+- # Only add the DXSDK include directory if the environment variable is
+- # defined. Since the DXSDK has merged into the Windows SDK, this is
+- # only required in rare cases.
+- if (DEFINED ENV{DXSDK_DIR} AND NOT (MINGW OR MSYS OR CYGWIN))
+- include_directories ($ENV{DXSDK_DIR}/Include)
+- endif ()
+-else ()
+- list (APPEND OPENCL_ICD_LOADER_SOURCES
+- loader/linux/icd_linux.c
+- loader/linux/icd_linux_envvars.c
+- loader/linux/icd_exports.map)
+-endif ()
+-
++set (CMAKE_C_STANDARD 99)
++set (CMAKE_C_STANDARD_REQUIRED ON)
++set (CMAKE_C_EXTENSIONS OFF)
+ set (OPENCL_ICD_LOADER_HEADERS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/inc CACHE PATH "Path to OpenCL Headers")
+
+-add_library (OpenCL ${OPENCL_ICD_LOADER_SOURCES})
+-set_target_properties (OpenCL PROPERTIES VERSION "1.2" SOVERSION "1")
+-
+-if (WIN32)
+- target_link_libraries (OpenCL cfgmgr32.lib)
+-
+- option (OPENCL_ICD_LOADER_REQUIRE_WDK "Build with D3DKMT support, which requires the Windows WDK." ON)
+- if (OPENCL_ICD_LOADER_REQUIRE_WDK)
+- if(DEFINED ENV{WDKContentRoot})
+- file(GLOB D3DKMT_HEADER "$ENV{WDKContentRoot}/Include/*/km/d3dkmthk.h")
+- else()
+- file(GLOB D3DKMT_HEADER "$ENV{HOMEDRIVE}/Program Files */Windows Kits/10/Include/*/km/d3dkmthk.h")
+- endif()
+-
+- if(D3DKMT_HEADER)
+- list(GET D3DKMT_HEADER -1 LATEST_D3DKMT_HEADER)
+- get_filename_component(WDK_DIRECTORY ${LATEST_D3DKMT_HEADER} DIRECTORY)
+- get_filename_component(WDK_DIRECTORY ${WDK_DIRECTORY} DIRECTORY)
+- message(STATUS "Found the Windows WDK in: ${WDK_DIRECTORY}")
+- target_compile_definitions(OpenCL PRIVATE OPENCL_ICD_LOADER_REQUIRE_WDK)
+- target_include_directories(OpenCL PRIVATE ${WDK_DIRECTORY}/um)
+- target_include_directories(OpenCL PRIVATE ${WDK_DIRECTORY}/km)
+- target_include_directories(OpenCL PRIVATE ${WDK_DIRECTORY}/shared)
+- else()
+- message(FATAL_ERROR "The Windows WDK was not found. Consider disabling OPENCL_ICD_LOADER_REQUIRE_WDK. Aborting.")
+- endif()
+- endif()
+-
+- if(NOT USE_DYNAMIC_VCXX_RUNTIME)
+- string(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
+- string(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
+- string(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL}")
+- string(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL}")
+- string(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
+- string(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
+- string(REPLACE "/MDd" "/MTd" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
+- string(REPLACE "/MDd" "/MTd" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
+- endif()
+-else()
+- if (APPLE)
+- target_link_libraries (OpenCL ${CMAKE_THREAD_LIBS_INIT})
+- else ()
+- set_target_properties (OpenCL PROPERTIES LINK_FLAGS "-Wl,--version-script -Wl,${CMAKE_CURRENT_SOURCE_DIR}/loader/linux/icd_exports.map")
+- target_link_libraries (OpenCL ${CMAKE_THREAD_LIBS_INIT})
+- endif ()
++if (WIN32 AND NOT USE_DYNAMIC_VCXX_RUNTIME)
++ string(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
++ string(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
++ string(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL}")
++ string(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL}")
++ string(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
++ string(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
++ string(REPLACE "/MDd" "/MTd" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
++ string(REPLACE "/MDd" "/MTd" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
+ endif ()
+
+-include_directories (${OPENCL_ICD_LOADER_HEADERS_DIR})
+-add_definitions (-DCL_TARGET_OPENCL_VERSION=220)
+-
+-target_include_directories (OpenCL PRIVATE ${CMAKE_CURRENT_BINARY_DIR} loader)
+-target_link_libraries (OpenCL ${CMAKE_DL_LIBS})
++add_subdirectory (loader)
+
+ include (CTest)
+ if (BUILD_TESTING)
+ add_subdirectory (test)
+ endif()
+
+-install (TARGETS OpenCL
+- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
++export(EXPORT OpenCLTargets
++ FILE "${PROJECT_BINARY_DIR}/OpenCL/OpenCLTargets.cmake"
++ NAMESPACE OpenCL::)
++configure_file(cmake/OpenCLConfig.cmake
++ "${PROJECT_BINARY_DIR}/OpenCL/OpenCLConfig.cmake"
++ COPYONLY)
++
++set(config_package_location lib/cmake/OpenCL)
++install(EXPORT OpenCLTargets
++ FILE OpenCLTargets.cmake
++ NAMESPACE OpenCL::
++ DESTINATION ${config_package_location})
++install(
++ FILES ${CMAKE_CURRENT_BINARY_DIR}/OpenCL/OpenCLConfig.cmake
++ DESTINATION ${config_package_location}
++ COMPONENT Devel)
++
++include(CMakePackageConfigHelpers)
++write_basic_package_version_file(
++ "${CMAKE_CURRENT_BINARY_DIR}/OpenCL/OpenCLConfigVersion.cmake"
++ VERSION ${PROJECT_VERSION}
++ COMPATIBILITY AnyNewerVersion)
++install(
++ FILES "${CMAKE_CURRENT_BINARY_DIR}/OpenCL/OpenCLConfigVersion.cmake"
++ DESTINATION ${config_package_location}
++ COMPONENT Devel)
+
+diff --git a/cmake/OpenCLConfig.cmake b/cmake/OpenCLConfig.cmake
+new file mode 100644
+index 0000000..0a4e4a7
+--- /dev/null
++++ b/cmake/OpenCLConfig.cmake
+@@ -0,0 +1,7 @@
++list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/Modules")
++
++include(CMakeFindDependencyMacro)
++find_dependency(Threads REQUIRED)
++find_dependency(OpenCLHeaders REQUIRED)
++
++include("${CMAKE_CURRENT_LIST_DIR}/OpenCLTargets.cmake")
+diff --git a/loader/CMakeLists.txt b/loader/CMakeLists.txt
+new file mode 100644
+index 0000000..10e0b96
+--- /dev/null
++++ b/loader/CMakeLists.txt
+@@ -0,0 +1,38 @@
++find_package (Threads REQUIRED)
++find_package (OpenCLHeaders REQUIRED)
++
++add_library(OpenCL
++ icd.h icd.c
++ icd_dispatch.h icd_dispatch.c
++)
++
++set_target_properties(OpenCL PROPERTIES
++ SOVERSION ${PROJECT_VERSION_MAJOR}
++ VERSION ${PROJECT_VERSION}
++)
++
++target_link_libraries(OpenCL
++ PUBLIC Threads::Threads OpenCL::OpenCLHeaders ${CMAKE_DL_LIBS})
++target_compile_definitions(OpenCL PRIVATE CL_TARGET_OPENCL_VERSION=220)
++
++if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
++ add_subdirectory(windows)
++elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
++ add_subdirectory(linux)
++endif()
++
++install (TARGETS OpenCL EXPORT OpenCLTargets
++ RUNTIME DESTINATION bin
++ ARCHIVE DESTINATION lib
++ LIBRARY DESTINATION lib)
++
++if (UNIX)
++ configure_file(
++ ${CMAKE_CURRENT_SOURCE_DIR}/OpenCL.pc.in
++ ${CMAKE_CURRENT_BINARY_DIR}/OpenCL.pc.configured
++ @ONLY)
++ file(GENERATE
++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/OpenCL.pc
++ INPUT ${CMAKE_CURRENT_BINARY_DIR}/OpenCL.pc.configured)
++ install (FILES ${CMAKE_CURRENT_BINARY_DIR}/OpenCL.pc DESTINATION lib/pkgconfig)
++endif()
+\ No newline at end of file
+diff --git a/loader/OpenCL.pc.in b/loader/OpenCL.pc.in
+new file mode 100644
+index 0000000..b4e94d9
+--- /dev/null
++++ b/loader/OpenCL.pc.in
+@@ -0,0 +1,10 @@
++prefix=@CMAKE_INSTALL_PREFIX@
++exec_prefix=${prefix}
++libdir=${exec_prefix}/lib
++includedir=$<TARGET_PROPERTY:OpenCL::OpenCLHeaders,INTERFACE_INCLUDE_DIRECTORIES>
++
++Name: OpenCL
++Description: OpenCL Installable Client Driver Loader
++Version: @PROJECT_VERSION@
++Libs: ${libdir}/$<TARGET_LINKER_FILE_NAME:OpenCL> @CMAKE_THREAD_LIBS_INIT@ -l@CMAKE_DL_LIBS@
++Cflags: -I$<JOIN:$<TARGET_PROPERTY:OpenCL,INTERFACE_INCLUDE_DIRECTORIES>, -I>
+diff --git a/loader/linux/CMakeLists.txt b/loader/linux/CMakeLists.txt
+new file mode 100644
+index 0000000..e4ef0cd
+--- /dev/null
++++ b/loader/linux/CMakeLists.txt
+@@ -0,0 +1,12 @@
++target_sources(OpenCL PRIVATE
++ linux/icd_linux.c
++ linux/icd_exports.map
++)
++
++target_compile_definitions(OpenCL PRIVATE _DEFAULT_SOURCE)
++set_property(TARGET OpenCL APPEND PROPERTY
++ LINK_FLAGS -Wl,--version-script="${CMAKE_CURRENT_SOURCE_DIR}/icd_exports.map"
++)
++set_property(TARGET OpenCL APPEND PROPERTY
++ LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/icd_exports.map"
++)
+\ No newline at end of file
+diff --git a/loader/linux/icd_linux.c b/loader/linux/icd_linux.c
+index f6bb7b6..c87dadc 100644
+--- a/loader/linux/icd_linux.c
++++ b/loader/linux/icd_linux.c
+@@ -16,8 +16,8 @@
+ * OpenCL is a trademark of Apple Inc. used under license by Khronos.
+ */
+
+-#include "icd.h"
+-#include "icd_envvars.h"
++#include "../icd.h"
++#include "../icd_envvars.h"
+
+ #include <dlfcn.h>
+ #include <stdio.h>
+diff --git a/loader/windows/CMakeLists.txt b/loader/windows/CMakeLists.txt
+new file mode 100644
+index 0000000..754cc39
+--- /dev/null
++++ b/loader/windows/CMakeLists.txt
+@@ -0,0 +1,15 @@
++target_sources(OpenCL PRIVATE
++ windows/icd_windows.c
++ windows/icd_windows_hkr.c
++ windows/OpenCL.def
++ windows/OpenCL.rc
++)
++
++# Only add the DXSDK include directory if the environment variable is
++# defined. Since the DXSDK has merged into the Windows SDK, this is
++# only required in rare cases.
++if (DEFINED ENV{DXSDK_DIR} AND NOT (MINGW OR MSYS OR CYGWIN))
++ target_include_directories(OpenCL PRIVATE $ENV{DXSDK_DIR}/Include)
++endif ()
++
++target_link_libraries(OpenCL PUBLIC cfgmgr32)
+\ No newline at end of file
+diff --git a/loader/windows/icd_windows.c b/loader/windows/icd_windows.c
+index 5f89085..cba2cb8 100644
+--- a/loader/windows/icd_windows.c
++++ b/loader/windows/icd_windows.c
+@@ -16,7 +16,7 @@
+ * OpenCL is a trademark of Apple Inc. used under license by Khronos.
+ */
+
+-#include "icd.h"
++#include "../icd.h"
+ #include "icd_windows.h"
+ #include "icd_windows_hkr.h"
+ #include "icd_windows_dxgk.h"
+diff --git a/loader/windows/icd_windows_hkr.c b/loader/windows/icd_windows_hkr.c
+index 6003f2c..0bdf790 100644
+--- a/loader/windows/icd_windows_hkr.c
++++ b/loader/windows/icd_windows_hkr.c
+@@ -16,7 +16,7 @@
+ * OpenCL is a trademark of Apple Inc. used under license by Khronos.
+ */
+
+-#include "icd.h"
++#include "../icd.h"
+ #include "icd_windows_hkr.h"
+ #include <windows.h>
+ #include "icd_windows_dxgk.h"
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..7a7973524457
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,56 @@
+
+pkgname=khronos-ocl-icd-git
+pkgver=v2020.03.13.0.gc7fda8b
+pkgrel=1
+pkgdesc="Khronos Group OpenCL 1.2 installable client driver (ICD) loader"
+arch=('x86_64')
+url="http://www.khronos.org/registry/cl"
+license=('custom:Khronos')
+makedepends=('git'
+ 'cmake'
+ 'mesa'
+ 'opencl-headers-git'
+ )
+depends=('glibc')
+provides=('libcl'
+ 'opencl-icd-loader'
+ 'ocl-icd'
+ )
+conflicts=('libcl'
+ 'opencl-icd-loader'
+ 'ocl-icd'
+ )
+source=('ocl::git+https://github.com/KhronosGroup/OpenCL-ICD-Loader.git'
+ '66.diff'
+# 'https://patch-diff.githubusercontent.com/raw/KhronosGroup/OpenCL-ICD-Loader/pull/66.diff'
+ )
+sha256sums=('SKIP'
+ 'eeff2a8cb94d3ce7a5cc6e4440c28e6ea8359201d8fa8dcdbc1c28cea6f39045'
+# 'c8001f51719e0d12d2f9c7f1c760a35d0920e81d05f119da813e0fb2be07f10a'
+ )
+
+pkgver() {
+ cd ocl
+ echo "$(git describe --long --tags | tr - .)"
+}
+
+prepare() {
+ mkdir -p build
+ patch -d ocl -p1 -i "${srcdir}/66.diff"
+}
+
+build() {
+ cd build
+ cmake ../ocl \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_TESTING=OFF
+
+ make
+}
+
+package() {
+ make -C build DESTDIR="${pkgdir}" install
+
+ install -Dm644 ocl/LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}