summaryrefslogtreecommitdiff
path: root/src/v4l2
AgeCommit message (Expand)Author
2020-03-18libcamera: PixelFormat: Turn into a classNiklas Söderlund
2020-03-18libcamera: pixelformats: include linux/drm_fourcc.hNiklas Söderlund
2020-03-08v4l2: v4l2_camera_proxy: Fix sign compare compilation errorLaurent Pinchart
2020-03-08v4l2: v4l2_compat: Use correct libcamera_dep dependencyLaurent Pinchart
2020-02-13v4l2: Remove internal threadLaurent Pinchart
2020-01-20v4l2: Extend device caps with V4L2_CAP_STREAMINGNicolas Dufresne
2020-01-14libcamera: Switch from utils::make_unique to std::make_uniqueLaurent Pinchart
2020-01-12libcamera: camera: Remove the prepared stateNiklas Söderlund
2020-01-12libcamera: Switch to FrameBuffer interfaceNiklas Söderlund
2020-01-12libcamera: buffer: Move captured metadata to FrameMetadataNiklas Söderlund
2020-01-12libcamera: request: In addBuffer() do not fetch stream from BufferNiklas Söderlund
2020-01-12libcamera: buffer: Switch from Plane to FrameBuffer::PlaneNiklas Söderlund
2020-01-12v4l2: camera_proxy: Call V4L2Camera::getBufferFd() directlyLaurent Pinchart
2020-01-12v4l2: camera: Handle memory mapping of buffers directlyNiklas Söderlund
2020-01-12v4l2: Rename FrameMetadata to V4L2FrameMetadataNiklas Söderlund
2020-01-09v4l2: camera_proxy: Fix compilation error use of undeclared identifier 'ret'Niklas Söderlund
2020-01-08v4l2: camera_proxy: Align trace message styleJacopo Mondi
2020-01-08v4l2: camera_proxy: Break out try_fmtJacopo Mondi
2020-01-08v4l2: camera_proxy: Fix try_fmt format conversionJacopo Mondi
2020-01-08v4l2: camera_proxy: Include <array>Laurent Pinchart
2020-01-07v4l2: camera_proxy: Create format info arrayLaurent Pinchart
2020-01-07v4l2: camera_proxy: Rationalize arguments to format helpersLaurent Pinchart
2020-01-07v4l2: compat_manager: Move file operations to new struct FileOperationsLaurent Pinchart
2020-01-07v4l2: Use Object::invokeMethod() return valueLaurent Pinchart
2020-01-04v4l2: Fix compilation of __open_2() and __openat_2() with gccLaurent Pinchart
2020-01-03v4l2: v4l2_compat: Add V4L2 compatibility layerPaul Elder
; command. meson.add_dist_script('utils/run-dist.sh') # Configure the build environment. cc = meson.get_compiler('c') cxx = meson.get_compiler('cpp') config_h = configuration_data() if cc.has_header_symbol('unistd.h', 'issetugid') config_h.set('HAVE_ISSETUGID', 1) endif if cc.has_header_symbol('stdlib.h', 'secure_getenv', prefix : '#define _GNU_SOURCE') config_h.set('HAVE_SECURE_GETENV', 1) endif common_arguments = [ '-Wshadow', '-include', 'config.h', ] c_arguments = [] cpp_arguments = [] if cc.get_id() == 'clang' if cc.version().version_compare('<9') error('clang version is too old, libcamera requires 9.0 or newer') endif # Turn _FORTIFY_SOURCE by default on optimised builds (as it requires -O1 # or higher). This is needed on clang only as gcc enables it by default. if get_option('optimization') != '0' common_arguments += [ '-D_FORTIFY_SOURCE=2', ] endif # Use libc++ by default if available instead of libstdc++ when compiling # with clang. if cc.find_library('libc++', required: false).found() cpp_arguments += [ '-stdlib=libc++', ] endif cpp_arguments += [ '-Wextra-semi', '-Wthread-safety', ] endif if cc.get_id() == 'gcc' if cc.version().version_compare('<8') error('gcc version is too old, libcamera requires 8.0 or newer') endif # On gcc 8, the file system library is provided in a separate static # library. if cc.version().version_compare('<9') cpp_arguments += [ '-lstdc++fs', ] endif # gcc 7.1 introduced processor-specific ABI breakages related to parameter # passing on ARM platforms. This generates a large number of messages # during compilation. Silence them. if host_machine.cpu_family() == 'arm' cpp_arguments += [ '-Wno-psabi', ] endif endif # We use C99 designated initializers for arrays as C++ has no equivalent # feature. Both gcc and clang support this extension, but recent # versions of clang generate a warning that needs to be disabled. if cc.has_argument('-Wno-c99-designator') common_arguments += [ '-Wno-c99-designator', ] endif c_arguments += common_arguments cpp_arguments += common_arguments 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') # Sub-directories fill py_modules with their dependencies. py_modules = [] # Libraries used by multiple components liblttng = cc.find_library('lttng-ust', required : get_option('tracing')) # Pipeline handlers # # Tests require the vimc pipeline handler, include it automatically when tests # are enabled. pipelines = get_option('pipelines') if get_option('test') and 'vimc' not in pipelines message('Enabling vimc pipeline handler to support tests') pipelines += ['vimc'] endif # Utilities are parsed first to provide support for other components. subdir('utils') subdir('include') subdir('src') # The documentation and test components are optional and can be disabled # through configuration values. They are enabled by default. subdir('Documentation') subdir('test') if not meson.is_cross_build() kernel_version_req = '>= 5.0.0' kernel_version = run_command('uname', '-r').stdout().strip() if not kernel_version.version_compare(kernel_version_req) warning('The current running kernel version @0@ is too old to run libcamera.' .format(kernel_version)) warning('If you intend to use libcamera on this machine, please upgrade to a kernel @0@.' .format(kernel_version_req)) endif endif # Create a symlink from the build root to the source root. This is used when # running libcamera from the build directory to locate resources in the source # directory (such as IPA configuration files). run_command('ln', '-fsT', meson.source_root(), meson.build_root() / 'source') configure_file(output : 'config.h', configuration : config_h) # Check for python installation and modules. py_mod = import('python') py_mod.find_installation('python3', modules: py_modules) ## Summarise Configurations summary({ 'Enabled pipelines': pipelines, 'Enabled IPA modules': ipa_modules, 'Tracing support': tracing_enabled, 'Android support': android_enabled, 'GStreamer support': gst_enabled, 'V4L2 emulation support': v4l2_enabled, 'cam application': cam_enabled, 'qcam application': qcam_enabled, 'lc-compliance application': lc_compliance_enabled, 'Unit tests': test_enabled, }, section : 'Configuration', bool_yn : true)