CMake options for PLplot
A large number of options are available to modify the CMake configuration process. Use the ccmake or cmake-gui commands or inspect the contents of the CMakeCache.txt file after a build to obtain documentation for most options. Some options are hidden depending on other option values so for a more complete look at all option documentation look for the string "option" in the files in the cmake/modules subdirectory.
Here we give the documentation of the most heavily used subset of the options. The value specified is the default value, but note that value can automatically be changed by the build system if some essential resource is not available on the platform. For example, if no Fortran 95-capable compiler can be found on the platform, the Fortran 95 bindings are automatically disabled. Furthermore, certain option values depend on other option values. For example, if BUILD_SHARED_LIBS is set to OFF, then ENABLE_DYNDRIVERS is automatically set to OFF as well.
In general, if you just use the default options PLplot will normally configure itself to build without problems. The cmake output will have WARNING messages about any missing components. If one of those is important to you, then you will have to install additional libraries or executables (e.g., a Fortran 95-capable compiler) and do a fresh cmake run in an empty directory to configure a PLplot build that includes the component that was missing before.
Contents
General options
CMAKE_INSTALL_PREFIX:PATH=/usr/local - install directory.
CMAKE_BUILD_TYPE:STRING= - One of blank (None), Debug, Release, RelWithDebInfo, or MinSizeRel. This option provides overall control of the optimization and debug options used for the build depending on the compiler and platform.
BUILD_SHARED_LIBS:BOOL=ON - build shared libraries (ON) or static libraries (OFF).
ENABLE_DYNDRIVERS:BOOL=ON - build device drivers as dynamically loaded plugins (ON) or as part of the PLplot core C library (OFF).
BUILD_TEST:BOOL=OFF - builds examples in the build tree so that ctest can be run afterward to test that those examples work.
BUILD_DOC:BOOL=OFF - build documentation (Linux only).
PL_DOUBLE:BOOL=ON - use 64-bit (ON) or 32-bit (OFF) floating-point precision.
USE_RPATH:BOOL=ON - use rpath (ON) or do not use rpath (OFF) when linking libraries and executables.
HAVE_QHULL:BOOL=ON - internally build and use the csironn library for natural neighbours interpolation. This library depends externally on the qhull library.
WITH_CSA:BOOL=ON - internally build and use the csirocsa library for bivariate cubic spline approximation.
LIB_TAG:STRING="" - suffix added to all libraries. Notice that 'd' is always appended to it if PL_DOUBLE is ON.
Bindings options
DEFAULT_NO_BINDINGS:BOOL=OFF - if this option is turned ON, all language bindings are turned OFF by default.
ENABLE_cxx:BOOL=ON - C++ bindings.
ENABLE_f77:BOOL=ON - Fortran 77 bindings.
ENABLE_f95:BOOL=ON - Fortran 95 bindings.
ENABLE_python:BOOL=ON - Python bindings.
ENABLE_java:BOOL=ON - Java bindings.
ENABLE_tcl:BOOL=ON - Tcl bindings.
ENABLE_itcl:BOOL=ON - iTcl object-oriented extension of the Tcl bindings.
ENABLE_tk:BOOL=ON - Tk (graphical extension of Tcl) bindings.
ENABLE_itk:BOOL=ON - iTk object-oriented extension of the Tk bindings.
ENABLE_ada:BOOL=ON - Ada 95 and Ada 2005 bindings.
ENABLE_pdl:BOOL=ON - include PDL (Perl Data Language) examples to be used with PDL PLplot bindings that are developed as part of the external PDL project.
ENABLE_d:BOOL=ON - Experimental D bindings.
ENABLE_ocaml:BOOL=ON - OCaml bindings.
ENABLE_qt:BOOL=ON - Qt bindings.
ENABLE_wxwidgets:BOOL=ON - wxWidgets bindings.
Device options
General device options
DEFAULT_ALL_DEVICES:BOOL=OFF - if this option is turned ON, all devices default to ON.
DEFAULT_NO_DEVICES:BOOL=OFF - if this option is turned ON, all devices default to OFF.
DEFAULT_NO_CAIRO_DEVICES:BOOL=OFF - if this option is turned ON, all cairo devices default to OFF.
DEFAULT_NO_QT_DEVICES:BOOL=OFF - if this option is turned ON, all qt devices default to OFF.
WITH_FREETYPE:BOOL=ON - access TrueType fonts with direct calls to libfreetype for certain device drivers that use this method of accessing TrueType fonts.
N.B. All PLD_* options below which default to OFF correspond to deprecated/unmaintained devices.
These devices use various cairo backends. The ones that are turned ON by default generally give beautiful results with properly hinted unicode fonts even for CTL (complex text layout) languages.
PLD_pscairo=ON
PLD_pdfcairo=ON
PLD_pngcairo=ON
PLD_xcairo=ON
PLD_svgcairo=ON
PLD_extcairo=ON
PLD_memcairo=OFF
These devices depend on the Qt4 libraries and generally give beautiful results with properly hinted unicode fonts even for CTL (complex text layout) languages.
Qt4 interactive device
PLD_qtwidget=ON
Qt4 bitmapped devices
PLD_bmpqt=ON
PLD_jpgqt=ON
PLD_pngqt=ON
PLD_ppmqt=ON
PLD_tiffqt=ON
Qt4 PostScript and PDF devices
PLD_epsqt=ON
PLD_pdfqt=ON
Qt4 Scalable Vector Graphics (SVG) device
PLD_svgqt=ON
Qt4 external "device" (used for Qt GUI applications)
PLD_extqt=ON
PLD_png:BOOL=ON
PLD_jpeg:BOOL=ON
PLD_gif:BOOL=ON
Hewlett-Packard printer devices
PLD_hp7470:BOOL=ON
PLD_hp7580:BOOL=ON
PLD_lj_hpgl:BOOL=ON
Textronix and Textronix emulator devices
PLD_xterm:BOOL=OFF
PLD_tek4010:BOOL=OFF
PLD_tek4010f:BOOL=OFF
PLD_tek4107:BOOL=OFF
PLD_tek4107f:BOOL=OFF
PLD_mskermit:BOOL=OFF
PLD_versaterm:BOOL=OFF
PLD_vlt:BOOL=OFF
PLD_conex:BOOL=OFF
Other devices
PLD_aqt:BOOL=ON - Mac OS X platform only.
PLD_cgm:BOOL=ON - note this device depends on the NIST public-domain cd library which we build internally (as libnistcd) if this option is ON.
PLD_dg300:BOOL=OFF
PLD_gcw:BOOL=OFF
PLD_imp:BOOL=OFF
PLD_linuxvga:BOOL=OFF
PLD_ljii:BOOL=OFF
PLD_ljiip:BOOL=OFF
PLD_mem:BOOL=ON
PLD_ntk:BOOL=OFF
PLD_null:BOOL=ON - a working device that creates no (!) interactive or file output.
PLD_pbm:BOOL=OFF
PLD_pdf:BOOL=OFF
PLD_plmeta:BOOL=OFF
PLD_ps:BOOL=ON
PLD_pstex:BOOL=OFF
PLD_psttf:BOOL=ON
PLD_svg:BOOL=ON
PLD_tk:BOOL=ON
PLD_tkwin:BOOL=ON
PLD_wingcc:BOOL=ON - windows platform only.
PLD_wxpng:BOOL=OFF
PLD_wxwidgets:BOOL=ON
PLD_xfig:BOOL=ON
PLD_xwin:BOOL=ON