Commit Graph

8966 Commits

Author SHA1 Message Date
Rosen Penev
2e33dad1d1 easyaccess const changes
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-26 08:17:33 -07:00
Rosen Penev
b92b121532 meson: remove now unused checks
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-25 08:04:14 -07:00
Rosen Penev
632536a55a meson: build samples
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-25 08:04:14 -07:00
Rosen Penev
848da172da make runner.py executable
Otherwise meson will not find it.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-25 08:04:14 -07:00
Rosen Penev
0c0dabfcc7 geotag: add GCC7 support
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-25 08:04:14 -07:00
Rosen Penev
357d970425 get rid of EXV_CALL_MEMBER_FN
std::invoke can be used.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-25 08:03:39 -07:00
Eli Schwartz
2108ae671a meson: compile convert.cpp separately, with just iconv
Compiling this file with all dependencies as part of the main library
causes it to have the include directories of all dependencies, but iconv
is a bit of a special case: it can have a libc builtin or an external
library version. The external library might be installed to the same
directory as other dependencies, for example on FreeBSD -- but if exiv2
is not supposed to be built with GNU libiconv, then it will expect to
see the libc builtin.

The leaky include directories means that iconv.h gets pulled in from the
GNU libiconv version instead, though, which then forces -liconv to be
necessary for no reason.

There are two general solutions to ensuring that everything links
correctly:

- expect exiv2 to be built with *global* -I/usr/local/include -L/usr/local/lib
  thus forcing the use of GNU libiconv

- carefully compiling the iconv support without any other dependencies

Let's do the latter since it allows for more choice and is easier to
enforce.
2023-03-24 16:19:25 -07:00
Rosen Penev
05f2731d34 std::array removals
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-23 13:29:21 -07:00
Rosen Penev
8fe2ae6030 remove constexpr
const_iterator is not constexpr. clang 15 on MSYS2 fails to compile
because of this.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-23 13:29:21 -07:00
Rosen Penev
513b0e8bbd constexpr some constructors
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-22 06:11:10 -07:00
Rosen Penev
0aed79ff57 remove several constructors
Just direct initialize

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-22 06:11:10 -07:00
Rosen Penev
024e026bbb clang: small fixes
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-22 06:11:10 -07:00
Rosen Penev
9ae339d39f clang: fix various documentation errors
Found with -Wdocumentation

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-22 06:11:10 -07:00
Miloš Komarčević
18e11ac1b6
Explicitly include stdint (#2558) 2023-03-22 11:55:52 +01:00
Rosen Penev
22b12012a6 more SonarLint cleanups
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-20 08:01:22 -07:00
Rosen Penev
d29001f2a4 clang-tidy: don't use non const refs
Found with: google-runtime-references

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-20 08:01:22 -07:00
Rosen Penev
01aab49f6f don't assign an fs::path to a string
Seems to trip up MemorySanitizer on ARM32.

Also applied various simplifications to the code using std::filesystem

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-20 08:01:22 -07:00
Rosen Penev
5ccb525dd3 remove inline function
Just make it part of the template

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-20 08:01:22 -07:00
Rosen Penev
763cfaf2b4 MSVC warning fixes
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-20 08:01:22 -07:00
Rosen Penev
1f3d1f066f extern to static
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-20 08:01:22 -07:00
Rosen Penev
ca95edc6bd random fixes
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-20 08:01:22 -07:00
Rosen Penev
d6c1059485 gcc: ifdef
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-20 08:01:22 -07:00
Rosen Penev
0a8fedf249 gcc: noexcept
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-20 08:01:22 -07:00
Rosen Penev
1f21164085 gcc: remove redundant struct
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-20 08:01:22 -07:00
Rosen Penev
9a1f37ecbe get rid of Key() move operations
Because of Impl, there's no way this can work properly.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-20 08:01:22 -07:00
Rosen Penev
a3baf7d3e9 clang-tidy: no _ in tests
Found with google-readability-avoid-underscore-in-googletest-name

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-20 08:01:22 -07:00
Rosen Penev
e854d93841 replace enable_if with if constexpr
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-20 08:01:22 -07:00
Rosen Penev
2fd523873b remove MSVC hacks
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-20 08:01:22 -07:00
Rosen Penev
dc196e729e remove old MSVC workaround
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-20 08:01:22 -07:00
Rosen Penev
4a26eba0d9 fix compilation under FreeBSD
sys headers must come before libprocstat

meson is missing a libprocstat dependency. iconv is also broken with
meson and freebsd.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-19 11:08:30 -07:00
Rosen Penev
6a3025dd72 meson CI: use vc++latest
Potentially more warnings

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-18 13:08:23 -07:00
Rosen Penev
4831c65e39
Merge pull request #2551 from kevinbackhouse/fix-issue-2539
Minor refactorings to stop UBSAN from complaining
2023-03-18 12:10:45 -07:00
Kevin Backhouse
5d11208aa0
Minor refactorings to stop UBSAN from complaining. 2023-03-18 17:26:00 +00:00
Rosen Penev
66e904e61e
Merge pull request #2548 from neheb/fa
add various moves
2023-03-14 07:10:10 -07:00
Rosen Penev
e2bf207477 add various moves
More efficient

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-13 23:01:14 -07:00
Rosen Penev
518c52c2af
Merge pull request #2544 from kevinbackhouse/fix-matroska-null-pointer-deref
Check that the pointer isn't NULL
2023-03-12 08:38:48 -07:00
Kevin Backhouse
e0ac920c87
Suggestion from @neheb 2023-03-12 10:54:01 +00:00
Kevin Backhouse
244799f480 Convert tail-recursion to loop to avoid stack exhaustion. 2023-03-11 22:47:47 -08:00
Kevin Backhouse
a783320520 Use enforce, not assert, to avoid crash. 2023-03-11 21:50:33 -08:00
Kevin Backhouse
65259d8936
Check that the pointer isn't NULL. 2023-03-11 23:29:48 +00:00
Rosen Penev
1697417c27
Merge pull request #2540 from neheb/r
github CI: update conan
2023-03-08 06:27:51 -08:00
Rosen Penev
3d2bcf19dc
Merge pull request #2536 from neheb/s
meson updates
2023-03-07 23:05:02 -08:00
Rosen Penev
7bb890f394
github CI: update conan
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-07 16:05:42 -08:00
Rosen Penev
20b160d936
meson: update wraps
Fix dllexport/import mismatch. Fixes MSVC/MinGW warnings.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-07 13:18:39 -08:00
Rosen Penev
ff7bfb3798
Merge pull request #2422 from norbertwg/interpretation-for-Exif.Photo.LensSpecification
Interpretation for Exif.Photo.LensSpecification
2023-03-07 08:22:00 -08:00
norbertwg
10bbe3f4ae to avoid compiler warnings: 0.0 changed to 0.0f 2023-03-07 15:36:07 +01:00
norbertwg
979ce8ab2a Merge branch 'interpretation-for-Exif.Photo.LensSpecification' of https://github.com/norbertwg/exiv2 into interpretation-for-Exif.Photo.LensSpecification 2023-03-07 11:43:59 +01:00
Rosen Penev
605304680e github CI: remove NoConan
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-06 06:59:13 -08:00
Rosen Penev
48ea6ebecc github CI: update conan
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-03-06 06:59:13 -08:00
norbertwg
db2f4ee377 interpretation for ExifPhoto.LensSpecification
printLensSpecification is copied from old Nikon3MakerNote::print0x0084
call of Nikon3MakerNote::print0x0084 replaced by printLensSpecification

add two lens tags to EasyAccess API
Exif.Photo.LensSpecification and Exif.Nikon3.Lens

handling of zero; more precision for focal length

silence compiler warnings
2023-03-06 11:01:18 +01:00