-libds_version = meson.project_version()
-version_arr = libds_version.split('.')
-libds_version_major = version_arr[0]
-libds_version_minor = version_arr[1]
-libds_version_patch = version_arr[2]
+cc = meson.get_compiler('c')
+
+add_project_arguments(cc.get_supported_arguments([
+ '-Wno-missing-field-initializers',
+ '-Wno-unused-parameter',
+ '-Wno-pedantic',
+ '-Wno-missing-braces',
+]), language: ['c', 'cpp'])
+
+# Compute the relative path used by compiler invocations.
+source_root = meson.current_source_dir().split('/')
+build_root = meson.global_build_root().split('/')
+relative_dir_parts = []
+i = 0
+in_prefix = true
+foreach p: build_root
+ if i >= source_root.length() or not in_prefix or p != source_root[i]
+ in_prefix = false
+ relative_dir_parts += '..'
+ endif
+ i += 1
+endforeach
+i = 0
+in_prefix = true
+foreach p : source_root
+ if i >= build_root.length() or not in_prefix or build_root[i] != p
+ in_prefix = false
+ relative_dir_parts += p
+ endif
+ i += 1
+endforeach
+relative_dir = join_paths(relative_dir_parts) + '/'
+
+if cc.has_argument('-fmacro-prefix-map=/prefix/to/hide=')
+ add_project_arguments(
+ '-fmacro-prefix-map=@0@='.format(relative_dir),
+ language: 'c',
+ )
+else
+ add_project_arguments(
+ '-D_DS_REL_SRC_DIR="@0@"'.format(relative_dir),
+ language: 'c',
+ )
+endif
+
+libds_tizen_version = meson.project_version()
+version_arr = libds_tizen_version.split('.')
+libds_tizen_version_major = version_arr[0]
+libds_tizen_version_minor = version_arr[1]
+libds_tizen_version_patch = version_arr[2]