a58a94e4c2
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>
166 lines
4.6 KiB
Meson
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')
|