Files
external_libcamera/meson.build
T
Kieran Bingham b817bcec6b libcamera: Auto generate version information
Generate a version string, and provide a global string object which
allows applications to interrogate the current libcamera version
information.

The version header is automatically updated by meson on each build.
The string roughly follows the semver [0] conventions of
major.minor.patch-label as a value.

[0] https://semver.org/

A script (utils/gen-version.sh) is provided which is modelled upon the
processing from autoconf's git-version-gen. The gen-version.sh script
will look for tags in the form vX.Y as starting points for the version
string. While the repository does not have any matching tags, v0.0 will
be assumed, resulting in versions with both major and minor being set to
'0', and the patch count resulting from the number of patches in the
history to that point.

Finally, a uniquely identifying shortened hash is provided from git:

	v0.0.509+0ec0edf7

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
2019-07-04 22:11:27 +01:00

65 lines
1.7 KiB
Meson

project('libcamera', 'c', 'cpp',
meson_version : '>= 0.40',
version : run_command('utils/gen-version.sh',
'@0@'.format(meson.source_root()),
check : true).stdout().strip(),
default_options : [
'werror=true',
'warning_level=2',
'cpp_std=c++11',
],
license : 'LGPL 2.1+')
cc = meson.get_compiler('c')
config_h = configuration_data()
if cc.has_header_symbol('stdlib.h', 'secure_getenv', prefix : '#define _GNU_SOURCE')
config_h.set('HAVE_SECURE_GETENV', 1)
endif
common_arguments = [
'-Wno-unused-parameter',
'-include', 'config.h',
]
c_arguments = common_arguments
cpp_arguments = common_arguments
# Use libc++ by default if available instead of libstdc++ when compiling with
# clang.
if cc.get_id() == 'clang' and cc.find_library('libc++', required: false).found()
cpp_arguments += [
'-stdlib=libc++',
]
endif
add_project_arguments(c_arguments, language : 'c')
add_project_arguments(cpp_arguments, language : 'cpp')
add_project_link_arguments(cpp_arguments, language : 'cpp')
libcamera_includes = include_directories('include')
subdir('include')
subdir('src')
subdir('utils')
# The documentation and test components are optional and can be disabled
# through configuration values. They are enabled by default.
if get_option('documentation')
subdir('Documentation')
endif
if get_option('tests')
subdir('test')
endif
configure_file(output : 'config.h', configuration : config_h)
pkg_mod = import('pkgconfig')
pkg_mod.generate(libraries : libcamera,
version : '1.0',
name : 'libcamera',
filebase : 'camera',
description : 'Complex Camera Support Library')