Implement and expose the symbol and functions that the new cros camera API requires. Since we don't actually need them, leave them empty. Update meson accordingly. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
164 lines
4.5 KiB
Meson
164 lines
4.5 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',
|
|
'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,
|
|
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')
|