From 88d9a3a3c023701f15f5c597cbe071d1fc4e9a7c Mon Sep 17 00:00:00 2001 From: Brice Videau Date: Mon, 10 Oct 2022 15:17:51 -0500 Subject: [PATCH 01/15] Added OpenCL.pc file. --- CMakeLists.txt | 8 ++++++++ OpenCL.pc.in | 8 ++++++++ 2 files changed, 16 insertions(+) create mode 100644 OpenCL.pc.in diff --git a/CMakeLists.txt b/CMakeLists.txt index c8d5e0e3..f8d1e718 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -211,3 +211,11 @@ install (TARGETS OpenCL RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) + +if (UNIX) + configure_file(OpenCL.pc.in OpenCL.pc @ONLY) + set(pkg_config_location ${CMAKE_INSTALL_LIBDIR}/pkgconfig) + install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/OpenCL.pc + DESTINATION ${pkg_config_location}) +endif() diff --git a/OpenCL.pc.in b/OpenCL.pc.in new file mode 100644 index 00000000..1a8360b9 --- /dev/null +++ b/OpenCL.pc.in @@ -0,0 +1,8 @@ +libdir=@CMAKE_INSTALL_FULL_LIBDIR@ +includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ + +Name: OpenCL +Description: Khronos OpenCL ICD Loader +Version: 3.0 +Libs: -L${libdir} -lOpenCL +Cflags: -I${includedir} From 276b2364c116ddb89c216723d6495f21a6c9381d Mon Sep 17 00:00:00 2001 From: Brice Videau Date: Tue, 11 Oct 2022 11:07:12 -0500 Subject: [PATCH 02/15] Updated pkg-config support to only be deacitvated when MSVC is used. Thanks @mmuetzel --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f8d1e718..968454a3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -212,7 +212,7 @@ install (TARGETS OpenCL ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) -if (UNIX) +if (NOT MSVC) configure_file(OpenCL.pc.in OpenCL.pc @ONLY) set(pkg_config_location ${CMAKE_INSTALL_LIBDIR}/pkgconfig) install( From f3ffcfe4f4a9eea5c43ab6eb02380b533473dc68 Mon Sep 17 00:00:00 2001 From: Brice Videau Date: Tue, 11 Oct 2022 11:30:26 -0500 Subject: [PATCH 03/15] Update OpenCL.pc.in MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Markus Mützel <65065102+mmuetzel@users.noreply.github.com> --- OpenCL.pc.in | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/OpenCL.pc.in b/OpenCL.pc.in index 1a8360b9..3b791752 100644 --- a/OpenCL.pc.in +++ b/OpenCL.pc.in @@ -1,5 +1,7 @@ -libdir=@CMAKE_INSTALL_FULL_LIBDIR@ -includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=${prefix} +libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ +includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ Name: OpenCL Description: Khronos OpenCL ICD Loader From 88d6914b94c006986ff2d0e38693a51f35b00499 Mon Sep 17 00:00:00 2001 From: Brice Videau Date: Thu, 13 Oct 2022 13:51:54 -0500 Subject: [PATCH 04/15] Add CI for pkg-config for Linux. --- .github/workflows/linux.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 32703836..36a606cc 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -132,6 +132,14 @@ jobs: cd $GITHUB_WORKSPACE/build/downstream/sdk ; $CTEST_EXE --output-on-failure + - name: Test pkg-config --clfags + shell: bash + run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" pkg-config OpenCL --cflags | grep -q "\-I$GITHUB_WORKSPACE/install/include" + + - name: Test pkg-config --libs + shell: bash + run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" pkg-config OpenCL --libs | grep -q "\-L$GITHUB_WORKSPACE/install/lib -lOpenCL" + @@ -266,3 +274,11 @@ jobs: cd $GITHUB_WORKSPACE/build/downstream/sdk; $CTEST_EXE --output-on-failure -C Release; $CTEST_EXE --output-on-failure -C Debug; + + - name: Test pkg-config --clfags + shell: bash + run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" pkg-config OpenCL --cflags | grep -q "\-I$GITHUB_WORKSPACE/install/include" + + - name: Test pkg-config --libs + shell: bash + run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" pkg-config OpenCL --libs | grep -q "\-L$GITHUB_WORKSPACE/install/lib -lOpenCL" From 34a595504392d1dc4231177a3781c7960ab0039e Mon Sep 17 00:00:00 2001 From: Brice Videau Date: Thu, 13 Oct 2022 17:17:39 -0500 Subject: [PATCH 05/15] Added CI for pkg-config for MacOS. --- .github/workflows/macos.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 4144a2bb..957cd997 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -93,4 +93,12 @@ jobs: if: matrix.GEN == 'Ninja Multi-Config' shell: bash run: | - cmake --build $GITHUB_WORKSPACE/build --config Release --target install \ No newline at end of file + cmake --build $GITHUB_WORKSPACE/build --config Release --target install + + - name: Test pkg-config --clfags + shell: bash + run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" pkg-config OpenCL --cflags | grep -q "\-I$GITHUB_WORKSPACE/install/include" + + - name: Test pkg-config --libs + shell: bash + run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" pkg-config OpenCL --libs | grep -q "\-L$GITHUB_WORKSPACE/install/lib -lOpenCL" From 47fcebb417a64535e91efb18176bcf3c8856cf0a Mon Sep 17 00:00:00 2001 From: Brice Videau Date: Thu, 13 Oct 2022 17:36:27 -0500 Subject: [PATCH 06/15] Fix typo. --- .github/workflows/linux.yml | 4 ++-- .github/workflows/macos.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 36a606cc..955750ef 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -132,7 +132,7 @@ jobs: cd $GITHUB_WORKSPACE/build/downstream/sdk ; $CTEST_EXE --output-on-failure - - name: Test pkg-config --clfags + - name: Test pkg-config --cflags shell: bash run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" pkg-config OpenCL --cflags | grep -q "\-I$GITHUB_WORKSPACE/install/include" @@ -275,7 +275,7 @@ jobs: $CTEST_EXE --output-on-failure -C Release; $CTEST_EXE --output-on-failure -C Debug; - - name: Test pkg-config --clfags + - name: Test pkg-config --cflags shell: bash run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" pkg-config OpenCL --cflags | grep -q "\-I$GITHUB_WORKSPACE/install/include" diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 957cd997..0b1b0adf 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -95,7 +95,7 @@ jobs: run: | cmake --build $GITHUB_WORKSPACE/build --config Release --target install - - name: Test pkg-config --clfags + - name: Test pkg-config --cflags shell: bash run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" pkg-config OpenCL --cflags | grep -q "\-I$GITHUB_WORKSPACE/install/include" From b7afcf468506307d8e7725372242d070798cd911 Mon Sep 17 00:00:00 2001 From: Brice Videau Date: Tue, 18 Oct 2022 10:56:19 -0700 Subject: [PATCH 07/15] Add consume pkg-config test for Linux. --- .github/workflows/linux.yml | 34 +++++++++++++++++++ test/pkgconfig/pkgconfig/CMakeLists.txt | 44 +++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 test/pkgconfig/pkgconfig/CMakeLists.txt diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 955750ef..83bb1e04 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -140,6 +140,22 @@ jobs: shell: bash run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" pkg-config OpenCL --libs | grep -q "\-L$GITHUB_WORKSPACE/install/lib -lOpenCL" + - name: Consume pkg-config + shell: bash + run: ln -s $GITHUB_WORKSPACE/external/OpenCL-Headers/install/include $GITHUB_WORKSPACE/install/include; + PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" $CMAKE_EXE + -G "${{matrix.GEN}}" + -D CMAKE_C_COMPILER=${{matrix.COMPILER}} + -D CMAKE_C_FLAGS="-Wall -Wextra -pedantic -m${{matrix.BIN}}" + -D CMAKE_C_STANDARD=${{matrix.STD}} + -D CMAKE_C_EXTENSIONS=${{matrix.EXT}} + -D DRIVER_STUB_PATH=$GITHUB_WORKSPACE/build/Release/libOpenCLDriverStub.so + -B$GITHUB_WORKSPACE/build/downstream/pkgconfig + -H$GITHUB_WORKSPACE/test/pkgconfig/pkgconfig ; + $CMAKE_EXE --build $GITHUB_WORKSPACE/build/downstream/pkgconfig ; + cd $GITHUB_WORKSPACE/build/downstream/pkgconfig ; + $CTEST_EXE --output-on-failure + @@ -282,3 +298,21 @@ jobs: - name: Test pkg-config --libs shell: bash run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" pkg-config OpenCL --libs | grep -q "\-L$GITHUB_WORKSPACE/install/lib -lOpenCL" + + - name: Consume pkg-config + shell: bash + run: ln -s $GITHUB_WORKSPACE/external/OpenCL-Headers/install/include $GITHUB_WORKSPACE/install/include; + PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" $CMAKE_EXE + -G "${{matrix.GEN}}" + -D CMAKE_C_COMPILER=${{matrix.COMPILER}} + -D CMAKE_C_FLAGS="-Wall -Wextra -pedantic -m${{matrix.BIN}}" + -D CMAKE_C_STANDARD=${{matrix.STD}} + -D CMAKE_C_EXTENSIONS=${{matrix.EXT}} + -D DRIVER_STUB_PATH=$GITHUB_WORKSPACE/build/Release/libOpenCLDriverStub.so + -B $GITHUB_WORKSPACE/build/downstream/pkgconfig + -S $GITHUB_WORKSPACE/test/pkgconfig/pkgconfig; + $CMAKE_EXE --build $GITHUB_WORKSPACE/build/downstream/pkgconfig --config Release; + $CMAKE_EXE --build $GITHUB_WORKSPACE/build/downstream/pkgconfig --config Debug; + cd $GITHUB_WORKSPACE/build/downstream/pkgconfig; + $CTEST_EXE --output-on-failure -C Release; + $CTEST_EXE --output-on-failure -C Debug; diff --git a/test/pkgconfig/pkgconfig/CMakeLists.txt b/test/pkgconfig/pkgconfig/CMakeLists.txt new file mode 100644 index 00000000..a4e440b8 --- /dev/null +++ b/test/pkgconfig/pkgconfig/CMakeLists.txt @@ -0,0 +1,44 @@ +cmake_minimum_required(VERSION 3.1) +find_package(PkgConfig REQUIRED) + +project(PkgConfigTest + LANGUAGES C +) + +pkg_check_modules(OPENCL REQUIRED OpenCL) + +add_executable(${PROJECT_NAME} + ../pkgconfig.c +) + +target_include_directories(${PROJECT_NAME} + PRIVATE + ${OPENCL_INCLUDE_DIRS} +) + +target_link_libraries(${PROJECT_NAME} + PRIVATE + ${OPENCL_LINK_LIBRARIES} +) + +target_compile_options(${PROJECT_NAME} + PRIVATE + ${OPENCL_CFLAGS_OTHER} +) + +target_compile_definitions(${PROJECT_NAME} + PRIVATE + CL_TARGET_OPENCL_VERSION=120 +) + +include(CTest) + +add_test( + NAME ${PROJECT_NAME} + COMMAND ${PROJECT_NAME} +) + +set_tests_properties(${PROJECT_NAME} + PROPERTIES + ENVIRONMENT "OCL_ICD_FILENAMES=${DRIVER_STUB_PATH}" +) From 72f8e04819046bdcc25aa5b6c394b27ee25cc71b Mon Sep 17 00:00:00 2001 From: Brice Videau Date: Tue, 18 Oct 2022 14:37:07 -0700 Subject: [PATCH 08/15] Attempt to fix old CMake (ugly...). --- test/pkgconfig/pkgconfig/CMakeLists.txt | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/test/pkgconfig/pkgconfig/CMakeLists.txt b/test/pkgconfig/pkgconfig/CMakeLists.txt index a4e440b8..efe13ea1 100644 --- a/test/pkgconfig/pkgconfig/CMakeLists.txt +++ b/test/pkgconfig/pkgconfig/CMakeLists.txt @@ -11,19 +11,14 @@ add_executable(${PROJECT_NAME} ../pkgconfig.c ) -target_include_directories(${PROJECT_NAME} - PRIVATE - ${OPENCL_INCLUDE_DIRS} -) - target_link_libraries(${PROJECT_NAME} PRIVATE - ${OPENCL_LINK_LIBRARIES} + ${OPENCL_LDFLAGS} ) target_compile_options(${PROJECT_NAME} PRIVATE - ${OPENCL_CFLAGS_OTHER} + ${OPENCL_CFLAGS} ) target_compile_definitions(${PROJECT_NAME} From a30ba05acafbbad97be0ddac23ac1d1438fecc51 Mon Sep 17 00:00:00 2001 From: Brice Videau Date: Tue, 18 Oct 2022 14:41:34 -0700 Subject: [PATCH 09/15] Revert "Attempt to fix old CMake (ugly...)." This reverts commit 72f8e04819046bdcc25aa5b6c394b27ee25cc71b. --- test/pkgconfig/pkgconfig/CMakeLists.txt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/test/pkgconfig/pkgconfig/CMakeLists.txt b/test/pkgconfig/pkgconfig/CMakeLists.txt index efe13ea1..a4e440b8 100644 --- a/test/pkgconfig/pkgconfig/CMakeLists.txt +++ b/test/pkgconfig/pkgconfig/CMakeLists.txt @@ -11,14 +11,19 @@ add_executable(${PROJECT_NAME} ../pkgconfig.c ) +target_include_directories(${PROJECT_NAME} + PRIVATE + ${OPENCL_INCLUDE_DIRS} +) + target_link_libraries(${PROJECT_NAME} PRIVATE - ${OPENCL_LDFLAGS} + ${OPENCL_LINK_LIBRARIES} ) target_compile_options(${PROJECT_NAME} PRIVATE - ${OPENCL_CFLAGS} + ${OPENCL_CFLAGS_OTHER} ) target_compile_definitions(${PROJECT_NAME} From 2df9bf00d0d9bf4fbd5adcc3e5781c57f23ed7c5 Mon Sep 17 00:00:00 2001 From: Brice Videau Date: Tue, 18 Oct 2022 15:29:23 -0700 Subject: [PATCH 10/15] Attempt fix. --- .github/workflows/linux.yml | 2 +- test/pkgconfig/pkgconfig/CMakeLists.txt | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 83bb1e04..c3d26266 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -149,7 +149,7 @@ jobs: -D CMAKE_C_FLAGS="-Wall -Wextra -pedantic -m${{matrix.BIN}}" -D CMAKE_C_STANDARD=${{matrix.STD}} -D CMAKE_C_EXTENSIONS=${{matrix.EXT}} - -D DRIVER_STUB_PATH=$GITHUB_WORKSPACE/build/Release/libOpenCLDriverStub.so + -D DRIVER_STUB_PATH=$GITHUB_WORKSPACE/build/libOpenCLDriverStub.so -B$GITHUB_WORKSPACE/build/downstream/pkgconfig -H$GITHUB_WORKSPACE/test/pkgconfig/pkgconfig ; $CMAKE_EXE --build $GITHUB_WORKSPACE/build/downstream/pkgconfig ; diff --git a/test/pkgconfig/pkgconfig/CMakeLists.txt b/test/pkgconfig/pkgconfig/CMakeLists.txt index a4e440b8..cffce75d 100644 --- a/test/pkgconfig/pkgconfig/CMakeLists.txt +++ b/test/pkgconfig/pkgconfig/CMakeLists.txt @@ -7,6 +7,10 @@ project(PkgConfigTest pkg_check_modules(OPENCL REQUIRED OpenCL) +if(CMAKE_VERSION VERSION_LESS 3.12) + link_directories("${OPENCL_LIBRARY_DIRS}") +endif() + add_executable(${PROJECT_NAME} ../pkgconfig.c ) @@ -16,10 +20,17 @@ target_include_directories(${PROJECT_NAME} ${OPENCL_INCLUDE_DIRS} ) +if(CMAKE_VERSION VERSION_LESS 3.12) +target_link_libraries(${PROJECT_NAME} + PRIVATE + ${OPENCL_LIBRARIES} +) +else() target_link_libraries(${PROJECT_NAME} PRIVATE ${OPENCL_LINK_LIBRARIES} ) +endif() target_compile_options(${PROJECT_NAME} PRIVATE From d6483fb3e189d6dfcc16396583720503619d88e6 Mon Sep 17 00:00:00 2001 From: Brice Videau Date: Tue, 18 Oct 2022 15:56:41 -0700 Subject: [PATCH 11/15] Attempt MacOS. --- .github/workflows/macos.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 0b1b0adf..9d47f76a 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -102,3 +102,21 @@ jobs: - name: Test pkg-config --libs shell: bash run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" pkg-config OpenCL --libs | grep -q "\-L$GITHUB_WORKSPACE/install/lib -lOpenCL" + + - name: Consume pkg-config + shell: bash + run: ln -s $GITHUB_WORKSPACE/external/OpenCL-Headers/install/include $GITHUB_WORKSPACE/install/include; + PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" cmake + -G "${{matrix.GEN}}" + -D CMAKE_C_FLAGS="-Wall -Wextra -pedantic -Wno-format" + -D CMAKE_C_COMPILER=/usr/local/bin/gcc-${{matrix.VER}} + -D CMAKE_C_STANDARD=${{matrix.STD}} + -D CMAKE_C_EXTENSIONS=${{matrix.EXT}} + -D DRIVER_STUB_PATH=$GITHUB_WORKSPACE/build/Release/libOpenCLDriverStub.dylib + -B $GITHUB_WORKSPACE/build/downstream/pkgconfig + -S $GITHUB_WORKSPACE/test/pkgconfig/pkgconfig; + cmake --build $GITHUB_WORKSPACE/build/downstream/pkgconfig --config Release; + cmake --build $GITHUB_WORKSPACE/build/downstream/pkgconfig --config Debug; + cd $GITHUB_WORKSPACE/build/downstream/pkgconfig; + ctest --output-on-failure -C Release + ctest --output-on-failure -C Debug From 344484cf4f74d04c13d2db24ae3e1dfe1b3bf0b6 Mon Sep 17 00:00:00 2001 From: Brice Videau Date: Tue, 29 Nov 2022 18:42:14 -0600 Subject: [PATCH 12/15] Add hopefully correct pkg-config / CMake integration. --- CMakeLists.txt | 6 ++++++ OpenCL.pc.in | 4 ++-- cmake/JoinPaths.cmake | 26 ++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 cmake/JoinPaths.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 968454a3..a0212a4c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -53,6 +53,9 @@ endif() # and to study the performance impact. option (ENABLE_OPENCL_LAYERS "Enable OpenCL Layers" ON) +set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake") +include(JoinPaths) + include(CheckFunctionExists) check_function_exists(secure_getenv HAVE_SECURE_GETENV) check_function_exists(__secure_getenv HAVE___SECURE_GETENV) @@ -212,6 +215,9 @@ install (TARGETS OpenCL ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) +join_paths(OPENCL_LIBDIR_PC "\${exec_prefix}" "${CMAKE_INSTALL_LIBDIR}") +join_paths(OPENCL_INCLUDEDIR_PC "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}") + if (NOT MSVC) configure_file(OpenCL.pc.in OpenCL.pc @ONLY) set(pkg_config_location ${CMAKE_INSTALL_LIBDIR}/pkgconfig) diff --git a/OpenCL.pc.in b/OpenCL.pc.in index 3b791752..1b26f15c 100644 --- a/OpenCL.pc.in +++ b/OpenCL.pc.in @@ -1,7 +1,7 @@ prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=${prefix} -libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ -includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ +libdir=@OPENCL_LIBDIR_PC@ +includedir=@OPENCL_INCLUDEDIR_PC@ Name: OpenCL Description: Khronos OpenCL ICD Loader diff --git a/cmake/JoinPaths.cmake b/cmake/JoinPaths.cmake new file mode 100644 index 00000000..32d6d668 --- /dev/null +++ b/cmake/JoinPaths.cmake @@ -0,0 +1,26 @@ +# This module provides function for joining paths +# known from from most languages +# +# Original license: +# SPDX-License-Identifier: (MIT OR CC0-1.0) +# Explicit permission given to distribute this module under +# the terms of the project as described in /LICENSE.rst. +# Copyright 2020 Jan Tojnar +# https://github.com/jtojnar/cmake-snips +# +# Modelled after Python’s os.path.join +# https://docs.python.org/3.7/library/os.path.html#os.path.join +# Windows not supported +function(join_paths joined_path first_path_segment) + set(temp_path "${first_path_segment}") + foreach(current_segment IN LISTS ARGN) + if(NOT ("${current_segment}" STREQUAL "")) + if(IS_ABSOLUTE "${current_segment}") + set(temp_path "${current_segment}") + else() + set(temp_path "${temp_path}/${current_segment}") + endif() + endif() + endforeach() + set(${joined_path} "${temp_path}" PARENT_SCOPE) +endfunction() From 566354fa455035de1c55d6bd3452a95f8ce53ecf Mon Sep 17 00:00:00 2001 From: Brice Videau Date: Mon, 9 Jan 2023 22:55:08 -0600 Subject: [PATCH 13/15] Update OpenCL.pc.in --- OpenCL.pc.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenCL.pc.in b/OpenCL.pc.in index 1b26f15c..f529b719 100644 --- a/OpenCL.pc.in +++ b/OpenCL.pc.in @@ -1,10 +1,10 @@ prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=${prefix} libdir=@OPENCL_LIBDIR_PC@ -includedir=@OPENCL_INCLUDEDIR_PC@ Name: OpenCL Description: Khronos OpenCL ICD Loader +Requires: OpenCL-Headers Version: 3.0 Libs: -L${libdir} -lOpenCL Cflags: -I${includedir} From fdc82eab9598a4091c8d84e5f0dceb73eccca303 Mon Sep 17 00:00:00 2001 From: Brice Videau Date: Mon, 9 Jan 2023 23:03:46 -0600 Subject: [PATCH 14/15] Update OpenCL.pc.in --- OpenCL.pc.in | 1 - 1 file changed, 1 deletion(-) diff --git a/OpenCL.pc.in b/OpenCL.pc.in index f529b719..1b6730c9 100644 --- a/OpenCL.pc.in +++ b/OpenCL.pc.in @@ -7,4 +7,3 @@ Description: Khronos OpenCL ICD Loader Requires: OpenCL-Headers Version: 3.0 Libs: -L${libdir} -lOpenCL -Cflags: -I${includedir} From 3b1b58abd98e864344bd378e262a0761a8ccb77e Mon Sep 17 00:00:00 2001 From: Brice Videau Date: Mon, 9 Jan 2023 23:24:12 -0600 Subject: [PATCH 15/15] Add Headers to PKG_CONFIG_PATH and remove symlink to headers. --- .github/workflows/linux.yml | 14 ++++++-------- .github/workflows/macos.yml | 7 +++---- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index c3d26266..9f82f58e 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -134,16 +134,15 @@ jobs: - name: Test pkg-config --cflags shell: bash - run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" pkg-config OpenCL --cflags | grep -q "\-I$GITHUB_WORKSPACE/install/include" + run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig:$GITHUB_WORKSPACE/external/OpenCL-Headers/install/lib/pkgconfig" pkg-config OpenCL --cflags | grep -q "\-I$GITHUB_WORKSPACE/external/OpenCL-Headers/install/include" - name: Test pkg-config --libs shell: bash - run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" pkg-config OpenCL --libs | grep -q "\-L$GITHUB_WORKSPACE/install/lib -lOpenCL" + run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig:$GITHUB_WORKSPACE/external/OpenCL-Headers/install/lib/pkgconfig" pkg-config OpenCL --libs | grep -q "\-L$GITHUB_WORKSPACE/install/lib -lOpenCL" - name: Consume pkg-config shell: bash - run: ln -s $GITHUB_WORKSPACE/external/OpenCL-Headers/install/include $GITHUB_WORKSPACE/install/include; - PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" $CMAKE_EXE + run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig:$GITHUB_WORKSPACE/external/OpenCL-Headers/install/lib/pkgconfig" $CMAKE_EXE -G "${{matrix.GEN}}" -D CMAKE_C_COMPILER=${{matrix.COMPILER}} -D CMAKE_C_FLAGS="-Wall -Wextra -pedantic -m${{matrix.BIN}}" @@ -293,16 +292,15 @@ jobs: - name: Test pkg-config --cflags shell: bash - run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" pkg-config OpenCL --cflags | grep -q "\-I$GITHUB_WORKSPACE/install/include" + run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig:$GITHUB_WORKSPACE/external/OpenCL-Headers/install/lib/pkgconfig" pkg-config OpenCL --cflags | grep -q "\-I$GITHUB_WORKSPACE/external/OpenCL-Headers/install/include" - name: Test pkg-config --libs shell: bash - run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" pkg-config OpenCL --libs | grep -q "\-L$GITHUB_WORKSPACE/install/lib -lOpenCL" + run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig:$GITHUB_WORKSPACE/external/OpenCL-Headers/install/lib/pkgconfig" pkg-config OpenCL --libs | grep -q "\-L$GITHUB_WORKSPACE/install/lib -lOpenCL" - name: Consume pkg-config shell: bash - run: ln -s $GITHUB_WORKSPACE/external/OpenCL-Headers/install/include $GITHUB_WORKSPACE/install/include; - PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" $CMAKE_EXE + run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig:$GITHUB_WORKSPACE/external/OpenCL-Headers/install/lib/pkgconfig" $CMAKE_EXE -G "${{matrix.GEN}}" -D CMAKE_C_COMPILER=${{matrix.COMPILER}} -D CMAKE_C_FLAGS="-Wall -Wextra -pedantic -m${{matrix.BIN}}" diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 9d47f76a..50fe1032 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -97,16 +97,15 @@ jobs: - name: Test pkg-config --cflags shell: bash - run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" pkg-config OpenCL --cflags | grep -q "\-I$GITHUB_WORKSPACE/install/include" + run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig:$GITHUB_WORKSPACE/external/OpenCL-Headers/install/lib/pkgconfig" pkg-config OpenCL --cflags | grep -q "\-I$GITHUB_WORKSPACE/external/OpenCL-Headers/install/include" - name: Test pkg-config --libs shell: bash - run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" pkg-config OpenCL --libs | grep -q "\-L$GITHUB_WORKSPACE/install/lib -lOpenCL" + run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig:$GITHUB_WORKSPACE/external/OpenCL-Headers/install/lib/pkgconfig" pkg-config OpenCL --libs | grep -q "\-L$GITHUB_WORKSPACE/install/lib -lOpenCL" - name: Consume pkg-config shell: bash - run: ln -s $GITHUB_WORKSPACE/external/OpenCL-Headers/install/include $GITHUB_WORKSPACE/install/include; - PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig" cmake + run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/lib/pkgconfig:$GITHUB_WORKSPACE/external/OpenCL-Headers/install/lib/pkgconfig" cmake -G "${{matrix.GEN}}" -D CMAKE_C_FLAGS="-Wall -Wextra -pedantic -Wno-format" -D CMAKE_C_COMPILER=/usr/local/bin/gcc-${{matrix.VER}}