summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/settings.cc
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/asymptote/settings.cc')
-rw-r--r--Build/source/utils/asymptote/settings.cc60
1 files changed, 59 insertions, 1 deletions
diff --git a/Build/source/utils/asymptote/settings.cc b/Build/source/utils/asymptote/settings.cc
index d3330a9677c..034d827ed38 100644
--- a/Build/source/utils/asymptote/settings.cc
+++ b/Build/source/utils/asymptote/settings.cc
@@ -926,8 +926,66 @@ struct versionOption : public option {
versionOption(string name, char code, string desc)
: option(name, code, noarg, desc, true) {}
+ bool disabled;
+
+ const void feature(const char *s, bool enabled) {
+ if(enabled ^ disabled)
+ cerr << s << endl;
+ }
+
+ void features(bool enabled) {
+ disabled=!enabled;
+ cerr << endl << (disabled ? "DIS" : "EN") << "ABLED OPTIONS:" << endl;
+
+ bool glm=false;
+ bool gl=false;
+ bool gsl=false;
+ bool fftw3=false;
+ bool xdr=false;
+ bool readline=false;
+ bool sigsegv=false;
+ bool usegc=false;
+
+#if HAVE_LIBGLM
+ glm=true;
+#endif
+#ifdef HAVE_GL
+ gl=true;
+#endif
+#ifdef HAVE_LIBGSL
+ gsl=true;
+#endif
+#ifdef HAVE_LIBFFTW3
+ fftw3=true;
+#endif
+#ifdef HAVE_RPC_RPC_H
+ xdr=true;
+#endif
+#ifdef HAVE_LIBREADLINE
+ readline=true;
+#endif
+#ifdef HAVE_LIBSIGSEGV
+ sigsegv=true;
+#endif
+#ifdef USEGC
+ usegc=true;
+#endif
+
+ feature("WebGL 3D HTML rendering",glm);
+ feature("OpenGL 3D OpenGL rendering",gl);
+ feature("GSL GNU Scientific Library (special functions)",gsl);
+ feature("FFTW3 Fast Fourier transforms",fftw3);
+ feature("XDR external data representation (portable binary file format)",xdr);
+ feature("Readline interactive history and editing",readline);
+ feature("Sigsegv distinguish stack overflows from segmentation faults",
+ sigsegv);
+ feature("GC Boehm garbage collector",usegc);
+ }
+
bool getOption() {
version();
+ features(1);
+ features(0);
exit(0);
// Unreachable code.
@@ -944,7 +1002,7 @@ struct divisorOption : public option {
#ifdef USEGC
Int n=lexical::cast<Int>(optarg);
if(n > 0) GC_set_free_space_divisor((GC_word) n);
-#endif
+#endif
} catch (lexical::bad_cast&) {
error("option requires an int as an argument");
return false;