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

SakalisC opened this Issue Aug 19, 2012 · 9 comments


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.


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:

    return p.file_string();
    return p.string();

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.


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.


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.


thomasmoelhave commented Aug 21, 2012

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


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


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


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