summaryrefslogtreecommitdiff
path: root/src/boosty.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/boosty.h')
-rw-r--r--src/boosty.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/src/boosty.h b/src/boosty.h
new file mode 100644
index 0000000..588c2a9
--- /dev/null
+++ b/src/boosty.h
@@ -0,0 +1,80 @@
+// boosty.h copyright 2012 don bright. released under the GPL 2, or later,
+// as described in the file named 'COPYING' in OpenSCAD's project root.
+
+#ifndef boosty_h_
+#define boosty_h_
+
+/*
+ boosty is a wrapper around boost so that OpenSCAD can work with old
+ versions of boost found on popular versions of linux, circa early 2012.
+
+ design
+ hope that the user is compiling with boost>1.46 + filesystem v3
+ if not, fall back to older deprecated functions, and rely on
+ testing to find bugs. implement the minimum needed by OpenSCAD and no more.
+ in a few years, this file should be deleted as unnecessary.
+
+ see also
+ http://www.boost.org/doc/libs/1_48_0/libs/filesystem/v3/doc/index.htm
+ http://www.boost.org/doc/libs/1_42_0/libs/filesystem/doc/index.htm
+ http://www.boost.org/doc/libs/1_35_0/libs/filesystem/doc/index.htm
+ include/boost/wave/util/filesystem_compatability.hpp
+
+*/
+
+#include <string>
+#include <boost/version.hpp>
+#include <boost/filesystem.hpp>
+namespace fs = boost::filesystem;
+
+namespace boosty {
+
+#if BOOST_VERSION >= 104600 && BOOST_FILESYSTEM_VERSION >= 3
+
+inline bool is_absolute( fs::path p )
+{
+ return p.is_absolute();
+}
+
+inline fs::path absolute( fs::path p )
+{
+ return fs::absolute( p );
+}
+
+inline std::string stringy( fs::path p )
+{
+ return p.generic_string();
+}
+
+inline std::string extension_str( fs::path p)
+{
+ return p.extension().generic_string();
+}
+
+#else
+
+inline bool is_absolute( fs::path p )
+{
+ return p.is_complete();
+}
+
+inline fs::path absolute( fs::path p )
+{
+ return fs::complete( p );
+}
+
+inline std::string stringy( fs::path p )
+{
+ return p.string();
+}
+
+inline std::string extension_str( fs::path p)
+{
+ return p.extension();
+}
+
+#endif
+
+} // namespace
+
+#endif
contact: Jan Huwald // Impressum