Appearance
Installation
Prerequisites
A Fortran 2008+ compliant compiler is required. GNU gfortran ≥ 9.2.0 and Intel Fortran ≥ 19.0.4 are known to work.
Download
Clone the repository:
bash
git clone https://github.com/szaghi/StringiFor
cd StringiForDependencies are declared in the fobos file and fetched automatically by FoBiS into src/third_party/:
bash
fobis fetch # fetch and build all dependencies
fobis fetch --update # re-fetch and rebuildThird-Party Dependencies
Dependencies are fetched into src/third_party/:
| Library | Purpose |
|---|---|
| PENF | Portable numeric kind parameters (I1P–I8P, R4P–R16P) and number-to-string conversion |
| FACE | ANSI terminal color/style support (used by string%colorize) |
| BeFoR64 | Base64 encode/decode (used by string%encode/string%decode) |
Build with fpm (recommended for new projects)
Fortran Package Manager resolves dependencies automatically. Add to your project's fpm.toml:
toml
[dependencies]
StringiFor.git = "https://github.com/szaghi/StringiFor"To build StringiFor itself:
bash
fpm buildINFO
The test suite is not wired into fpm: run it with FoBiS, as described below.
Build with FoBiS (primary development tool)
FoBiS is the officially supported build system for development.
bash
pip install FoBiS.pyBuild all tests
bash
fobis buildCompiled test executables are placed in ./exe/.
Build the library
bash
# Static library (GNU gfortran)
fobis build --mode stringifor-static-gnu
# Shared library (GNU gfortran)
fobis build --mode stringifor-shared-gnu
# Static library (Intel Fortran)
fobis build --mode stringifor-static-intel
# Shared library (Intel Fortran)
fobis build --mode stringifor-shared-intelThe library is placed in ./lib/ (libstringifor.a or libstringifor.so).
Debug builds
bash
fobis build --mode tests-gnu-debug
fobis build --mode tests-intel-debugList all modes
bash
fobis build --lmodesInstall in one command
FoBiS can clone, build and install the library without a manual checkout:
bash
fobis install szaghi/StringiFor --mode stringifor-static-gnu
fobis install szaghi/StringiFor --mode stringifor-static-gnu --prefix /path/to/prefixUse as a dependency of your FoBiS project
Declare StringiFor in the fobos file of your project and run fobis fetch:
ini
[dependencies]
deps_dir = src/third_party
StringiFor = https://github.com/szaghi/StringiForBuild with CMake
bash
cmake -B build
cmake --build buildWhen StringiFor is the top-level project the tests are built too; disable them with -DBUILD_TESTING=OFF.
Build with GNU Make
A makefile is provided for static library builds:
bash
# Build static library with GNU gfortran (./lib/libstringifor.a)
make
# Build the tests suite
make TESTS=yes
# Use Intel Fortran instead
make COMPILER=intel
make COMPILER=intel TESTS=yesRunning the Test Suite
After a FoBiS or Make build that includes tests:
bash
bash scripts/run_tests.shEach executable in ./exe/ is run and its output checked for pass/fail.