CMake options for PLplot

From PLplotWiki
Jump to: navigation, search

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.

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.

libpango/libcairo-related 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

Qt4-related devices

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

libgd-related devices

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