275 Commits (main)

Author SHA1 Message Date
Christoph Hasse eed6aca75a fix(lens): canon lens detecton should be independent of locale 1 year ago
Miguel Borges de Freitas aa88bc4a43 Add EXIV2_ENABLE_FILESYSTEM_ACCESS option 2 years ago
Rosen Penev 75a732b470 fix remaining lint warning
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years ago
Rosen Penev 0f85d5a0e9 cmake: add format file
Helps to keep the CMake stuff consistent.

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
Miloš Komarčević b7c45b49aa Leverage global BUILD_TESTING option 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 6f5b1c94db Isolate samples, unittests, coverage and overall build to PROJECT_BINARY_DIR 2 years ago
Ryan Friedman f0785018c0 Bump minimum cmake and stop creating build directory
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2 years ago
Miloš Komarčević caddbf663d Fix shared object versioning 2 years ago
Kevin Backhouse 93f5acbbff Enable video support by default 2 years ago
Miloš Komarčević 50042e2ee2 Handle relative and absolute paths for pkg-config file 2 years ago
Kevin Backhouse 43c9ec0f50
Add EXIV2_ENABLE_INIH flag to enable building without libinih. 2 years ago
Mohamed Ali Chebbi 1c764358bb
Encapsulate video support with compilation variable EXV_ENABLE_VIDEO (#2448)
* Encapsulate video support with compilation variable EXV_ENABLE_VIDEO

* Encapsulate video support with compilation variable EXV_ENABLE_VIDEO: add variable to unit test files

* Encapsulate video support with compilation variable EXV_ENABLE_VIDEO: encapsulate in makefile

* Encapsulate video support with compilation variable EXV_ENABLE_VIDEO: fix PR windows matrix

* Encapsulate video support with compilation variable EXV_ENABLE_VIDEO: activate only for concerned CI tests

* Encapsulate video support with compilation variable EXV_ENABLE_VIDEO: desable for linux release

* Encapsulate video support with compilation variable EXV_ENABLE_VIDEO: add to Fuzz PR
2 years ago
Miloš Komarčević 557a5cebd5 Make brotli dependency controllable 3 years ago
Miloš Komarčević 9a6ee59421 Support brotli compressed boxes in JPEG XL 3 years ago
Rosen Penev 75f54e093f cmakelists.txt: run through cmake-format
Just whitespace changes

Signed-off-by: Rosen Penev <rosenp@gmail.com>
3 years ago
Luis Díaz Más a8bb38ab6f Move exiv2 app into its own folder 3 years ago
Luis Díaz Más f59a9abfe3 Remove unused PRINTUCS2 CMake option 3 years ago
Luis Díaz Más fdfb295cc4 windows: Trick to get UTF-8 encoded argv in main entry point
- Adapt exifprint to the new wmain strategy
- Delete have_unicode_path
- wmain does not work with MSYS & MinGW
- cmake: entry point via cmake instead of pragma
- cmake: better doc for MSVC flags
- Fix entry point in sample apps
- Adapt CMake code to work with MSVC & MinGW
3 years ago
Luis Díaz Más 7933ff401d Remove dead code around EXV_UNICODE_PATH 3 years ago
Christoph Hasse e3ca59b01f move test_regression_allfiles.py into its own subdirectory and add the test to cmakelists.txt 3 years ago
Luis Díaz Más c7185c71db Move all tests depending on sample applications to bash_tests 3 years ago
Luis Díaz Más b0318c36be
Upgrade C++ standard to c++17 (#2052)
* Enable C++17 and use new inline specifier for const variable members

* Silence deprecation warning on MSVC

* Disable samples by default

* improvements after review
3 years ago
Robin Mills f3393f8308 Fixes following review. 4 years ago
Robin Mills 56939796a0 Restored test lensTest. Minimized differences between main/README.md and 0.27-maintenance/README.md. 4 years ago
Robin Mills 122fb95eb3 Updating documentation to respect ctest. 4 years ago
Kevin Backhouse 5bfa568b63
Add OSS-Fuzz status badge and CIFuzz integration. 4 years ago
Kevin Backhouse cee9015ff8
Add special build mode for OSS-Fuzz. 4 years ago
Kevin Backhouse 64fe77673f
Decouple EXIV2_BUILD_FUZZ_TESTS from EXIV2_TEAM_USE_SANITIZERS. 4 years ago
Christoph Hasse 08975e3dfc refactor: small cleanup of test infra to avoid duplicate runs 4 years ago
Kevin Backhouse bf786f4cc6
Updates to make fuzzing work. 4 years ago
Jeka Pats b2cdf2a535
Add libFuzzer integration + report bug
This commit places the basics for libFuzzer integration with one
fuzzer which fuzzes the readMetadata function. The fuzzer is
located at fuzz/read-metadata.

To add more fuzzers please add them to ./fuzz directory as
described in the README.

Also a memory corruption bug is found using this fuzzer which
might lead to additional bugs after fix is pushed.
4 years ago
Fabrice Fontaine f31c0eba09 add BUILD_WITH_STACK_PROTECTOR option
Add BUILD_WITH_STACK_PROTECTOR to avoid the following build failure with
toolchains that don't support stack-protector:

/home/buildroot/autobuild/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/mipsel-buildroot-linux-uclibc/9.3.0/../../../../mipsel-buildroot-linux-uclibc/bin/ld: utils.cpp:(.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag[_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag]+0xd0): undefined reference to `__stack_chk_fail'

Indeed, support for -fstack-protector-strong can't be detected through
check_cxx_compiler_flag as some toolchains need to link with -lssp to
enable SSP support

Fixes:
 - http://autobuild.buildroot.org/results/ae4635899124c602c70d2b342a76f95c34aa4a3d

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
4 years ago
Luis Díaz Más f30022d73d
Fix issues detected with PVS-Studio + other little improvements (#1689)
* avoid re-declaration of constant variables

* Replace pthreads critical section with std::mutex

* ci - better naming

* cmake - increase minimum version to 3.11. Use project DESCRIPTION

* fix - do not treat string::find() return type as bool

* remove conditions that were always true

* remove condition that were always false

* Remove EXV_HAVE_GMTIME_R which is not used anymore

* pixelWidth_ was inherited from Exiv2::Image

The width & height variables in the TiffImage class need to be mutable
to be able to change their values on the getters pixelHeight() and
pixelWidth() ... Do not ask me why ...

* Remove superfluous if

* pvs:V766 item with identical key added already

* pvs:V730 not all members were initialized (time)

* pvs:V730 not all members are initialized

* pvs:v668 no point in testing pointer against null after new

* pvs:V1048 variable assigned the same value

* replace c-style dynamic vector with std one

* pvs:547 fakeData is always true

* Remove useless constructor in derived class

* pvs:V690 modern way to disable copy-ctor

* Replace malloc/free with new/delete. No need to check for null

* pvs:V1028 cast operands and not result

* Remove custom MIN/MAX functions

* pvs:V595 pointer used before verified against null

* pvs: index used before being checked

* pvs:V1028 possible overflow. Cast operands

* pvs:v575 potential null pointer passed to other functions

* pvs:V547 deal with always true/false expressions

* pvs:V560 part of conditional expressions always false or true

* pvs:V701 possible break in realloc -> move to std::vector

* Make some classes 'final'

* Replace sprintf with std::to_string()

* fix compilation on windows
4 years ago
Luis Díaz Más b54ade76ab Python3 dependency is not obligatory
Some of the CI-Linux-Distros jobs failed because of this. Python3 is not
available by default on Debian:9 nor in Centos:8.

Since we are not currently running the tests in those platforms, and
python3 is just used for testing, we do not want to enforce this project
dependency.
4 years ago
Luis Díaz Más 9710ebe5f0 cmake - Use cmake -E to be able to run tests on different windows shells 4 years ago
Luis Díaz Más 7aa5260af5 cmake: remove obsolete targets 4 years ago
Luis Díaz Más 64eb95a16f cmake: find python3 and use it in tests 4 years ago
Luis Diaz Mas e87424b5e0 Add CTest support 4 years ago
Luis Diaz Mas 8035b7f320 cmake: Add target for obtaining local covarage reports 4 years ago
Luis Díaz Más b675c58bab Move include/CMake to src 4 years ago
Luis Díaz Más 2de3bad869 Remove EXIV2_ENABLE_VIDEO and related stuff 4 years ago
Luis Díaz Más 94b87a8dec Remove deprecated SSH support 4 years ago
Luis Díaz Más 15ac7d13ac
Merge branch 'main' into modernizationCpp 4 years ago
Robin Mills 206a2c495c fix_enableBMFF_v1 4 years ago
Robin Mills 05263a7766 bump_v1.00_version 4 years ago
Robin Mills bf1e9fe4ad fix_1558_cmake_build_type 4 years ago
Luis Díaz Más cd5c8fba49 remove some cmake old checks + newer gtest version 4 years ago
Robin Mills b09019c636 fix_enableBMFF_v1 4 years ago