[libcamera-devel] [PATCH 0/6] cam: add --format option to configure a stream

Laurent Pinchart laurent.pinchart at ideasonboard.com
Thu Jan 31 10:56:57 CET 2019


Hello,

On Wed, Jan 30, 2019 at 06:05:34PM +0100, Niklas Söderlund wrote:
> On 2019-01-30 13:46:17 +0000, Kieran Bingham wrote:
> > Hi Niklas,
> > 
> > When I rebase a series with these patches included - it fails to compile
> > each patch cleanly using the -x command.
> > 
> >  git rebase -i $BASECOMMIT -x "cd build && ninja"
> > 
> > 
> > Now I don't think that's a fault of this series, but a fault of the
> > src/cam/meson.build file not specifying the options.h header as part of
> > the sources. I think that is causing the main.cpp not to get
> > rebuilt/re-linked when there are further changes here to the options
> > file ...

$ ninja -v
ninja: no work to do.
$ touch ../src/cam/options.h
$ ninja -v
[1/3] c++ -Isrc/cam/src at cam@@cam at exe -Isrc/cam -I../src/cam -Iinclude -I../include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++11 -g -Wno-unused-parameter  -MD -MQ 'src/cam/src at cam@@cam at exe/main.cpp.o' -MF 'src/cam/src at cam@@cam at exe/main.cpp.o.d' -o 'src/cam/src at cam@@cam at exe/main.cpp.o' -c ../src/cam/main.cpp
[2/3] c++ -Isrc/cam/src at cam@@cam at exe -Isrc/cam -I../src/cam -Iinclude -I../include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++11 -g -Wno-unused-parameter  -MD -MQ 'src/cam/src at cam@@cam at exe/options.cpp.o' -MF 'src/cam/src at cam@@cam at exe/options.cpp.o.d' -o 'src/cam/src at cam@@cam at exe/options.cpp.o' -c ../src/cam/options.cpp
[3/3] c++  -o src/cam/cam 'src/cam/src at cam@@cam at exe/event_loop.cpp.o' 'src/cam/src at cam@@cam at exe/main.cpp.o' 'src/cam/src at cam@@cam at exe/options.cpp.o' -Wl,--no-undefined -Wl,--as-needed -Wl,--start-group src/libcamera/libcamera.so -Wl,--end-group '-Wl,-rpath,$ORIGIN/../libcamera' -Wl,-rpath-link,src/libcamera

Am I missing something ?

> > However - I'm surprised, as I would have expected meson to do some sort
> > of include depend checking or generation.
> > 
> > Have you experienced anything similar here? or am I going crazy.
> 
> I have experienced it, and not only with the cam tool but the library as 
> a whole. As I understand it we don't list any header files as sources.  
> We just list them to feed them to Doxygen if I understand it correctly.  
> 
> I had it on my todo list to figure out why, but have not gotten around 
> to do it as other things have been higher on my list and my workaround 
> of using ccache and
> 
>     git rebase .. --exec "cd build && ninja clean && ninja"
> 
> allowed me to move forward :-)
> 
> > 
> > Now I think about it - the options.cpp changes too - so it should still
> > rebuild. Ugh.. so I'm not sure what the underlying fault is yet.
> 
> How do you think we should solve this? Looking around it seems other 
> people are including there header files in the source file list, should 
> we do the same?
> 
> > On 28/01/2019 00:41, Niklas Söderlund wrote:
> >> Hi,
> >> 
> >> This series aims to add a --format option to the cam utility so that it 
> >> can set the format of a stream of a specified camera. To do this in an 
> >> efficient manner a new key=value parser is needed to understand the 
> >> arguments given to the new option, example
> >> 
> >>     cam --camera mycam --format width=800,height=600
> >> 
> >> This series adds such a parser and then moves on to adding the new 
> >> operation to the cam utility in 6/6. This series depends on [1] for 6/6 
> >> which needs the stream API in the camera object to actually set the 
> >> requested format.
> >> 
> >> 1. [PATCH v3 0/6] libcamera: add basic support for streams and format 
> >>    configuration
> >> 
> >> Niklas Söderlund (6):
> >>   cam: options: move enum OptionArgument
> >>   cam: options: create a template class for options
> >>   cam: options: return if addOption() succeeds or not
> >>   cam: options: remove OptionsParser::options_
> >>   cam: options: add a key=value parser
> >>   cam: add --format option to configure a stream
> >> 
> >>  src/cam/main.cpp    | 107 ++++++++++++++++++++++----
> >>  src/cam/options.cpp | 178 +++++++++++++++++++++++++++++++++++++++-----
> >>  src/cam/options.h   |  70 +++++++++++++----
> >>  3 files changed, 305 insertions(+), 50 deletions(-)

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list