[{"id":2660,"web_url":"https://patchwork.libcamera.org/comment/2660/","msgid":"<20190915110214.wzqyndgtxn2fqhvp@uno.localdomain>","date":"2019-09-15T11:19:38","subject":"Re: [libcamera-devel] [PATCH] libcamera: Move ipa includes to the\n\tsame level as libcamera","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Laurent\n\nOn Sun, Sep 15, 2019 at 02:48:06AM +0300, Laurent Pinchart wrote:\n> The ipa includes are located in include/libcamera/ipa/. This gives an\n> incorrect impression that they are a sub-part of the rest of the\n> libcamera API, while they are the API towards the IPA the same way that\n> include/libcamera/ contains the API towards applications. To clarify\n> this, move them to include/ipa/.\n>\n> The IPA headers are however still part of libcamera, so installing them\n> to ${prefix}/include/ipa/ would make little sense. To fix this, move the\n> application facing API to ${prefix}/include/libcamera/libcamera/ when\n> installed, and the IPA to ${prefix}/include/libcamera/ipa/. When major\n> versions of libcamera will be released, they could then be installed\n> side by side in ${prefix}/include/libcamera-${version}/.\n>\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nLooks good!\n\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\nThanks\n  j\n> ---\n>  Documentation/Doxyfile.in                             |  4 +++-\n>  Documentation/meson.build                             |  1 +\n>  include/{libcamera => }/ipa/ipa_interface.h           |  0\n>  include/{libcamera => }/ipa/ipa_module_info.h         |  0\n>  include/ipa/meson.build                               |  7 +++++++\n>  include/libcamera/meson.build                         | 10 +++++-----\n>  include/meson.build                                   |  3 +++\n>  src/ipa/ipa_dummy.cpp                                 |  4 ++--\n>  src/ipa/ipa_dummy_isolate.cpp                         |  4 ++--\n>  src/libcamera/include/ipa_manager.h                   |  4 ++--\n>  src/libcamera/include/ipa_module.h                    |  4 ++--\n>  src/libcamera/include/ipa_proxy.h                     |  2 +-\n>  src/libcamera/ipa_interface.cpp                       |  2 +-\n>  src/libcamera/meson.build                             |  2 +-\n>  src/libcamera/pipeline/vimc.cpp                       |  4 ++--\n>  src/libcamera/proxy/ipa_proxy_linux.cpp               |  4 ++--\n>  src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp |  2 +-\n>  17 files changed, 35 insertions(+), 22 deletions(-)\n>  rename include/{libcamera => }/ipa/ipa_interface.h (100%)\n>  rename include/{libcamera => }/ipa/ipa_module_info.h (100%)\n>  create mode 100644 include/ipa/meson.build\n>\n> diff --git a/Documentation/Doxyfile.in b/Documentation/Doxyfile.in\n> index db939abc8319..ecc058eec683 100644\n> --- a/Documentation/Doxyfile.in\n> +++ b/Documentation/Doxyfile.in\n> @@ -791,7 +791,9 @@ WARN_LOGFILE           =\n>  # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING\n>  # Note: If this tag is empty the current directory is searched.\n>\n> -INPUT                  = \"@TOP_SRCDIR@/include/libcamera\" \"@TOP_SRCDIR@/src/libcamera\"\n> +INPUT                  = \"@TOP_SRCDIR@/include/ipa\" \\\n> +\t\t\t \"@TOP_SRCDIR@/include/libcamera\" \\\n> +\t\t\t \"@TOP_SRCDIR@/src/libcamera\"\n>\n>  # This tag can be used to specify the character encoding of the source files\n>  # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses\n> diff --git a/Documentation/meson.build b/Documentation/meson.build\n> index a560d02abfa5..4ff3fbeb0674 100644\n> --- a/Documentation/meson.build\n> +++ b/Documentation/meson.build\n> @@ -21,6 +21,7 @@ if doxygen.found()\n>                    input : [\n>                        doxyfile,\n>                        libcamera_api,\n> +                      libcamera_ipa_api,\n>                        libcamera_headers,\n>                        libcamera_sources,\n>                    ],\n> diff --git a/include/libcamera/ipa/ipa_interface.h b/include/ipa/ipa_interface.h\n> similarity index 100%\n> rename from include/libcamera/ipa/ipa_interface.h\n> rename to include/ipa/ipa_interface.h\n> diff --git a/include/libcamera/ipa/ipa_module_info.h b/include/ipa/ipa_module_info.h\n> similarity index 100%\n> rename from include/libcamera/ipa/ipa_module_info.h\n> rename to include/ipa/ipa_module_info.h\n> diff --git a/include/ipa/meson.build b/include/ipa/meson.build\n> new file mode 100644\n> index 000000000000..a0ce96ba96c3\n> --- /dev/null\n> +++ b/include/ipa/meson.build\n> @@ -0,0 +1,7 @@\n> +libcamera_ipa_api = files([\n> +    'ipa_interface.h',\n> +    'ipa_module_info.h',\n> +])\n> +\n> +install_headers(libcamera_ipa_api,\n> +                subdir: join_paths(libcamera_include_dir, 'ipa'))\n> diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n> index a8a38a9b1db7..868f1a6bf1ab 100644\n> --- a/include/libcamera/meson.build\n> +++ b/include/libcamera/meson.build\n> @@ -8,8 +8,6 @@ libcamera_api = files([\n>      'event_dispatcher.h',\n>      'event_notifier.h',\n>      'geometry.h',\n> -    'ipa/ipa_interface.h',\n> -    'ipa/ipa_module_info.h',\n>      'logging.h',\n>      'object.h',\n>      'request.h',\n> @@ -18,6 +16,8 @@ libcamera_api = files([\n>      'timer.h',\n>  ])\n>\n> +include_dir = join_paths(libcamera_include_dir, 'libcamera')\n> +\n>  gen_header = files('gen-header.sh')\n>\n>  libcamera_h = custom_target('gen-header',\n> @@ -25,7 +25,7 @@ libcamera_h = custom_target('gen-header',\n>                              output : 'libcamera.h',\n>                              command : [gen_header, meson.current_source_dir(), '@OUTPUT@'],\n>                              install : true,\n> -                            install_dir : 'include/libcamera')\n> +                            install_dir : join_paths('include', include_dir))\n>\n>  version = libcamera_version.split('.')\n>  libcamera_version_config = configuration_data()\n> @@ -36,7 +36,7 @@ libcamera_version_config.set('LIBCAMERA_VERSION_PATCH', version[2])\n>  configure_file(input : 'version.h.in',\n>                 output : 'version.h',\n>                 configuration : libcamera_version_config,\n> -               install_dir : 'include/libcamera')\n> +               install_dir : join_paths('include', include_dir))\n>\n>  install_headers(libcamera_api,\n> -                subdir : 'libcamera')\n> +                subdir : include_dir)\n> diff --git a/include/meson.build b/include/meson.build\n> index a89c0d7f9e40..42b2453445b5 100644\n> --- a/include/meson.build\n> +++ b/include/meson.build\n> @@ -1,2 +1,5 @@\n> +libcamera_include_dir = 'libcamera'\n> +\n>  subdir('android')\n> +subdir('ipa')\n>  subdir('libcamera')\n> diff --git a/src/ipa/ipa_dummy.cpp b/src/ipa/ipa_dummy.cpp\n> index 4c8b6657689d..9313aabd2db8 100644\n> --- a/src/ipa/ipa_dummy.cpp\n> +++ b/src/ipa/ipa_dummy.cpp\n> @@ -7,8 +7,8 @@\n>\n>  #include <iostream>\n>\n> -#include <libcamera/ipa/ipa_interface.h>\n> -#include <libcamera/ipa/ipa_module_info.h>\n> +#include <ipa/ipa_interface.h>\n> +#include <ipa/ipa_module_info.h>\n>\n>  namespace libcamera {\n>\n> diff --git a/src/ipa/ipa_dummy_isolate.cpp b/src/ipa/ipa_dummy_isolate.cpp\n> index 24434e85d318..cd66626df2df 100644\n> --- a/src/ipa/ipa_dummy_isolate.cpp\n> +++ b/src/ipa/ipa_dummy_isolate.cpp\n> @@ -8,8 +8,8 @@\n>\n>  #include <iostream>\n>\n> -#include <libcamera/ipa/ipa_interface.h>\n> -#include <libcamera/ipa/ipa_module_info.h>\n> +#include <ipa/ipa_interface.h>\n> +#include <ipa/ipa_module_info.h>\n>\n>  namespace libcamera {\n>\n> diff --git a/src/libcamera/include/ipa_manager.h b/src/libcamera/include/ipa_manager.h\n> index 310ce7c85e84..126f8babbc8f 100644\n> --- a/src/libcamera/include/ipa_manager.h\n> +++ b/src/libcamera/include/ipa_manager.h\n> @@ -9,8 +9,8 @@\n>\n>  #include <vector>\n>\n> -#include <libcamera/ipa/ipa_interface.h>\n> -#include <libcamera/ipa/ipa_module_info.h>\n> +#include <ipa/ipa_interface.h>\n> +#include <ipa/ipa_module_info.h>\n>\n>  #include \"ipa_module.h\"\n>  #include \"pipeline_handler.h\"\n> diff --git a/src/libcamera/include/ipa_module.h b/src/libcamera/include/ipa_module.h\n> index 18e9223f028d..97737587ab3a 100644\n> --- a/src/libcamera/include/ipa_module.h\n> +++ b/src/libcamera/include/ipa_module.h\n> @@ -10,8 +10,8 @@\n>  #include <memory>\n>  #include <string>\n>\n> -#include <libcamera/ipa/ipa_interface.h>\n> -#include <libcamera/ipa/ipa_module_info.h>\n> +#include <ipa/ipa_interface.h>\n> +#include <ipa/ipa_module_info.h>\n>\n>  #include \"pipeline_handler.h\"\n>\n> diff --git a/src/libcamera/include/ipa_proxy.h b/src/libcamera/include/ipa_proxy.h\n> index ac57699be949..72216662e373 100644\n> --- a/src/libcamera/include/ipa_proxy.h\n> +++ b/src/libcamera/include/ipa_proxy.h\n> @@ -11,7 +11,7 @@\n>  #include <string>\n>  #include <vector>\n>\n> -#include <libcamera/ipa/ipa_interface.h>\n> +#include <ipa/ipa_interface.h>\n>\n>  #include \"ipa_module.h\"\n>  #include \"utils.h\"\n> diff --git a/src/libcamera/ipa_interface.cpp b/src/libcamera/ipa_interface.cpp\n> index 9d30da29228f..d7d8ca8881ef 100644\n> --- a/src/libcamera/ipa_interface.cpp\n> +++ b/src/libcamera/ipa_interface.cpp\n> @@ -5,7 +5,7 @@\n>   * ipa_interface.cpp - Image Processing Algorithm interface\n>   */\n>\n> -#include <libcamera/ipa/ipa_interface.h>\n> +#include <ipa/ipa_interface.h>\n>\n>  /**\n>   * \\file ipa_interface.h\n> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n> index 0706a08b270b..0916bc411360 100644\n> --- a/src/libcamera/meson.build\n> +++ b/src/libcamera/meson.build\n> @@ -120,7 +120,7 @@ libcamera = shared_library('camera',\n>                             include_directories : includes,\n>                             dependencies : libcamera_deps)\n>\n> -libcamera_dep = declare_dependency(sources : [libcamera_api, libcamera_h],\n> +libcamera_dep = declare_dependency(sources : [libcamera_api, libcamera_ipa_api, libcamera_h],\n>                                     include_directories : libcamera_includes,\n>                                     link_with : libcamera)\n>\n> diff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp\n> index f8f91d6219b1..f26a91f86ec1 100644\n> --- a/src/libcamera/pipeline/vimc.cpp\n> +++ b/src/libcamera/pipeline/vimc.cpp\n> @@ -12,10 +12,10 @@\n>\n>  #include <linux/media-bus-format.h>\n>\n> +#include <ipa/ipa_interface.h>\n> +#include <ipa/ipa_module_info.h>\n>  #include <libcamera/camera.h>\n>  #include <libcamera/controls.h>\n> -#include <libcamera/ipa/ipa_interface.h>\n> -#include <libcamera/ipa/ipa_module_info.h>\n>  #include <libcamera/request.h>\n>  #include <libcamera/stream.h>\n>\n> diff --git a/src/libcamera/proxy/ipa_proxy_linux.cpp b/src/libcamera/proxy/ipa_proxy_linux.cpp\n> index f881aab5b2e1..83a7425077ea 100644\n> --- a/src/libcamera/proxy/ipa_proxy_linux.cpp\n> +++ b/src/libcamera/proxy/ipa_proxy_linux.cpp\n> @@ -7,8 +7,8 @@\n>\n>  #include <vector>\n>\n> -#include <libcamera/ipa/ipa_interface.h>\n> -#include <libcamera/ipa/ipa_module_info.h>\n> +#include <ipa/ipa_interface.h>\n> +#include <ipa/ipa_module_info.h>\n>\n>  #include \"ipa_module.h\"\n>  #include \"ipa_proxy.h\"\n> diff --git a/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp b/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp\n> index ffba3ae4de80..a10761e52b32 100644\n> --- a/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp\n> +++ b/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp\n> @@ -9,8 +9,8 @@\n>  #include <sys/types.h>\n>  #include <unistd.h>\n>\n> +#include <ipa/ipa_interface.h>\n>  #include <libcamera/event_dispatcher.h>\n> -#include <libcamera/ipa/ipa_interface.h>\n>  #include <libcamera/logging.h>\n>\n>  #include \"ipa_module.h\"\n> --\n> Regards,\n>\n> Laurent Pinchart\n>\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<jacopo@jmondi.org>","Received":["from relay6-d.mail.gandi.net (relay6-d.mail.gandi.net\n\t[217.70.183.198])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id F32EF60BB0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 15 Sep 2019 13:18:03 +0200 (CEST)","from uno.localdomain (bl7-67-185.dsl.telepac.pt [85.240.67.185])\n\t(Authenticated sender: jacopo@jmondi.org)\n\tby relay6-d.mail.gandi.net (Postfix) with ESMTPSA id E4DCFC0004;\n\tSun, 15 Sep 2019 11:18:02 +0000 (UTC)"],"X-Originating-IP":"85.240.67.185","Date":"Sun, 15 Sep 2019 13:19:38 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190915110214.wzqyndgtxn2fqhvp@uno.localdomain>","References":"<20190914234806.5205-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha256;\n\tprotocol=\"application/pgp-signature\"; boundary=\"3yigg5fq45r2vzlh\"","Content-Disposition":"inline","In-Reply-To":"<20190914234806.5205-1-laurent.pinchart@ideasonboard.com>","User-Agent":"NeoMutt/20180716","Subject":"Re: [libcamera-devel] [PATCH] libcamera: Move ipa includes to the\n\tsame level as libcamera","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Sun, 15 Sep 2019 11:18:04 -0000"}}]