[Meson] Initial commit of meson build
authorsewon.oh <sewon.oh@samsung.com>
Thu, 15 Nov 2018 01:43:12 +0000 (10:43 +0900)
committerMyungJoo Ham <myungjoo.ham@gmail.com>
Mon, 19 Nov 2018 09:42:52 +0000 (09:42 +0000)
Initial commit of meson. This commit's goal is to make single binary.

Signed-off-by: sewon.oh <sewon.oh@samsung.com>
13 files changed:
gst/nnstreamer/meson.build [new file with mode: 0644]
gst/tensor_aggregator/meson.build [new file with mode: 0644]
gst/tensor_converter/meson.build [new file with mode: 0644]
gst/tensor_decoder/meson.build [new file with mode: 0644]
gst/tensor_demux/meson.build [new file with mode: 0644]
gst/tensor_filter/meson.build [new file with mode: 0644]
gst/tensor_merge/meson.build [new file with mode: 0644]
gst/tensor_mux/meson.build [new file with mode: 0644]
gst/tensor_saveload/meson.build [new file with mode: 0644]
gst/tensor_sink/meson.build [new file with mode: 0644]
gst/tensor_split/meson.build [new file with mode: 0644]
gst/tensor_transform/meson.build [new file with mode: 0644]
meson.build [new file with mode: 0644]

diff --git a/gst/nnstreamer/meson.build b/gst/nnstreamer/meson.build
new file mode 100644 (file)
index 0000000..6d1e69a
--- /dev/null
@@ -0,0 +1,13 @@
+tensor_common_sources = [
+    'tensor_common.c'
+]
+
+tensor_commonOBJ = static_library('tensor_common', 
+    tensor_common_sources,
+    dependencies: [
+        dependencies
+    ],
+    include_directories: inc
+).extract_all_objects()
+
+objects += tensor_commonOBJ
diff --git a/gst/tensor_aggregator/meson.build b/gst/tensor_aggregator/meson.build
new file mode 100644 (file)
index 0000000..951ac35
--- /dev/null
@@ -0,0 +1,14 @@
+tensor_aggregator_sources = [
+    'tensor_aggregator.c'
+]
+
+tensor_aggregatorOBJ = static_library('tensor_aggregator',
+    tensor_aggregator_sources,
+    dependencies: [
+        dependencies
+    ],
+    include_directories: inc
+).extract_all_objects()
+
+objects += tensor_aggregatorOBJ
+
diff --git a/gst/tensor_converter/meson.build b/gst/tensor_converter/meson.build
new file mode 100644 (file)
index 0000000..7687e84
--- /dev/null
@@ -0,0 +1,13 @@
+tensor_converter_sources = [
+    'tensor_converter.c'
+]
+
+tensor_converterOBJ = static_library('tensor_converter',
+    tensor_converter_sources,
+    dependencies: [
+        dependencies
+    ],
+    include_directories: inc
+).extract_all_objects()
+
+objects += tensor_converterOBJ
diff --git a/gst/tensor_decoder/meson.build b/gst/tensor_decoder/meson.build
new file mode 100644 (file)
index 0000000..c9e7551
--- /dev/null
@@ -0,0 +1,15 @@
+tensor_decoder_sources = [
+    'tensordec.c',
+    'tensordec-plugins.c',
+    'tensordec-directvideo.c'    
+]
+
+tensor_decoderOBJ = static_library('tensor_decoder',
+    tensor_decoder_sources,
+    dependencies: [
+        dependencies
+    ],
+    include_directories: inc
+).extract_all_objects()
+
+objects += tensor_decoderOBJ
diff --git a/gst/tensor_demux/meson.build b/gst/tensor_demux/meson.build
new file mode 100644 (file)
index 0000000..1f23254
--- /dev/null
@@ -0,0 +1,14 @@
+tensor_demux_sources = [
+    'gsttensordemux.c'
+]
+
+tensor_demuxOBJ = static_library('tensor_demux',
+    tensor_demux_sources,
+    dependencies: [
+        dependencies
+    ],
+    include_directories: inc
+).extract_all_objects()
+
+objects += tensor_demuxOBJ
+
diff --git a/gst/tensor_filter/meson.build b/gst/tensor_filter/meson.build
new file mode 100644 (file)
index 0000000..c17719c
--- /dev/null
@@ -0,0 +1,14 @@
+tensor_filter_sources = [
+    'tensor_filter.c',
+    'tensor_filter_custom.c'
+]
+
+tensor_filterOBJ = static_library('tensor_filter',
+    tensor_filter_sources,
+    dependencies: [
+        dependencies
+    ],
+    include_directories: inc
+).extract_all_objects()
+
+objects += tensor_filterOBJ
diff --git a/gst/tensor_merge/meson.build b/gst/tensor_merge/meson.build
new file mode 100644 (file)
index 0000000..5a6985f
--- /dev/null
@@ -0,0 +1,13 @@
+tensor_merge_sources = [
+    'gsttensormerge.c'
+]
+
+tensor_mergeOBJ = static_library('tensor_merge',
+    tensor_merge_sources,
+    dependencies: [
+        dependencies
+    ],
+    include_directories: inc    
+).extract_all_objects()
+
+objects += tensor_mergeOBJ
diff --git a/gst/tensor_mux/meson.build b/gst/tensor_mux/meson.build
new file mode 100644 (file)
index 0000000..a2a8bf0
--- /dev/null
@@ -0,0 +1,14 @@
+tensor_mux_sources = [
+    'gsttensormux.c'
+]
+
+tensor_muxOBJ = static_library('tensor_mux',
+    tensor_mux_sources,
+    dependencies: [
+        dependencies
+    ],
+    include_directories: inc
+).extract_all_objects()
+
+objects += tensor_muxOBJ
+
diff --git a/gst/tensor_saveload/meson.build b/gst/tensor_saveload/meson.build
new file mode 100644 (file)
index 0000000..545acbd
--- /dev/null
@@ -0,0 +1,13 @@
+tensor_saveload_sources = [
+    'tensor_load.c'
+]
+
+tensor_saveloadOBJ = static_library('tensor_saveload',
+    tensor_saveload_sources,
+    dependencies: [
+        dependencies
+    ],
+    include_directories: inc
+).extract_all_objects()
+
+objects += tensor_saveloadOBJ
diff --git a/gst/tensor_sink/meson.build b/gst/tensor_sink/meson.build
new file mode 100644 (file)
index 0000000..3e19eac
--- /dev/null
@@ -0,0 +1,13 @@
+tensor_sink_sources = [
+    'tensor_sink.c'
+]
+
+tensor_sinkOBJ = static_library('tensor_sink',
+    tensor_sink_sources,
+    dependencies: [
+        dependencies
+    ],
+    include_directories: inc
+).extract_all_objects()
+
+objects += tensor_sinkOBJ
diff --git a/gst/tensor_split/meson.build b/gst/tensor_split/meson.build
new file mode 100644 (file)
index 0000000..e74d922
--- /dev/null
@@ -0,0 +1,13 @@
+tensor_split_sources = [
+    'gsttensorsplit.c'
+]
+
+tensor_splitOBJ = static_library('tensor_split',
+    tensor_split_sources,
+    dependencies: [
+        dependencies
+    ],
+    include_directories: inc
+).extract_all_objects()
+
+objects += tensor_splitOBJ
diff --git a/gst/tensor_transform/meson.build b/gst/tensor_transform/meson.build
new file mode 100644 (file)
index 0000000..160b666
--- /dev/null
@@ -0,0 +1,13 @@
+tensor_transform_sources = [
+    'tensor_transform.c'
+]
+
+tensor_transformOBJ = static_library('tensor_transform',
+    tensor_transform_sources,
+    dependencies: [
+        dependencies
+    ],
+    include_directories: inc
+).extract_all_objects()
+
+objects += tensor_transformOBJ
diff --git a/meson.build b/meson.build
new file mode 100644 (file)
index 0000000..0c55067
--- /dev/null
@@ -0,0 +1,72 @@
+project('nnstreamer', 'c', 'cpp',
+    version: '0.0.3',
+    license: ['LGPL'],
+    meson_version: '>=0.47.0',
+    default_options: [
+        'warning_level=1',
+        'c_std=c89',
+        'cpp_std=c++11'
+    ]
+)
+
+add_project_arguments('-DVERSION="'+meson.project_version()+'"', language: 'c')
+add_project_arguments('-DSINGLE_BINARY', language: 'c')
+
+gst_api_verision = '1.0'
+
+glib = dependency('glib-2.0')
+gstreamer = dependency('gstreamer-' + gst_api_verision)
+gstreamer_base = dependency('gstreamer-base-' + gst_api_verision)
+gstreamer_controller = dependency('gstreamer-controller-' + gst_api_verision)
+gstreamer_video = dependency('gstreamer-video-' + gst_api_verision)
+gstreamer_audio = dependency('gstreamer-audio-' + gst_api_verision)
+
+cc = meson.get_compiler('c')
+
+dependencies = [
+    glib,
+    gstreamer,
+    gstreamer_base,
+    gstreamer_controller,
+    gstreamer_video,
+    gstreamer_audio,
+    # required 'false' mean is used only when needed.
+    cc.find_library('m', required: false), # cmath library
+    cc.find_library('dl', required: false) # DL library
+]
+
+inc = include_directories('gst/nnstreamer')
+
+projects = [
+       'nnstreamer',
+       'tensor_aggregator',
+       'tensor_converter',
+       'tensor_decoder',
+       'tensor_demux',
+       'tensor_merge',
+       'tensor_mux',
+       'tensor_saveload',
+       'tensor_sink',
+       'tensor_split',
+       'tensor_transform',
+       'tensor_filter'
+]
+
+objects = []
+foreach p : projects
+    subdir('gst/'+ p)
+endforeach
+
+nnstreamer_sources = [
+    'gst/nnstreamer/nnstreamer.c'
+]
+
+nnstreamer = both_libraries('nnstreamer',
+    nnstreamer_sources,
+    dependencies: [
+        dependencies
+    ],
+    include_directories: inc,
+    objects: objects
+)
+