9125 Commits (cfe041e7e013802b5797a00f8399b856a81fa192)
 

Author SHA1 Message Date
Rosen Penev cfe041e7e0 meson: update subprojects
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev e61e3d5a8b meson: error on MSVCRT builds
MSVCRT requires wide string APIs, which were removed. Instead of dealing
with this, just error out on it. MSVCRT is deprecated anyway.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev 8588024a66 add maybe_unused
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev 8361b92a50 meson: add fallback paths for iconv
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev e7f6a286f3 http: convert to inet_pton and getaddrinfo
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev 6ea6e2cb13 replace stat with std::filesystem
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev 3b15b6f9fb use SHGetKnownFolderPath
SHGetFolderPathA is deprecated.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev 898faffa0d use ReplaceFileA directly
This was introduced in Windows 95. exiv2 does not work on older.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev 43ffc614f3 github CI: remove tags from container names
Best to be latest.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev 06cf19ac9b remove inline
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev 4d2d5f3673 fix compilation with newer CMake
It seems CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS on CMake 3.27 breaks
compilation on Windows.

The reason for it here is wrong: unit tests do not need non exported
symbols.
2 years ago
Ryan Friedman 4dfb78131c Switch back to exporting dep on EXPAT because it's needed for static libs
Signed-off-by: Ryan Friedman <ryan.friedman+github@avinc.com>
2 years ago
Ryan Friedman 9f5767da7c Link expat only for the build interface
Signed-off-by: Ryan Friedman <ryan.friedman+github@avinc.com>
2 years ago
Rosen Penev b832728988 add std::endian support if available
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev 9894c69cd0 small cleanup
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev 100eabbc08 add std::byteswap support
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev 8a4fa1c146 extra comma
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev c52bc0ff95 silence GCC8 warning on non default constructor
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev dae2b6dda8 more doxygen
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Ryan Friedman 368eab01db Downgrade required CMake version to consume exiv2
Signed-off-by: Ryan Friedman <ryan.friedman+github@avinc.com>
2 years ago
Ryan Friedman eb05551ed2 Add Exiv2 namespace for exported targets
* This matches an alias target name
* Recommend using the namespaced target in the README

Signed-off-by: Ryan Friedman <ryan.friedman+github@avinc.com>
2 years ago
Ryan Friedman 5e1cf4dad9 Make ZLIB depend on EXIV2_ENABLE_PNG
Signed-off-by: Ryan Friedman <ryan.friedman+github@avinc.com>
2 years ago
Ryan Friedman a8c3455e5c Add a cmake config file export
Signed-off-by: Ryan Friedman <ryan.friedman+github@avinc.com>
2 years ago
Ryan Friedman 0e836eb50c Add inih_reader_LIBRARY too
Signed-off-by: Ryan Friedman <ryan.friedman+github@avinc.com>
2 years ago
Ryan Friedman 16c533fc77 Make FindInih also make finding reader required
* Fixes issue on alpine where inih-dev is installed without inih-inireader-dev
* https://github.com/Exiv2/exiv2/pull/2443#issuecomment-1648144243

Signed-off-by: Ryan Friedman <ryan.friedman+github@avinc.com>
2 years ago
Miloš Komarčević b7c45b49aa Leverage global BUILD_TESTING option 2 years ago
kamiccolo 5631e84237 Switch to PROJECT_SOURCE_DIR for gcovr as well 2 years ago
kamiccolo e7cea4b2fd geotag sample does not require ROOT_PROJECT/src to be included. Switch for ROOT_PROJECT/include for <exiv2/exiv2.hpp> 2 years ago
kamiccolo 643165fda6 Add PROJECT_ROOT/app for inclusion for getopt_tests 2 years ago
kamiccolo e1efef9d84 unitTests includes PROJECT_ROOT/src (cr2header_int.hpp, etc) 2 years ago
kamiccolo 52fb9ee191 Revert "Isolate samples, unittests, coverage and overall build to PROJECT_BINARY_DIR"
This reverts commit 057ddfcf1755380583c6eb4ac97767a652fbfe9d.
2 years ago
kamiccolo c8e6ef2abe Use PROJECT_SOURCE_DIR while looking for root cmake subfolder 2 years ago
kamiccolo 6f5b1c94db Isolate samples, unittests, coverage and overall build to PROJECT_BINARY_DIR 2 years ago
kamiccolo 3dea23f0de app/CMakeLists: rely on PROJECT_SOURCE_DIR instead of CMAKE_SOURCE_DIR for i18n includes 2 years ago
kamiccolo b2b7b0dd01 cmake: switch from inclusion of CMAKE_SOURCE_DIR to CMAKE_CURRENT_SOURCE_DIR 2 years ago
Miloš Komarčević b42586b85f Streamline gtest dependencies 2 years ago
Miloš Komarčević 562ef57b4f Use CMake config mode for gMock detection 2 years ago
norbertwg 3e8e09d450 addition for documentation of isoSpeed 2 years ago
norbertwg f791388a93 clang-format 2 years ago
norbertwg 7d292c4dda Missing word added 2 years ago
norbertwg 836cce636a enhance API documentation 2 years ago
Rosen Penev a2d6996ca2 exiv2: fix compilation with GCC7
Needs experimental filesystem.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev c827648127 add missing commas
Formats the structs properly.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev e1b3dfa278 fix toAscii function
c == 0 was a dead branch because of the way printable ascii was
calculated. Move it up instead.

While at it, replace std::transform with std::replace. Easier to read.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev 22a4b71752 optimize other toAscii function with early exit
GCC is able to see that the branch is useless as it can be done at
compile time. Produces shorter assembly with both -O2 and -O3.

Assign the pointer to the std::string directly and use proper iterators
with std::transform. Also produces shorter assembly.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Pino Toscano 7f997572f5 tests: do not hardcode ENOENT
The actual values of errno constants are not specified in POSIX, and
left as implementation details; hence, tweak the check for the ENOENT
description to not check for the actual value.
2 years ago
Pino Toscano b826a7d733 asf: fix GUID reading on big endian platforms
Setting the initial parts (data1_, data2_, data3_) from the bytes
directly using memcpy() means that they will be interpreted depending
on the platform endianness. For example, the initial 4 bytes of the ASF
header are 0x30, 0x26, 0xB2, 0x75, which will be read as 0x3026B275 on
big endian platforms, never matching the actual GUID (0x75B22630), which
is always specified in little endian format.

Hence, when reading a GUID from data, make sure to turn the GUID parts
to little endian. This fixes the reading of ASF files on big endian
platforms.

Fixes commit bed8d3d93c
2 years ago
Miloš Komarčević 029dc9f24a Add some Sony IDs 2 years ago
Rosen Penev 1837bf055e memcpy to copy_n conversions
The latter is more strict regarding types

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev 640282f33b replace reinterpret_cast with copy_n
On mips64, this throws a cast-align warning. Silence it.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago