Project

General

Profile

Bug #1130

Fails to build without XMP: xmp.cpp:432:12: error: 'XMP_Status' does not name a type

Added by Jakub Wilk about 6 years ago. Updated over 5 years ago.

Status:
Assigned
Priority:
Normal
Assignee:
Category:
build
Target version:
Start date:
23 Oct 2015
Due date:
% Done:

30%

Estimated time:
10.00 h

Description

I tried to build current svn checkout (r3992) with XMP support disabled (./configure --disable-xmp), but the build failed:

libtool: compile:  g++ -O2 -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wcast-align -Wpointer-arith -Wformat-security -Wmissing-format-attribute -Woverloaded-virtual -W -Wundef -pedantic -MMD -I../src -I../include/ -I../include/exiv2 -DEXV_LOCALEDIR=\"/usr/local/share/locale\" -c -DEXV_BUILDING_LIB=1 xmp.cpp  -fPIC -DPIC -o .libs/xmp.o
xmp.cpp:397:54: warning: unused parameter 'xmpLockFct' [-Wunused-parameter]
     bool XmpParser::initialize(XmpParser::XmpLockFct xmpLockFct, void* pLockData)
                                                      ^
xmp.cpp:397:72: warning: unused parameter 'pLockData' [-Wunused-parameter]
     bool XmpParser::initialize(XmpParser::XmpLockFct xmpLockFct, void* pLockData)
                                                                        ^
xmp.cpp:432:12: error: 'XMP_Status' does not name a type
     static XMP_Status nsDumper
            ^
xmp.cpp: In static member function 'static void Exiv2::XmpParser::registeredNamespaces(Exiv2::Dictionary&)':
xmp.cpp:478:24: error: ISO C++ forbids declaration of 'XMP_Error' with no type [-fpermissive]
         } catch (const XMP_Error& e) {
                        ^
xmp.cpp:478:33: error: expected ')' before '&' token
         } catch (const XMP_Error& e) {
                                 ^
xmp.cpp:478:33: error: expected '{' before '&' token
xmp.cpp:478:35: error: 'e' was not declared in this scope
         } catch (const XMP_Error& e) {
                                   ^
xmp.cpp: At global scope:
xmp.cpp:469:61: warning: unused parameter 'dict' [-Wunused-parameter]
     void XmpParser::registeredNamespaces(Exiv2::Dictionary& dict)
                                                             ^
xmp.cpp:913:28: warning: 'Exiv2::XmpKey::AutoPtr {anonymous}::makeXmpKey(const string&, const string&)' defined but not used [-Wunused-function]
     Exiv2::XmpKey::AutoPtr makeXmpKey(const std::string& schemaNs,
                            ^
Makefile:193: recipe for target 'xmp.o' failed

Associated revisions

Revision 3997 (diff)
Added by Robin Mills about 6 years ago

#1130. Thank You Jakub for reporting this.

Revision 3999 (diff)
Added by Robin Mills about 6 years ago

#1130. Correction to r3997.

History

#1

Updated by Robin Mills about 6 years ago

  • Status changed from New to Assigned
  • Assignee set to Robin Mills
  • Target version set to 0.26

Thanks for reporting this (and your other issue updates). I'm not sure I've every tried to build without libexpat or libz

When I use your command line:

./configure --disable-xmp
I get errors on the Mac such as
version.cpp:395:5: warning: 'EXV_HAVE_XMP_TOOLKIT' is not defined, evaluates to 0 [-Wundef]
#if EXV_HAVE_XMP_TOOLKIT
I'll have a look at this, and your other issue updates, in the next few days.

Thanks for reporting this stuff. The only way we can discover these matters is your contribution. Thank You.

#2

Updated by Robin Mills about 6 years ago

  • % Done changed from 0 to 50
  • Estimated time set to 2.00 h

Fix submitted: r3997 I'll set the status to 50% done for now while I wait for the buildServer to confirm that it builds/tests correctly on all platforms.

#3

Updated by Robin Mills about 6 years ago

  • Estimated time changed from 2.00 h to 8.00 h

BuildServer is good. However by default he builds with xmp support enabled. I've manually built ./configure --disable-xmp on Mac/Linux/Cygwin. Two matters arising:

  1. Test harness generates lots of messages. I should visit the test harness and refactor to keep XMP tests apart from 'normal' and reduce the thunder when XMP is disabled
  2. <exiv2dir>/Makefile is modified by ./configure. This isn't good because that file is checked into the repos.

I'm not going to give much priority to those new matters. I am not promising to visit them for v0.26.

By the way, we do have a way of detecting this fault. Our buildServer can build all supported platforms. At the moment, the UI for the buildServer is only available to registered users of our Jenkins Server. For v0.26, I am developing a public version which will enable any user to select any supported build configuration. Here's the UI. It doesn't build anything yet. #1109 http://www.exiv2.org/buildServer.html

#4

Updated by Robin Mills about 6 years ago

  • % Done changed from 50 to 30
  • Estimated time changed from 8.00 h to 10.00 h
#5

Updated by Robin Mills over 5 years ago

  • Target version changed from 0.26 to 0.28

Deferred to v0.27 to make the schedule for v0.26.

Also available in: Atom PDF