diff --git a/Documentation/Doxyfile.in b/Documentation/Doxyfile.in index 88dfcddae..e4f0cd426 100644 --- a/Documentation/Doxyfile.in +++ b/Documentation/Doxyfile.in @@ -66,6 +66,8 @@ EXCLUDE_SYMBOLS = libcamera::BoundMethodArgs \ *::details \ std::* +EXCLUDE_SYMLINKS = YES + HTML_OUTPUT = api-html GENERATE_LATEX = NO diff --git a/meson.build b/meson.build index 2c6173b4f..d8a951a1f 100644 --- a/meson.build +++ b/meson.build @@ -26,6 +26,38 @@ endif libcamera_version = libcamera_git_version.split('+')[0] +# A shallow clone, or a clone without a reachable tag equivalent to the +# meson.project_version() could leave the project in a mis-described state. +# Produce a warning in this event, and fix to a best effort. +if libcamera_version != meson.project_version() + warning('The sources disagree about the version: ' + + libcamera_version + ' != ' + meson.project_version()) + + summary({'libcamera git version' : libcamera_git_version, + 'Source version match' : false, + }, + bool_yn : true, section : 'Versions') + + libcamera_git_version = libcamera_git_version.replace(libcamera_version, + meson.project_version()) + libcamera_version = meson.project_version() + + # Append a marker to show we have modified this version string + libcamera_git_version += '-nvm' +endif + +# Until we make ABI compatible releases, the full libcamera version is used as +# the soname. No ABI/API compatibility is guaranteed between releases (x.y.z). +# +# When automatic ABI based detection is used to increment the version, this +# will bump the minor number (x.y). +# +# When we declare a stable ABI/API we will provide a 1.0 release and the +# soversion at that point will be the 'major' release value (x). +libcamera_soversion = libcamera_version + +summary({ 'Sources': libcamera_git_version, }, section : 'Versions') + # This script generates the .tarball-version file on a 'meson dist' command. meson.add_dist_script('utils/run-dist.sh') diff --git a/src/libcamera/base/meson.build b/src/libcamera/base/meson.build index 7a75914ab..7a7fd7e4c 100644 --- a/src/libcamera/base/meson.build +++ b/src/libcamera/base/meson.build @@ -51,6 +51,7 @@ 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, diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build index 7fcbb2ddc..5f39d2e2c 100644 --- a/src/libcamera/meson.build +++ b/src/libcamera/meson.build @@ -161,6 +161,7 @@ libcamera_deps = [ libcamera = shared_library('libcamera', libcamera_sources, version : libcamera_version, + soversion : libcamera_soversion, name_prefix : '', install : true, include_directories : includes,