diff mbox series

[1/2] package/opencl-clhpp: new package

Message ID 20220116175320.453041-1-gilles.talis@gmail.com
State Accepted
Headers show
Series [1/2] package/opencl-clhpp: new package | expand

Commit Message

Gilles Talis Jan. 16, 2022, 5:53 p.m. UTC
opencl-clhpp are the OpenCL API C++ bindings

Signed-off-by: Gilles Talis <gilles.talis@gmail.com>
---
 DEVELOPERS                             |  1 +
 package/Config.in                      |  1 +
 package/opencl-clhpp/Config.in         | 10 ++++++++++
 package/opencl-clhpp/opencl-clhpp.hash |  3 +++
 package/opencl-clhpp/opencl-clhpp.mk   | 16 ++++++++++++++++
 5 files changed, 31 insertions(+)
 create mode 100644 package/opencl-clhpp/Config.in
 create mode 100644 package/opencl-clhpp/opencl-clhpp.hash
 create mode 100644 package/opencl-clhpp/opencl-clhpp.mk

Comments

Romain Naour July 26, 2022, 8:39 p.m. UTC | #1
Hello Gilles,

Le 16/01/2022 à 18:53, Gilles Talis a écrit :
> opencl-clhpp are the OpenCL API C++ bindings
> 
> Signed-off-by: Gilles Talis <gilles.talis@gmail.com>
> ---
>  DEVELOPERS                             |  1 +
>  package/Config.in                      |  1 +
>  package/opencl-clhpp/Config.in         | 10 ++++++++++
>  package/opencl-clhpp/opencl-clhpp.hash |  3 +++
>  package/opencl-clhpp/opencl-clhpp.mk   | 16 ++++++++++++++++
>  5 files changed, 31 insertions(+)
>  create mode 100644 package/opencl-clhpp/Config.in
>  create mode 100644 package/opencl-clhpp/opencl-clhpp.hash
>  create mode 100644 package/opencl-clhpp/opencl-clhpp.mk
> 
> diff --git a/DEVELOPERS b/DEVELOPERS
> index a91e2dfcde..483afa4932 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -1084,6 +1084,7 @@ F:	package/libeXosip2/
>  F:	package/libolm/
>  F:	package/libosip2/
>  F:	package/ocrad/
> +F:	package/opencl-clhpp/
>  F:	package/opusfile/
>  F:	package/restclient-cpp/
>  F:	package/tesseract-ocr/
> diff --git a/package/Config.in b/package/Config.in
> index 4df1474b91..08eb3ad809 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1564,6 +1564,7 @@ menu "Graphics"
>  	source "package/libvips/Config.in"
>  	source "package/libwpe/Config.in"
>  	source "package/menu-cache/Config.in"
> +	source "package/opencl-clhpp/Config.in"

Is opencl headers should really belong to "Graphics" library menu?

maybe "Hardware handling" or in last resort "other"?

>  	source "package/opencv3/Config.in"
>  	source "package/opencv4/Config.in"
>  	source "package/opengl/Config.in"
> diff --git a/package/opencl-clhpp/Config.in b/package/opencl-clhpp/Config.in
> new file mode 100644
> index 0000000000..12045be055
> --- /dev/null
> +++ b/package/opencl-clhpp/Config.in
> @@ -0,0 +1,10 @@
> +config BR2_PACKAGE_OPENCL_CLHPP
> +	bool "opencl-clhpp"
> +	depends on BR2_INSTALL_LIBSTDCPP

The CMake build system requires a C++11 compiler, so a gcc 4.8 or newer is required.


> +	help
> +	  opencl-clhpp are the OpenCL API C++ bindings
> +
> +	  http://github.khronos.org/OpenCL-CLHPP/
> +
> +comment "opencl-clhpp needs a toolchain w/ C++"
> +	depends on !BR2_INSTALL_LIBSTDCPP
> diff --git a/package/opencl-clhpp/opencl-clhpp.hash b/package/opencl-clhpp/opencl-clhpp.hash
> new file mode 100644
> index 0000000000..27b27cd80c
> --- /dev/null
> +++ b/package/opencl-clhpp/opencl-clhpp.hash
> @@ -0,0 +1,3 @@
> +# Locally Computed
> +sha256  869456032e60787eed9fceaeaf6c6cb4452bc0ff97e0f5a271510145a1c8f4d4  opencl-clhpp-2.0.16.tar.gz
> +sha256  cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30  LICENSE.txt
> diff --git a/package/opencl-clhpp/opencl-clhpp.mk b/package/opencl-clhpp/opencl-clhpp.mk
> new file mode 100644
> index 0000000000..610cd45b62
> --- /dev/null
> +++ b/package/opencl-clhpp/opencl-clhpp.mk
> @@ -0,0 +1,16 @@
> +################################################################################
> +#
> +# opencl-clhpp
> +#
> +################################################################################
> +
> +OPENCL_CLHPP_VERSION = 2.0.16
> +OPENCL_CLHPP_SITE = $(call github,KhronosGroup,OpenCL-CLHPP,v$(OPENCL_CLHPP_VERSION))
> +OPENCL_CLHPP_LICENSE = Apache-2.0
> +OPENCL_CLHPP_LICENSE_FILES = LICENSE.txt
> +OPENCL_CLHPP_INSTALL_STAGING = YES
> +
> +# OpenCL_CLHPP is a header-only library
> +OPENCL_CLHPP_INSTALL_TARGET = NO
> +
> +$(eval $(cmake-package))

Since we only build two headers files, is the cmake infra really required?

Install the project...
-- Install configuration: "Release"
-- Installing: output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include/CL
-- Installing:
output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include/CL/opencl.hpp
-- Installing:
output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include/CL/cl2.hpp


Best regards,
Romain
Thomas Petazzoni July 27, 2022, 7:29 a.m. UTC | #2
Hello Gilles,

On Sun, 16 Jan 2022 18:53:19 +0100
Gilles Talis <gilles.talis@gmail.com> wrote:


> diff --git a/package/opencl-clhpp/Config.in b/package/opencl-clhpp/Config.in
> new file mode 100644
> index 0000000000..12045be055
> --- /dev/null
> +++ b/package/opencl-clhpp/Config.in
> @@ -0,0 +1,10 @@
> +config BR2_PACKAGE_OPENCL_CLHPP
> +	bool "opencl-clhpp"
> +	depends on BR2_INSTALL_LIBSTDCPP

I've added a dependency on BR2_PACKAGE_HAS_LIBOPENCL here. While it is
not needed for this package to build (because it now only install
headers), all users of opencl-clhpp will need to have this dependency.

> diff --git a/package/opencl-clhpp/opencl-clhpp.hash b/package/opencl-clhpp/opencl-clhpp.hash
> new file mode 100644
> index 0000000000..27b27cd80c
> --- /dev/null
> +++ b/package/opencl-clhpp/opencl-clhpp.hash
> @@ -0,0 +1,3 @@
> +# Locally Computed
> +sha256  869456032e60787eed9fceaeaf6c6cb4452bc0ff97e0f5a271510145a1c8f4d4  opencl-clhpp-2.0.16.tar.gz
> +sha256  cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30  LICENSE.txt
> diff --git a/package/opencl-clhpp/opencl-clhpp.mk b/package/opencl-clhpp/opencl-clhpp.mk
> new file mode 100644
> index 0000000000..610cd45b62
> --- /dev/null
> +++ b/package/opencl-clhpp/opencl-clhpp.mk
> @@ -0,0 +1,16 @@
> +################################################################################
> +#
> +# opencl-clhpp
> +#
> +################################################################################
> +
> +OPENCL_CLHPP_VERSION = 2.0.16
> +OPENCL_CLHPP_SITE = $(call github,KhronosGroup,OpenCL-CLHPP,v$(OPENCL_CLHPP_VERSION))
> +OPENCL_CLHPP_LICENSE = Apache-2.0
> +OPENCL_CLHPP_LICENSE_FILES = LICENSE.txt
> +OPENCL_CLHPP_INSTALL_STAGING = YES
> +
> +# OpenCL_CLHPP is a header-only library
> +OPENCL_CLHPP_INSTALL_TARGET = NO
> +
> +$(eval $(cmake-package))

As suggested by Romain, I have used generic-package and a simple
OPENCL_CLHPP_INSTALL_STAGING_CMDS to just install the two headers to
avoid the need for a C++11 compiler.

Applied with those changes, thanks!

Best regards,

Thomas
diff mbox series

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index a91e2dfcde..483afa4932 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1084,6 +1084,7 @@  F:	package/libeXosip2/
 F:	package/libolm/
 F:	package/libosip2/
 F:	package/ocrad/
+F:	package/opencl-clhpp/
 F:	package/opusfile/
 F:	package/restclient-cpp/
 F:	package/tesseract-ocr/
diff --git a/package/Config.in b/package/Config.in
index 4df1474b91..08eb3ad809 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1564,6 +1564,7 @@  menu "Graphics"
 	source "package/libvips/Config.in"
 	source "package/libwpe/Config.in"
 	source "package/menu-cache/Config.in"
+	source "package/opencl-clhpp/Config.in"
 	source "package/opencv3/Config.in"
 	source "package/opencv4/Config.in"
 	source "package/opengl/Config.in"
diff --git a/package/opencl-clhpp/Config.in b/package/opencl-clhpp/Config.in
new file mode 100644
index 0000000000..12045be055
--- /dev/null
+++ b/package/opencl-clhpp/Config.in
@@ -0,0 +1,10 @@ 
+config BR2_PACKAGE_OPENCL_CLHPP
+	bool "opencl-clhpp"
+	depends on BR2_INSTALL_LIBSTDCPP
+	help
+	  opencl-clhpp are the OpenCL API C++ bindings
+
+	  http://github.khronos.org/OpenCL-CLHPP/
+
+comment "opencl-clhpp needs a toolchain w/ C++"
+	depends on !BR2_INSTALL_LIBSTDCPP
diff --git a/package/opencl-clhpp/opencl-clhpp.hash b/package/opencl-clhpp/opencl-clhpp.hash
new file mode 100644
index 0000000000..27b27cd80c
--- /dev/null
+++ b/package/opencl-clhpp/opencl-clhpp.hash
@@ -0,0 +1,3 @@ 
+# Locally Computed
+sha256  869456032e60787eed9fceaeaf6c6cb4452bc0ff97e0f5a271510145a1c8f4d4  opencl-clhpp-2.0.16.tar.gz
+sha256  cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30  LICENSE.txt
diff --git a/package/opencl-clhpp/opencl-clhpp.mk b/package/opencl-clhpp/opencl-clhpp.mk
new file mode 100644
index 0000000000..610cd45b62
--- /dev/null
+++ b/package/opencl-clhpp/opencl-clhpp.mk
@@ -0,0 +1,16 @@ 
+################################################################################
+#
+# opencl-clhpp
+#
+################################################################################
+
+OPENCL_CLHPP_VERSION = 2.0.16
+OPENCL_CLHPP_SITE = $(call github,KhronosGroup,OpenCL-CLHPP,v$(OPENCL_CLHPP_VERSION))
+OPENCL_CLHPP_LICENSE = Apache-2.0
+OPENCL_CLHPP_LICENSE_FILES = LICENSE.txt
+OPENCL_CLHPP_INSTALL_STAGING = YES
+
+# OpenCL_CLHPP is a header-only library
+OPENCL_CLHPP_INSTALL_TARGET = NO
+
+$(eval $(cmake-package))