![]() | regina-helper |
Prev | Command Line: Compiling and Linking | Next |
Name
regina-helper — Helper utility for working with a Regina installation
Synopsis
regina-helper {action
} [args
...]
regina-helper {action
} [--help
]
Description
This utility understands the layout of your Regina installation, and it can help you with a variety of tasks that require this knowledge. For example, it can create Makefiles and/or sample C++ code for you, or help you run Regina's test suite.
The first argument to regina-helper should be an
action, indicating what you want the utility to do. The available actions
are described in detail below.
To learn more about what an action does, you can run
regina-helper
.
action
--help
This utility is available in most but not all settings:
If you are using GNU/Linux and you have Regina installed in a system location (e.g., beneath
/usr/
or/usr/local/
), then regina-helper should be included with your installation, and any output it produces should be relative to this system installation.If you are using macOS and you are running Regina from an app bundle (which might be under
/Applications/
or might be somewhere else), then you can run regina-helper from within the app bundle (.../Regina.app/Contents/MacOS/regina-helper
), and any output it produces should be relative to this app bundle.If you are building Regina yourself from the source tree (on any platform), then you can run regina-helper from the source tree, and any output it produces should be relative to this same source tree. In particular, it will not assume that you have actually installed Regina.
If you are using pre-built packages for Regina on Windows, then regina-helper will not be included in your installation.
Actions
The first argument to regina-helper should be one of the following actions:
installtype
Writes a single token to standard output identifying the type of Regina installation.
example$
regina-helper installtype
XDGexample$
The output will be one of the following:
- XDG
Indicates that you are running Regina from an installation in a fixed location that follows the freedesktop.org layout. This is seen with Regina's GNU/Linux packages, as well as local CMake builds with no special arguments.
- HPC
Indicates that you are running Regina from a slimmed-down installation (e.g., no GUI or HTML docs), which is installed in a fixed but possibly non-standard location, suitable for builds on high-performance computing systems. This is typically seen with local CMake builds where
REGINA_INSTALL_TYPE
was explicitly set toHPC
.- Bundle
Indicates that you are running Regina from within a macOS app bundle.
- Windows
Indicates that you are running Regina from within Regina's Windows app. It is unlikely that you will see this of course, since regina-helper is not shipped with Windows installations.
- Source
Indicates that you are running Regina directly from the source tree (i.e., a local build that has not necessarily been installed).
The
installtype
action takes no additional arguments.makefile
Creates a Makefile in the current directory, suitable for compiling C++ programs against Regina. In particular, once you have your Makefile in place, you can (for example) compile a C++ program
foo.cc
just by runningmake foo
.The main reason for using this Makefile is that it includes compiler and linker flags for accessing Regina's C++ calculation engine. (In particular, using this Makefile is a simpler alternative to extracting compiler and linker flags from regina-engine-config.)
The
makefile
action accepts the optional arguments--force
and/or--rpath
; these are described below.cc
,cpp
Creates a Makefile in the current directory that is suitable for compiling C++ programs against Regina, as well as a sample C++ program that can be used as a starting point for your own code.
example$
regina-helper cc
Writing sample.cc... Preparing Makefile...example$ ls
Makefile sample.ccexample$
See the
makefile
action above for further discussion of how you can use this Makefile.The C++ source file will be called either
sample.cc
orsample.cpp
, depending on whether you gavecc
orcpp
as the action argument to regina-helper.The
cc
/cpp
action accepts the optional arguments--force
and/or--rpath
; these are described below.test
Runs Regina's detailed C++ calculation engine test suite.
Regina has a large and thorough test suite, designed to guard against system incompatibilities and/or unforseen bugs. This test suite includes several components that target the C++ calculation engine, the Python bindings, and the command-line utilities. The bulk of the tests are for the C++ calculation engine, and those are the tests that will be run here.
example$
regina-helper test
Running C++ test suite from the installation beneath /usr/local/. [==========] Running 522 tests from 53 test suites. [----------] Global test environment set-up. [----------] 2 tests from AbelianGroupTest [ RUN ] AbelianGroupTest.incrementalBuild [ OK ] AbelianGroupTest.incrementalBuild (0 ms) [ RUN ] AbelianGroupTest.tightEncoding [ OK ] AbelianGroupTest.tightEncoding (0 ms) [----------] 2 tests from AbelianGroupTest (1 ms total) [----------] 6 tests from CoversTest [ RUN ] CoversTest.trivial [ OK ] CoversTest.trivial (2 ms) ...The C++ test suite uses the Google Test framework, which supports many different arguments to customise your test suite run. Any additional arguments that you supply with the
test
action will be passed directly through to Google Test. You can runregina-helper test --help
to see what all of these possible arguments are.help
Outputs usage information for the regina-helper utility.
This action takes no additional arguments.
Options
--force
Overwrites any existing files (such as
Makefile
, orsample.cc
). By default, regina-helper will not overwrite a file that already exists.This option is used with the
makefile
andcc
/cpp
actions.--rpath
Always uses an rpath option in the linker flags within the Makefile that is created. This is useful for when your Regina installation is not on the standard library path.
If your program compiles and links correctly but crashes when you run it because it cannot find the library
libregina-engine.so
, then the--rpath
option might solve your problem. (You will of course need to rebuild your program after updating the Makefile.)By default, an rpath option will only be used if you are running Regina directly out of the source tree.
This option is used with the
makefile
andcc
/cpp
actions.--help
Outputs detailed usage information for a particular regina-helper action.
example$
regina-helper test --help
Usage: /usr/local/bin/regina-helper test [testsuite_args...] Runs Regina's C++ test suite. ...
Author
This utility was written by Benjamin Burton
<bab@maths.uq.edu.au>
.
Many people have been involved in the development
of Regina; see the acknowledgements
page for a full list of credits.
Prev | Contents | Next |
regina-engine-config | Up | Version History |