Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

Build fails with boost 1.50 #26

Closed
SakalisC opened this Issue Aug 19, 2012 · 9 comments

Comments

Projects
None yet
3 participants

With boost 1.50, filesystem2 was deprecated in favor of filesystem3. This makes building the TPIE libraries with boost 1.50 impossible. Perhaps it's a good idea to finally move to filesystem3.

It seems that only a minimal amount of changes is required, as seen here: SakalisC/tpie@6532985cb6a0afa41baee49af515a68c09e55220

After the changes above, make all completes without errors and the ctest output is the same as it was with filesystem2. Also, it is still possible to build with boost 1.49 . I assume this extends to other older versions of boost which include filesystem3.

Owner

thomasmoelhave commented Aug 20, 2012

Yes we definitely need to move to filesystem3 soon, however this affects users of tpie as well - so we should probably check some of the tpie-apps we have access to and see if they can be ported easily. @SakalisC it sounds like you already did this for your project(s).

A solution could be to use conditional compilation, e.g:

#ifdef BOOST_FILESYSTEM_VERSION == 2
    return p.file_string();
#elif BOOST_FILESYSTEM_VERSION == 3
    return p.string();
#endif

Assuming of course that the changes required in TPIE are as few as I think. This allows people to choose which version to use and it is also possible to print a warning that fileystem2 is deprecated.

@thomasmoelhave :
I did, but my project only uses tpie::temp_file and not boost::filesystem on it's own, so it is not a good data point.

Collaborator

Mortal commented Aug 20, 2012

Filesystem version 3 has been in Boost since 1.46. As far as I can tell, Ubuntu 12.04 LTS ships with Boost 1.48.

Owner

thomasmoelhave commented Aug 21, 2012

I think we all agree that we need to move to filesystem3, but I am a bit reluctant to do it right now. I think we should wait a month or two while we finalize the rest of v1. Perhaps we should revisit this around the release of Ubuntu 12.10. Thank you for the reminder Chris!

@thomasmoelhave No problem.

Some quick info that I found in the meantime: According to launchpad, Ubuntu 12.10 now uses 1.49. I do not know if they will update to 1.50 before the release. However debian [stable] still uses 1.42, so I assume people that use squeeze will have problems with the update.

Owner

thomasmoelhave commented Aug 21, 2012

Ah interesting. My machine at Duke is running 11.04 and has only Boost 1.42 as well.

Collaborator

Mortal commented Oct 13, 2012

I have created a new branch, boost150, for a version of TPIE that works with Boost 1.50.

SakalisC/tpie@6532985 has incorrect semantics for set_default_path as the ut-tempname unit test demonstrates (new unit test in boost150 branch). The parent_path() bit is not needed.

The file_string/directory_string distinction in Boost FS v2 was only necessary for e.g. OpenMVS, cf. Filesystem v2 doc.

@ghost ghost assigned Mortal Dec 18, 2012

Owner

thomasmoelhave commented Dec 28, 2012

I added a new branch: updated_deps that supports both v2 and v3 and selects the "right one" automatically depending on the version of boost installed: 97ec4f5

Owner

thomasmoelhave commented Jan 17, 2013

Commit 34ac4be merges updated_deps into master, tpie should now work on newer version of Boost.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment