[Meson] include orc
authorJaeyun <jy1210.jung@samsung.com>
Fri, 7 Dec 2018 04:14:06 +0000 (13:14 +0900)
committerMyungJoo Ham <myungjoo.ham@gmail.com>
Fri, 7 Dec 2018 05:31:09 +0000 (14:31 +0900)
1. set base-args and include orc features
2. check orc lib and orcc, and generate orc files in tensor-transform

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
15 files changed:
gst/nnstreamer/meson.build
gst/tensor_aggregator/meson.build
gst/tensor_converter/meson.build
gst/tensor_decoder/meson.build
gst/tensor_demux/meson.build
gst/tensor_filter/meson.build
gst/tensor_merge/meson.build
gst/tensor_mux/meson.build
gst/tensor_reposink/meson.build
gst/tensor_reposrc/meson.build
gst/tensor_saveload/meson.build
gst/tensor_sink/meson.build
gst/tensor_split/meson.build
gst/tensor_transform/meson.build
meson.build

index cc659c1..0960b9d 100644 (file)
@@ -3,8 +3,9 @@ tensor_common_sources = [
     'tensor_repo.c'
 ]
 
-tensor_commonOBJ = static_library('tensor_common', 
+tensor_commonOBJ = static_library('tensor_common',
     tensor_common_sources,
+    c_args: nnstreamer_base_args,
     dependencies: [
         dependencies
     ],
index 951ac35..f3b251b 100644 (file)
@@ -4,6 +4,7 @@ tensor_aggregator_sources = [
 
 tensor_aggregatorOBJ = static_library('tensor_aggregator',
     tensor_aggregator_sources,
+    c_args: nnstreamer_base_args,
     dependencies: [
         dependencies
     ],
@@ -11,4 +12,3 @@ tensor_aggregatorOBJ = static_library('tensor_aggregator',
 ).extract_all_objects()
 
 objects += tensor_aggregatorOBJ
-
index 7687e84..ca4a82c 100644 (file)
@@ -4,6 +4,7 @@ tensor_converter_sources = [
 
 tensor_converterOBJ = static_library('tensor_converter',
     tensor_converter_sources,
+    c_args: nnstreamer_base_args,
     dependencies: [
         dependencies
     ],
index c30da6e..a49da9f 100644 (file)
@@ -8,6 +8,7 @@ tensor_decoder_sources = [
 
 tensor_decoderOBJ = static_library('tensor_decoder',
     tensor_decoder_sources,
+    c_args: nnstreamer_base_args,
     dependencies: [
         dependencies
     ],
index 1f23254..779257f 100644 (file)
@@ -4,6 +4,7 @@ tensor_demux_sources = [
 
 tensor_demuxOBJ = static_library('tensor_demux',
     tensor_demux_sources,
+    c_args: nnstreamer_base_args,
     dependencies: [
         dependencies
     ],
@@ -11,4 +12,3 @@ tensor_demuxOBJ = static_library('tensor_demux',
 ).extract_all_objects()
 
 objects += tensor_demuxOBJ
-
index 953e3f9..4f7aa64 100644 (file)
@@ -3,12 +3,12 @@ tensor_filter_sources = [
     'tensor_filter_custom.c'
 ]
 
-c_args = []
+tensor_filter_args = [nnstreamer_base_args]
 
 if get_option('ENABLE_TENSORFLOW_LITE')
     tensor_filter_sources += 'tensor_filter_tensorflow_lite.c'
     dependencies += dependency('tensorflow-lite')
-    c_args += '-DENABLE_TENSORFLOW_LITE'
+    tensor_filter_args += ['-DENABLE_TENSORFLOW_LITE']
 
     tensor_filter_tflitecoreOBJ = static_library('tensor_filter_tflitecore',
         'tensor_filter_tensorflow_lite_core.cc',
@@ -16,7 +16,7 @@ if get_option('ENABLE_TENSORFLOW_LITE')
             dependencies
         ],
         include_directories: inc,
-        cpp_args: '-Wno-sign-compare' 
+        cpp_args: tensor_filter_args + ['-Wno-sign-compare']
     ).extract_all_objects()
 
     objects += tensor_filter_tflitecoreOBJ
@@ -25,7 +25,7 @@ endif
 if get_option('ENABLE_TENSORFLOW')
     tensor_filter_sources += 'tensor_filter_tensorflow.c'
     dependencies += dependency('tensorflow')
-    c_args += '-DENABLE_TENSORFLOW'
+    tensor_filter_args += ['-DENABLE_TENSORFLOW']
 
     tensor_filter_tfcoreOBJ = static_library('tensor_filter_tfcore',
         'tensor_filter_tensorflow_core.cc',
@@ -33,7 +33,7 @@ if get_option('ENABLE_TENSORFLOW')
             dependencies
         ],
         include_directories: inc,
-        cpp_args: '-Wno-sign-compare'
+        cpp_args: tensor_filter_args + ['-Wno-sign-compare']
     ).extract_all_objects()
 
     objects += tensor_filter_tflitecoreOBJ
@@ -45,7 +45,7 @@ tensor_filterOBJ = static_library('tensor_filter',
         dependencies
     ],
     include_directories: inc,
-    c_args: c_args
+    c_args: tensor_filter_args
 ).extract_all_objects()
 
 objects += tensor_filterOBJ
index 5a6985f..22fbe24 100644 (file)
@@ -4,10 +4,11 @@ tensor_merge_sources = [
 
 tensor_mergeOBJ = static_library('tensor_merge',
     tensor_merge_sources,
+    c_args: nnstreamer_base_args,
     dependencies: [
         dependencies
     ],
-    include_directories: inc    
+    include_directories: inc
 ).extract_all_objects()
 
 objects += tensor_mergeOBJ
index a2a8bf0..171c243 100644 (file)
@@ -4,6 +4,7 @@ tensor_mux_sources = [
 
 tensor_muxOBJ = static_library('tensor_mux',
     tensor_mux_sources,
+    c_args: nnstreamer_base_args,
     dependencies: [
         dependencies
     ],
@@ -11,4 +12,3 @@ tensor_muxOBJ = static_library('tensor_mux',
 ).extract_all_objects()
 
 objects += tensor_muxOBJ
-
index 45ab08c..6e74b38 100644 (file)
@@ -4,6 +4,7 @@ tensor_reposink_sources = [
 
 tensor_reposinkOBJ = static_library('tensor_reposink',
     tensor_reposink_sources,
+    c_args: nnstreamer_base_args,
     dependencies: [
         dependencies
     ],
index 1dc714f..1e05254 100644 (file)
@@ -4,6 +4,7 @@ tensor_reposrc_sources = [
 
 tensor_reposrcOBJ = static_library('tensor_reposrc',
     tensor_reposrc_sources,
+    c_args: nnstreamer_base_args,
     dependencies: [
         dependencies
     ],
index 545acbd..be59c40 100644 (file)
@@ -4,6 +4,7 @@ tensor_saveload_sources = [
 
 tensor_saveloadOBJ = static_library('tensor_saveload',
     tensor_saveload_sources,
+    c_args: nnstreamer_base_args,
     dependencies: [
         dependencies
     ],
index 3e19eac..89d5312 100644 (file)
@@ -4,6 +4,7 @@ tensor_sink_sources = [
 
 tensor_sinkOBJ = static_library('tensor_sink',
     tensor_sink_sources,
+    c_args: nnstreamer_base_args,
     dependencies: [
         dependencies
     ],
index e74d922..e66e4ec 100644 (file)
@@ -4,6 +4,7 @@ tensor_split_sources = [
 
 tensor_splitOBJ = static_library('tensor_split',
     tensor_split_sources,
+    c_args: nnstreamer_base_args,
     dependencies: [
         dependencies
     ],
index 160b666..e66fff2 100644 (file)
@@ -2,8 +2,23 @@ tensor_transform_sources = [
     'tensor_transform.c'
 ]
 
+orcsrc = 'transform-orc'
+if have_orcc
+  # tensor_transform does not need to generate -dist files.
+  orc_h = custom_target(orcsrc + '.h',
+    input : orcsrc + '.orc',
+    output : orcsrc + '.h',
+    command : orcc_args + ['--header', '-o', '@OUTPUT@', '@INPUT@'])
+  orc_c = custom_target(orcsrc + '.c',
+    input : orcsrc + '.orc',
+    output : orcsrc + '.c',
+    command : orcc_args + ['--implementation', '-o', '@OUTPUT@', '@INPUT@'])
+  tensor_transform_sources += [orc_c, orc_h]
+endif
+
 tensor_transformOBJ = static_library('tensor_transform',
     tensor_transform_sources,
+    c_args: nnstreamer_base_args,
     dependencies: [
         dependencies
     ],
index bb73e15..28ef281 100644 (file)
@@ -39,8 +39,26 @@ dependencies = [
     cxx.find_library('pthread', required: false) # pthread for tensor_filter_tensorflow_lite
 ]
 
+nnstreamer_base_args = []
+
 inc = include_directories('gst/nnstreamer')
 
+# Orc
+have_orcc = false
+orcc_args = []
+
+orc_dep = dependency('orc-0.4', version : '>= 0.4.24', required : true)
+orcc = find_program('orcc', required : true)
+if orc_dep.found() and orcc.found()
+  have_orcc = true
+  orcc_args = [orcc, '--include', 'glib.h']
+  dependencies += [orc_dep]
+  nnstreamer_base_args += ['-DHAVE_ORC=1']
+else
+  message('Cannot find orc library')
+  nnstreamer_base_args += ['-DDISABLE_ORC=1']
+endif
+
 projects = [
        'nnstreamer',
        'tensor_aggregator',
@@ -76,6 +94,7 @@ nnstreamer_sources = [
 # "both_libraries" are supported from 0.46.
 nnstreamer = shared_library('nnstreamer',
     nnstreamer_sources,
+    c_args: nnstreamer_base_args,
     dependencies: [
         dependencies
     ],
@@ -84,6 +103,7 @@ nnstreamer = shared_library('nnstreamer',
 )
 nnstreamer = static_library('nnstreamer',
     nnstreamer_sources,
+    c_args: nnstreamer_base_args,
     dependencies: [
         dependencies
     ],