Opened 13 years ago

Closed 13 years ago

#3300 closed Bugs (fixed)

GraphML reader does not build on Windows with VC without modifying Jamfile

Reported by: Katie Chan Owned by: Andrew Sutton
Milestone: Boost 1.40.0 Component: graph
Version: Boost Development Trunk Severity: Problem
Keywords: Cc:

Description

To enable GraphML support requires Expat, with EXPAT_INCLUDE & EXPAT_LIBPATH set during building. However, even when that is the case, building does not complete cleanly because at present the Jamfile does not list the right name for the expat library for (at least) Windows+VC.

Currently,

<find-shared-library>expat

whereas the library on Windows with VC is variation of libexpat(w/MT).

I believe it is also required to add <define>XML_STATIC before it would build cleanly.

Change History (5)

comment:1 by Vladimir Prus, 13 years ago

I have looked at official expat package for Windows. It appears to contain these:

  • Dynamic ascii build -- libexpat.{lib,dll}
  • Static ascii build -- libexpatMT.lib
  • Dynamic unicode build -- libexpatw.{lib,dll}
  • Static unicode build -- libexpatwMT.lib

Now, I believe graph needs ascii version. Shall we use static or dynamic build by default? Static seems a little bit safer.

comment:2 by Jeremiah Willcock, 13 years ago

Looking at the configuration for Unix, it appears that the dynamic library is used there. I do not know about ASCII vs. Unicode; which library versions do Boost libraries use by default?

comment:3 by Vladimir Prus, 13 years ago

The question is what is best for Windows users. On Linux, shared expat is likely in /usr/lib so is painless. On Windows, one might need to add directories to PATH, or something. So, I am leaning towards static.

As for Unicode - unless Boost.Graph wishes to pass wchar_t to expat, we should use ascii version.

comment:4 by Jeremiah Willcock, 13 years ago

OK. We can use the ASCII version; is a shared library ever required on Windows (for threads or such)? Otherwise, I am fine with just using the static library.

comment:5 by Jeremiah Willcock, 13 years ago

Resolution: fixed
Status: newclosed

(In [58035]) Rewrote GraphML parser to use Boost.PropertyTree; fixes #3300

Note: See TracTickets for help on using tickets.