[Coverity] Fix coverity issues
[platform/core/ml/nntrainer.git] / nntrainer / meson.build
index ee4722a..068322c 100644 (file)
 nntrainer_inc = [
-  include_directories('./include')
+  include_directories('.'),
+  include_directories('../api', '../api/ccapi/include')
 ]
 
-# pc file is not present for 'ml-api-common' yet
-if cxx.has_header('nnstreamer/ml-api-common.h', required: false)
-  nntrainer_inc += include_directories ('/usr/include/nnstreamer')
-else
-  nntrainer_inc += include_directories ('../api/capi/include/platform')
-endif
+# meson provides include_directories. But there is no support to get the absolute path from the object.
+# to feed to the android.mk, sadly nntrainer_inc_abs is saved as well
+nntrainer_inc_abs = [
+  meson.current_source_dir(),
+  meson.source_root() / 'api',
+  meson.source_root() / 'api' / 'ccapi' / 'include'
+]
+
+nntrainer_sources = []
+nntrainer_headers = [
+   meson.current_source_dir() / 'nntrainer_log.h',
+   meson.current_source_dir() / 'nntrainer_logger.h',
+   meson.current_source_dir() / 'nntrainer_error.h',
+   meson.current_source_dir() / 'app_context.h',
+]
 
 # Dependencies
 nntrainer_base_deps=[
-  openmp_dep,
   blas_dep,
   iniparser_dep,
+  ml_api_common_dep,
   libm_dep,
   libdl_dep,
-  thread_dep
+  thread_dep,
+  openmp_dep
 ]
 
-if build_platform == 'tizen'
+if get_option('platform') == 'tizen'
   nntrainer_base_deps += dependency('dlog')
 endif
 
-nntrainer_sources = [
-  'src/activation_layer.cpp',
-  'src/bn_layer.cpp',
-  'src/conv2d_layer.cpp',
-  'src/databuffer.cpp',
-  'src/databuffer_file.cpp',
-  'src/databuffer_func.cpp',
-  'src/fc_layer.cpp',
-  'src/flatten_layer.cpp',
-  'src/input_layer.cpp',
-  'src/layer.cpp',
-  'src/lazy_tensor.cpp',
-  'src/loss_layer.cpp',
-  'src/neuralnet.cpp',
-  'src/nntrainer_logger.cpp',
-  'src/optimizer.cpp',
-  'src/parse_util.cpp',
-  'src/pooling2d_layer.cpp',
-  'src/tensor.cpp',
-  'src/tensor_dim.cpp',
-  'src/util_func.cpp'
+nntrainer_elements = [
+  'compiler',
+  'dataset',
+  'layers',
+  'models',
+  'optimizers',
+  'tensor',
+  'utils',
+  'graph'
 ]
 
-nntrainer_headers = [
-  'include/activation_layer.h',
-  'include/bn_layer.h',
-  'include/conv2d_layer.h',
-  'include/databuffer.h',
-  'include/databuffer_file.h',
-  'include/databuffer_func.h',
-  'include/fc_layer.h',
-  'include/flatten_layer.h',
-  'include/input_layer.h',
-  'include/layer.h',
-  'include/lazy_tensor.h',
-  'include/loss_layer.h',
-  'include/neuralnet.h',
-  'include/nntrainer_log.h',
-  'include/nntrainer_logger.h',
-  'include/optimizer.h',
-  'include/parse_util.h',
-  'include/pooling2d_layer.h',
-  'include/tensor.h',
-  'include/tensor_dim.h',
-  'include/util_func.h'
+foreach elem : nntrainer_elements
+  subdir(elem)
+  nntrainer_inc += include_directories(elem)
+  nntrainer_inc_abs += meson.current_source_dir() / elem
+endforeach
+
+
+nntrainer_common_sources = [
+  'nntrainer_logger.cpp',
+  'app_context.cpp'
 ]
 
-# Build libraries
-nntrainer_shared = shared_library('nntrainer',
-  nntrainer_sources,
-  dependencies: nntrainer_base_deps,
-  include_directories: nntrainer_inc,
-  install: true,
-  install_dir: nntrainer_libdir
-)
+foreach s : nntrainer_common_sources
+  nntrainer_sources += meson.current_source_dir() / s
+endforeach
 
-nntrainer_static = static_library('nntrainer',
-  nntrainer_sources,
-  dependencies: nntrainer_base_deps,
-  include_directories: nntrainer_inc,
-  install: true,
-  install_dir: nntrainer_libdir
-)
+if get_option('platform') == 'android'
+  nntrainer_dep = found_dummy_dep
+else
+  # Build libraries
+  nntrainer_shared = shared_library('nntrainer',
+    nntrainer_sources,
+    dependencies: nntrainer_base_deps,
+    include_directories: nntrainer_inc,
+    install: true,
+    install_dir: nntrainer_libdir
+  )
 
-nntrainer_lib = nntrainer_shared
-if get_option('default_library') == 'static'
-  nntrainer_lib = nntrainer_static
-endif
+  nntrainer_static = static_library('nntrainer',
+    nntrainer_sources,
+    dependencies: nntrainer_base_deps,
+    include_directories: nntrainer_inc,
+    install: true,
+    install_dir: nntrainer_libdir
+  )
 
-nntrainer_dep = declare_dependency(link_with: nntrainer_lib,
-  dependencies: nntrainer_base_deps,
-  include_directories: nntrainer_inc
-)
+  nntrainer_lib = nntrainer_shared
+  if get_option('default_library') == 'static'
+    nntrainer_lib = nntrainer_static
+  endif
+
+  nntrainer_dep = declare_dependency(link_with: nntrainer_lib,
+    dependencies: nntrainer_base_deps,
+    include_directories: nntrainer_inc
+  )
+endif
 
 # Install headers
 install_headers(nntrainer_headers,
-  subdir: 'nntrainer'
+  install_dir: nntrainer_includedir,
 )
+