diff options
author | sL1pKn07 | 2020-03-13 22:39:25 +0100 |
---|---|---|
committer | sL1pKn07 | 2020-03-13 22:39:25 +0100 |
commit | f69e34c10f90c650c27e635684a48dfc93583fa7 (patch) | |
tree | ac0461db276ad6c470aca0488bbf98f7cf3e239f | |
download | aur-f69e34c10f90c650c27e635684a48dfc93583fa7.tar.gz |
Initial commit
-rw-r--r-- | .SRCINFO | 25 | ||||
-rw-r--r-- | .gitignore | 5 | ||||
-rw-r--r-- | 66.diff | 311 | ||||
-rw-r--r-- | PKGBUILD | 56 |
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" +} |