summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/numeric/ublas/opencl.jam
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 18:24:20 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 18:24:20 +0000
commit483eb2f56657e8e7f419ab1a4fab8dce9ade8609 (patch)
treee5d88d25d870d5dedacb6bbdbe2a966086a0a5cf /src/boost/libs/numeric/ublas/opencl.jam
parentInitial commit. (diff)
downloadceph-483eb2f56657e8e7f419ab1a4fab8dce9ade8609.tar.xz
ceph-483eb2f56657e8e7f419ab1a4fab8dce9ade8609.zip
Adding upstream version 14.2.21.upstream/14.2.21upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/boost/libs/numeric/ublas/opencl.jam')
-rw-r--r--src/boost/libs/numeric/ublas/opencl.jam111
1 files changed, 111 insertions, 0 deletions
diff --git a/src/boost/libs/numeric/ublas/opencl.jam b/src/boost/libs/numeric/ublas/opencl.jam
new file mode 100644
index 00000000..f16193a9
--- /dev/null
+++ b/src/boost/libs/numeric/ublas/opencl.jam
@@ -0,0 +1,111 @@
+# Copyright (c) 2018 Stefan Seefeld
+#
+# Use, modification and distribution is subject to the Boost Software
+# License Version 1.0. (See accompanying file LICENSE_1_0.txt or
+# http://www.boost.org/LICENSE_1_0.txt)
+
+# Supports the opencl library
+#
+# After 'using opencl', the following targets are available:
+#
+# /opencl//opencl -- The OpenCL library
+
+import project ;
+import ac ;
+import errors ;
+import feature ;
+import "class" : new ;
+import targets ;
+import modules ;
+import property-set ;
+
+header = CL/cl.h ;
+names = OpenCL ;
+
+library-id = 0 ;
+
+if --debug-configuration in [ modules.peek : ARGV ]
+{
+ .debug = true ;
+}
+
+# Initializes the opencl library.
+#
+# Options for configuring opencl::
+#
+# <search>
+# The directory containing the OpenCL library.
+# <name>
+# Overrides the default library name.
+# <include>
+# The directory containing the OpenCL headers.
+#
+# Examples::
+#
+# # Find OpenCL in the default system location
+# using opencl ;
+# # Find opencl in /usr/local
+# using opencl : 1.2.7
+# : <include>/usr/local/include <search>/usr/local/lib ;
+#
+rule init ( version ? : # The opencl version (currently ignored)
+ options * : # A list of the options to use
+ requirements * ) # The requirements for the opencl target
+{
+ local caller = [ project.current ] ;
+
+ if ! $(.initialized)
+ {
+ .initialized = true ;
+
+ project.initialize $(__name__) ;
+ .project = [ project.current ] ;
+ project opencl ;
+ }
+
+ local library-path = [ feature.get-values <search> : $(options) ] ;
+ local include-path = [ feature.get-values <include> : $(options) ] ;
+ local library-name = [ feature.get-values <name> : $(options) ] ;
+
+ if ! $(library-path) && ! $(include-path) && ! $(library-name)
+ {
+ is-default = true ;
+ }
+
+ condition = [ property-set.create $(requirements) ] ;
+ condition = [ property-set.create [ $(condition).base ] ] ;
+
+ if $(.configured.$(condition))
+ {
+ if $(is-default)
+ {
+ if $(.debug)
+ {
+ ECHO "notice: [opencl] opencl is already configured" ;
+ }
+ }
+ else
+ {
+ errors.user-error "opencl is already configured" ;
+ }
+ return ;
+ }
+ else
+ {
+ if $(.debug)
+ {
+ ECHO "notice: [opencl] Using pre-installed library" ;
+ if $(condition)
+ {
+ ECHO "notice: [opencl] Condition" [ $(condition).raw ] ;
+ }
+ }
+
+ local mt = [ new ac-library opencl : $(.project) : $(condition) :
+ $(include-path) : $(library-path) : $(library-name) ] ;
+ $(mt).set-header $(header) ;
+ $(mt).set-default-names $(names) ;
+ targets.main-target-alternative $(mt) ;
+ }
+ .configured.$(condition) = true ;
+}