Message ID | 20221202210818.343046-1-Rauch.Christian@gmx.de |
---|---|
State | Rejected |
Headers | show |
Series |
|
Related | show |
Hi Christian, Quoting Christian Rauch via libcamera-devel (2022-12-02 21:08:18) > Defining libraries via shared_library() prevents compiling libcamera as > static library. The meson project recommends using library() instead of > shared_library(), static_library() or both_libraries(): > https://mesonbuild.com/Reference-manual_functions.html#library I'm afraid I'm a bit worried by this patch. It's not clear what you're trying to solve? libcamera doesn't really fit well to static library usage in my opinion. (At least not right now). Because libcamera dynamically loads IPA modules, which are identified by a configured path - the implementation of the both the library and the IPA's should 'match'. We do have an ability to version match IPA components, but I don't think it's used right now. Perhaps we should tie that to the version number of libcamera at least. (It was supposed to be an IPA interface specific version number). If you statically link in libcamera to an application, you won't be able to statically link in the IPA modules, and I would be worried that this would cause support issues in the future. If you are trying to ensure your application does not use a distribution provided package of libcamera, I would recommend instead building a custom libcamera with a custom -Dprefix=/usr/local/mylibcamera/ and using that to link against with your application. Then all the search paths will be correct, and it would function without the distribution installed package. -- Kieran > Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de> > --- > src/libcamera/base/meson.build | 18 +++++++++--------- > src/libcamera/meson.build | 18 +++++++++--------- > 2 files changed, 18 insertions(+), 18 deletions(-) > > diff --git a/src/libcamera/base/meson.build b/src/libcamera/base/meson.build > index 7a7fd7e4..91dc1e71 100644 > --- a/src/libcamera/base/meson.build > +++ b/src/libcamera/base/meson.build > @@ -48,15 +48,15 @@ libcamera_base_deps = [ > # the use of headers which must not be exposed to the libcamera public api. > libcamera_base_args = [ '-DLIBCAMERA_BASE_PRIVATE' ] > > -libcamera_base_lib = shared_library('libcamera-base', > - [libcamera_base_sources, libcamera_base_headers], > - version : libcamera_version, > - soversion : libcamera_soversion, > - name_prefix : '', > - install : true, > - cpp_args : libcamera_base_args, > - include_directories : libcamera_includes, > - dependencies : libcamera_base_deps) > +libcamera_base_lib = library('libcamera-base', > + [libcamera_base_sources, libcamera_base_headers], > + version : libcamera_version, > + soversion : libcamera_soversion, > + name_prefix : '', > + install : true, > + cpp_args : libcamera_base_args, > + include_directories : libcamera_includes, > + dependencies : libcamera_base_deps) > > libcamera_base = declare_dependency(sources : [ > libcamera_base_headers, > diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build > index 0494e808..cd1bf4ed 100644 > --- a/src/libcamera/meson.build > +++ b/src/libcamera/meson.build > @@ -163,15 +163,15 @@ libcamera_deps = [ > # runtime if the library is running from an installed location by checking > # for the presence or abscence of the dynamic tag. > > -libcamera = shared_library('libcamera', > - libcamera_sources, > - version : libcamera_version, > - soversion : libcamera_soversion, > - name_prefix : '', > - install : true, > - include_directories : includes, > - build_rpath : '/', > - dependencies : libcamera_deps) > +libcamera = library('libcamera', > + libcamera_sources, > + version : libcamera_version, > + soversion : libcamera_soversion, > + name_prefix : '', > + install : true, > + include_directories : includes, > + build_rpath : '/', > + dependencies : libcamera_deps) > > libcamera_public = declare_dependency(sources : [ > libcamera_ipa_headers, > -- > 2.34.1 >
diff --git a/src/libcamera/base/meson.build b/src/libcamera/base/meson.build index 7a7fd7e4..91dc1e71 100644 --- a/src/libcamera/base/meson.build +++ b/src/libcamera/base/meson.build @@ -48,15 +48,15 @@ libcamera_base_deps = [ # the use of headers which must not be exposed to the libcamera public api. libcamera_base_args = [ '-DLIBCAMERA_BASE_PRIVATE' ] -libcamera_base_lib = shared_library('libcamera-base', - [libcamera_base_sources, libcamera_base_headers], - version : libcamera_version, - soversion : libcamera_soversion, - name_prefix : '', - install : true, - cpp_args : libcamera_base_args, - include_directories : libcamera_includes, - dependencies : libcamera_base_deps) +libcamera_base_lib = library('libcamera-base', + [libcamera_base_sources, libcamera_base_headers], + version : libcamera_version, + soversion : libcamera_soversion, + name_prefix : '', + install : true, + cpp_args : libcamera_base_args, + include_directories : libcamera_includes, + dependencies : libcamera_base_deps) libcamera_base = declare_dependency(sources : [ libcamera_base_headers, diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build index 0494e808..cd1bf4ed 100644 --- a/src/libcamera/meson.build +++ b/src/libcamera/meson.build @@ -163,15 +163,15 @@ libcamera_deps = [ # runtime if the library is running from an installed location by checking # for the presence or abscence of the dynamic tag. -libcamera = shared_library('libcamera', - libcamera_sources, - version : libcamera_version, - soversion : libcamera_soversion, - name_prefix : '', - install : true, - include_directories : includes, - build_rpath : '/', - dependencies : libcamera_deps) +libcamera = library('libcamera', + libcamera_sources, + version : libcamera_version, + soversion : libcamera_soversion, + name_prefix : '', + install : true, + include_directories : includes, + build_rpath : '/', + dependencies : libcamera_deps) libcamera_public = declare_dependency(sources : [ libcamera_ipa_headers,
Defining libraries via shared_library() prevents compiling libcamera as static library. The meson project recommends using library() instead of shared_library(), static_library() or both_libraries(): https://mesonbuild.com/Reference-manual_functions.html#library Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de> --- src/libcamera/base/meson.build | 18 +++++++++--------- src/libcamera/meson.build | 18 +++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) -- 2.34.1