preshanth / parafeed

A library for an embedded interactive user interface

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

parafeed

A library for an embedded user interface designed for ease of use for the programmer as well as the end-user. It embeds a shell in the application which can be configured for an interactive session or a non-interactive command line interface. The shell can be customized via command-line arguments or via environment variables. The user can access the shell via simple arg=value1,value2,... command-line arguments (useful when writing pipelines). In an interactive session, the list of parameters are displayed as a list of arg=<Value(s)> on the screen (see examples) and the user can set/reset/save/load/edit parameter values (see User Commands). Command line editing, min-matching, TABBED completion, parameter hiding/exposing based on the value of other parameter is also supported (see the full user manual).

Build System(s)

parafeed project can be built with the cmake tool. Alternatively, it can also be built directly using the hand-written makefiles.

CMake-based build system requires cmake version 3 or later. To build, execute the cmake command in the top-most directory. This will build the required makefiles. Issuing the make command, also in the root directory, should build the parafeed package.

While the hand-written makefiles have been tested with make version 3 only, they do not depend on a specific version of make. These makefiles are in the code/nocmake_makefiles directory. Using the command cd code; make -f nocmake_makefiles/makefile should build the parafeed project.

Successfully building and linking the test program code/tstcpp ensures that all libraries required by client codes are ready. For now, copy all code/libparafeed.a, code/*.h and code/calc/*.h files to the required location for linking your application.

Interfaces

The library libparafeed.a contains .o files from three independent libraries: libsh.a, libshccl.a and libcalc.a. These can be built and linked-to separately as well in the order libshccl.a libsh.a libcalc.a. For use in applications written in C and C++, libparafeed.a is sufficient.

While at this point the package is primarily meant for use in applications written in the C++ and C languages, code for FORTRAN interface exists and was used in the past. For use with FORTRAN, libshfcl.a is required instead of libshccl.a. However, this interface has not been used for a long time and may be in disrepair. If you do find the need for the FORTRAN interface and are not able to build libshfcl.a, please contact the authors.

Note that the C and FORTRAN interfaces have limitations. In particular, context based exposing/hiding of parameters is available only via the C++ interface. C++ interface can however be used in most C programs if they can be complied with a C++ compiler.

A more detailed document describing the API is under preparation. Till then, ask for help from the authors.

About

A library for an embedded interactive user interface


Languages

Language:C++ 58.1%Language:Makefile 24.2%Language:C 14.8%Language:CMake 2.5%Language:Shell 0.4%