Files
external_libcamera/src/libcamera/meson.build
T
Jacopo Mondi a58a94e4c2 libcamera: Introduce camera sensor properties
Introduce a database of camera sensor properties, which contains
information on the camera sensor which are not possible, or desirable,
to retrieve from the device at run time.

The camera sensor database is accessed through a static function and
is indexed using the camera sensor model as reported by
properties::Model.

Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2021-05-10 15:07:59 +02:00

166 lines
4.6 KiB
Meson

# SPDX-License-Identifier: CC0-1.0
libcamera_sources = files([
'bayer_format.cpp',
'bound_method.cpp',
'buffer.cpp',
'byte_stream_buffer.cpp',
'camera.cpp',
'camera_controls.cpp',
'camera_manager.cpp',
'camera_sensor.cpp',
'camera_sensor_properties.cpp',
'class.cpp',
'controls.cpp',
'control_serializer.cpp',
'control_validator.cpp',
'delayed_controls.cpp',
'device_enumerator.cpp',
'device_enumerator_sysfs.cpp',
'event_dispatcher.cpp',
'event_dispatcher_poll.cpp',
'event_notifier.cpp',
'file.cpp',
'file_descriptor.cpp',
'formats.cpp',
'framebuffer_allocator.cpp',
'geometry.cpp',
'ipa_controls.cpp',
'ipa_data_serializer.cpp',
'ipa_interface.cpp',
'ipa_manager.cpp',
'ipa_module.cpp',
'ipa_proxy.cpp',
'ipc_pipe.cpp',
'ipc_pipe_unixsocket.cpp',
'ipc_unixsocket.cpp',
'log.cpp',
'media_device.cpp',
'media_object.cpp',
'message.cpp',
'object.cpp',
'pipeline_handler.cpp',
'pixel_format.cpp',
'process.cpp',
'pub_key.cpp',
'request.cpp',
'semaphore.cpp',
'signal.cpp',
'stream.cpp',
'sysfs.cpp',
'thread.cpp',
'timer.cpp',
'transform.cpp',
'utils.cpp',
'v4l2_controls.cpp',
'v4l2_device.cpp',
'v4l2_pixelformat.cpp',
'v4l2_subdevice.cpp',
'v4l2_videodevice.cpp',
])
libcamera_sources += libcamera_public_headers
libcamera_sources += libcamera_generated_ipa_headers
libcamera_sources += libcamera_tracepoint_header
includes = [
libcamera_includes,
]
subdir('pipeline')
subdir('proxy')
libatomic = cc.find_library('atomic', required : false)
libdl = cc.find_library('dl')
libgnutls = cc.find_library('gnutls', required : true)
libudev = dependency('libudev', required : false)
if libgnutls.found()
config_h.set('HAVE_GNUTLS', 1)
endif
if liblttng.found()
config_h.set('HAVE_TRACING', 1)
libcamera_sources += files(['tracepoints.cpp'])
endif
if libudev.found()
config_h.set('HAVE_LIBUDEV', 1)
libcamera_sources += files([
'device_enumerator_udev.cpp',
])
endif
control_sources = []
foreach source : control_source_files
input_files = files(source +'.yaml', source + '.cpp.in')
control_sources += custom_target(source + '_cpp',
input : input_files,
output : source + '.cpp',
command : [gen_controls, '-o', '@OUTPUT@', '@INPUT@'])
endforeach
libcamera_sources += control_sources
gen_version = join_paths(meson.source_root(), 'utils', 'gen-version.sh')
version_cpp = vcs_tag(command : [gen_version, meson.build_root()],
input : 'version.cpp.in',
output : 'version.cpp',
fallback : meson.project_version())
libcamera_sources += version_cpp
if ipa_sign_module
ipa_pub_key_cpp = custom_target('ipa_pub_key_cpp',
input : [ipa_priv_key, 'ipa_pub_key.cpp.in'],
output : 'ipa_pub_key.cpp',
command : [gen_ipa_pub_key, '@INPUT@', '@OUTPUT@'])
libcamera_sources += ipa_pub_key_cpp
endif
libcamera_deps = [
libatomic,
libdl,
libgnutls,
liblttng,
libudev,
dependency('threads'),
]
libcamera_link_with = []
if android_enabled
libcamera_sources += android_hal_sources
includes += android_includes
libcamera_link_with += android_camera_metadata
libcamera_deps += android_deps
endif
# We add '/' to the build_rpath as a 'safe' path to act as a boolean flag.
# The build_rpath is stripped at install time by meson, so we determine at
# runtime if the library is running from an installed location by checking
# for the presence or abscence of the dynamic tag.
libcamera = shared_library('camera',
libcamera_sources,
install : true,
link_with : libcamera_link_with,
cpp_args : libcamera_cpp_args,
include_directories : includes,
objects : libcamera_objects,
build_rpath : '/',
dependencies : libcamera_deps)
libcamera_dep = declare_dependency(sources : [
libcamera_ipa_headers,
libcamera_public_headers,
],
include_directories : libcamera_includes,
link_with : libcamera)
subdir('proxy/worker')