Merge pull request #1554 from Exiv2/fix_enableBMFF_v1

fix_enableBMFF_v1
This commit is contained in:
Robin Mills 2021-04-14 17:38:47 +01:00 committed by GitHub
commit 64185f5ab1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 25 additions and 17 deletions

View File

@ -25,7 +25,7 @@ option( EXIV2_ENABLE_WIN_UNICODE "Use Unicode paths (wstring) on Windows"
option( EXIV2_ENABLE_WEBREADY "Build webready support into library" OFF )
option( EXIV2_ENABLE_CURL "USE Libcurl for HttpIo (WEBREADY)" OFF )
option( EXIV2_ENABLE_SSH "USE Libssh for SshIo (WEBREADY)" OFF )
option( EXIV2_ENABLE_BMFF "Build with BMFF support" OFF )
option( EXIV2_ENABLE_BMFF "Build with BMFF support" ON )
option( EXIV2_BUILD_SAMPLES "Build sample applications" ON )
option( EXIV2_BUILD_EXIV2_COMMAND "Build exiv2 command-line executable" ON )

View File

@ -139,7 +139,7 @@ option( EXIV2_ENABLE_XMP "Build with XMP metadata support" ON
option( EXIV2_ENABLE_EXTERNAL_XMP "Use external version of XMP" OFF )
option( EXIV2_ENABLE_PNG "Build with png support (requires libz)" ON )
...
option( EXIV2_ENABLE_BMFF "Build with BMFF support" OFF )
option( EXIV2_ENABLE_BMFF "Build with BMFF support" ON )
577 rmills@rmillsmm:~/gnu/github/exiv2/exiv2 $
```
@ -786,7 +786,7 @@ Access to the bmff code is guarded in two ways. Firstly, you have to build the
EXIV2API bool enableBMFF(bool enable);
```
The return value from `enableBMFF()` reports the current status of bmff support before calling this function.
The return value from `enableBMFF()` is true if the library has been build with bmff support (cmake option -DEXIV2_ANABLE_BMFF=On).
Applications may wish to provide a preference setting to enable bmff support and thereby place the responsibility for the use of this code with the user of the application.

View File

@ -32,7 +32,11 @@
namespace Exiv2
{
EXIV2API bool enableBMFF(bool enable = true);
}
#ifdef EXV_ENABLE_BMFF
namespace Exiv2
{
struct Iloc
{
Iloc(uint32_t ID = 0, uint32_t start = 0, uint32_t length = 0) : ID_(ID), start_(start), length_(length){};
@ -168,3 +172,4 @@ namespace Exiv2
//! Check if the file iIo is a BMFF image.
EXIV2API bool isBmffType(BasicIo& iIo, bool advance);
} // namespace Exiv2
#endif // EXV_ENABLE_BMFF

View File

@ -45,9 +45,7 @@
#include "exiv2/mrwimage.hpp"
#include "exiv2/orfimage.hpp"
#include "exiv2/pgfimage.hpp"
#ifdef EXV_ENABLE_BMFF
#include "bmffimage.hpp"
#endif
#ifdef EXV_HAVE_LIBZ
#include "exiv2/pngimage.hpp"

View File

@ -118,11 +118,9 @@ if( EXIV2_ENABLE_VIDEO )
)
endif()
if( EXIV2_ENABLE_BMFF )
target_sources(exiv2lib PRIVATE
bmffimage.cpp ../include/exiv2/bmffimage.hpp
)
endif()
target_sources(exiv2lib PRIVATE
bmffimage.cpp ../include/exiv2/bmffimage.hpp
)
# Other library target properties
# ---------------------------------------------------------

View File

@ -84,18 +84,15 @@ struct BmffBoxHeader
// *****************************************************************************
// class member definitions
#ifdef EXV_ENABLE_BMFF
namespace Exiv2
{
static bool enabled = false;
#ifdef EXV_ENABLE_BMFF
static bool enabled = false;
EXIV2API bool enableBMFF(bool enable)
{
bool result = enabled;
enabled = enable ;
return result ;
enabled = enable ;
return true ;
}
#endif // EXV_ENABLE_BMFF
std::string Iloc::toString() const
{
@ -629,3 +626,13 @@ namespace Exiv2
return matched;
}
} // namespace Exiv2
#else // ifdef EXV_ENABLE_BMFF
namespace Exiv2
{
EXIV2API bool enableBMFF(bool)
{
return false ;
}
}
#endif