clover/llvm: Add functions for compiling from source to SPIR-V
[mesa.git] / src / gallium / state_trackers / clover / meson.build
index 62ac5f5278d729dd968400b7835bbe8c9ac122aa..2f5b287d97619fd5b3e10acf3b9d694e3e4eab95 100644 (file)
 # SOFTWARE.
 
 clover_cpp_args = []
+clover_spirv_cpp_args = []
 clover_incs = [inc_include, inc_src, inc_gallium, inc_gallium_aux]
 
 if with_opencl_icd
   clover_cpp_args += '-DHAVE_CLOVER_ICD'
 endif
 
-libcltgsi = static_library(
-  'cltgsi',
-  files('tgsi/compiler.cpp', 'tgsi/invocation.hpp'),
-  include_directories : clover_incs,
-  cpp_args : [cpp_vis_args],
-  override_options : clover_cpp_std,
-)
+if with_opencl_spirv
+  clover_spirv_cpp_args += '-DHAVE_CLOVER_SPIRV'
+endif
 
 libclllvm = static_library(
   'clllvm',
@@ -48,7 +45,7 @@ libclllvm = static_library(
   ),
   include_directories : clover_incs,
   cpp_args : [
-    cpp_vis_args,
+    clover_spirv_cpp_args, cpp_vis_args,
     '-DLIBCLC_INCLUDEDIR="@0@/"'.format(dep_clc.get_pkgconfig_variable('includedir')),
     '-DLIBCLC_LIBEXECDIR="@0@/"'.format(dep_clc.get_pkgconfig_variable('libexecdir')),
     '-DCLANG_RESOURCE_DIR="@0@"'.format(join_paths(
@@ -56,7 +53,16 @@ libclllvm = static_library(
       dep_llvm.version(), 'include',
     )),
   ],
-  dependencies : [dep_llvm, dep_elf],
+  dependencies : [dep_llvm, dep_elf, dep_llvmspirvlib],
+  override_options : clover_cpp_std,
+)
+
+libclspirv = static_library(
+  'clspirv',
+  files('spirv/invocation.cpp', 'spirv/invocation.hpp'),
+  include_directories : clover_incs,
+  cpp_args : [clover_spirv_cpp_args, cpp_vis_args],
+  dependencies : [dep_spirv_tools],
   override_options : clover_cpp_std,
 )
 
@@ -119,7 +125,7 @@ libclover = static_library(
   'clover',
   [clover_files, sha1_h],
   include_directories : clover_incs,
-  cpp_args : [clover_cpp_args, cpp_vis_args],
-  link_with : [libcltgsi, libclllvm],
+  cpp_args : [clover_spirv_cpp_args, clover_cpp_args, cpp_vis_args],
+  link_with : [libclllvm, libclspirv],
   override_options : clover_cpp_std,
 )