https://github.com/redcode/zeta
Header-only general purpose library
https://github.com/redcode/zeta
c c-plus-plus general-purpose header-only multi-platform standalone
Last synced: 6 months ago
JSON representation
Header-only general purpose library
- Host: GitHub
- URL: https://github.com/redcode/zeta
- Owner: redcode
- License: lgpl-3.0
- Created: 2013-07-31T23:04:35.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2024-12-19T11:09:09.000Z (10 months ago)
- Last Synced: 2024-12-23T21:35:41.406Z (10 months ago)
- Topics: c, c-plus-plus, general-purpose, header-only, multi-platform, standalone
- Language: C
- Homepage: http://zeta.st/download
- Size: 6.51 MB
- Stars: 37
- Watchers: 6
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: COPYING
- Support: support/Zeta.pc.in
- Authors: AUTHORS
Awesome Lists containing this project
README
# Zeta
## Installation
###
Debian,
Ubuntu and other Debian-based Linux distributions
First, add the `zxe` repository and update the package index:
```shell
sudo mkdir -pm700 /root/.gnupg
sudo mkdir -pm755 /etc/apt/keyrings
sudo gpg --no-default-keyring --keyring /etc/apt/keyrings/zxe-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys FE214A38D6A0C01D9AF514EE841EA3BD3A7E1487
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/zxe-archive-keyring.gpg] https://zxe.io/repos/apt stable main" | sudo tee /etc/apt/sources.list.d/zxe.list
sudo apt update
```Then install the package:
```shell
sudo apt install libzeta-dev
```###
Gentoo
First, add and sync the [`zxe`](https://github.com/redcode/zxe-gentoo-overlay) overlay:
```shell
eselect repository add zxe git https://github.com/redcode/zxe-gentoo-overlay.git
emaint sync --repo zxe
```Then install the library:
```shell
emerge dev-libs/zeta
```###
Homebrew
```shell
brew install redcode/zxe/zeta
```## Installation from source code
### Prerequisites
You will need [CMake](https://cmake.org) v3.12 or later to install the package and, optionally, a recent version of [Sphinx](https://www.sphinx-doc.org) to compile the documentation. Also, make sure that you have [LaTeX](https://www.latex-project.org) with PDF support installed on your system if you want to generate the documentation in PDF format.
### Configure
Once the prerequisites are met, create a directory and run `cmake` from there to prepare the build system:
```shell
mkdir build
cd build
cmake [options]
```The resulting build files can be configured by passing options to `cmake`. To show a complete list of those available along with their current settings, type the following:
```shell
cmake -LAH -N -B .
```If in doubt, read the [CMake documentation](https://cmake.org/documentation/) for more information on configuration options. The following two standard CMake options are relevant:
* **
-D[CMAKE_BUILD_TYPE](https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html)=(Debug|Release|RelWithDebInfo|MinSizeRel)
**
Choose the type of build (configuration) to generate.
The default is `Release`.* **
-D[CMAKE_INSTALL_PREFIX](https://cmake.org/cmake/help/latest/variable/CMAKE_INSTALL_PREFIX.html)="\"
**
Specify the installation prefix.
The default is `"/usr/local"` (on [UNIX](https://en.wikipedia.org/wiki/Unix) and [UNIX-like](https://en.wikipedia.org/wiki/Unix-like) operating systems).Package-specific options are prefixed with `Zeta_` and are as follows:
* **`-DZeta_INSTALL_CMAKEDIR=""`**
Specify the directory in which to install the CMake [config-file package](https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#config-file-packages).
The default is"${[CMAKE_INSTALL_DATAROOTDIR](https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html)}/Zeta/cmake"
.* **`-DZeta_INSTALL_PKGCONFIGDIR=""`**
Specify the directory in which to install the [pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config) [file](https://people.freedesktop.org/~dbn/pkg-config-guide.html).
The default is"${[CMAKE_INSTALL_DATAROOTDIR](https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html)}/pkgconfig"
.* **`-DZeta_SPHINX_HTML_THEME="[]"`**
Specify the Sphinx theme for the documentation in HTML format.
The default is `""` (use the default theme).* **`-DZeta_WITH_CMAKE_SUPPORT=(YES|NO)`**
Generate and install the CMake [config-file package](https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#config-file-packages).
The default is `NO`.* **`-DZeta_WITH_HTML_DOCUMENTATION=(YES|NO)`**
Build and install the documentation in HTML format.
It requires Sphinx.
The default is `NO`.* **`-DZeta_WITH_PDF_DOCUMENTATION=(YES|NO)`**
Build and install the documentation in PDF format.
It requires Sphinx and LaTeX with PDF support.
The default is `NO`.* **`-DZeta_WITH_PKGCONFIG_SUPPORT=(YES|NO)`**
Generate and install the [pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config) [file](https://people.freedesktop.org/~dbn/pkg-config-guide.html).
The default is `NO`.* **`-DZeta_WITH_STANDARD_DOCUMENTS=(YES|NO)`**
Install the standard text documents distributed with the package: [`AUTHORS`](AUTHORS), [`COPYING`](COPYING), [`COPYING.LESSER`](COPYING.LESSER), [`HISTORY`](HISTORY) and [`README`](README).
The default is `NO`.### Build and install
Finally, once the build system is configured according to your needs, build and install the package:
```shell
cmake --build . [--config (Debug|Release|RelWithDebInfo|MinSizeRel)]
cmake --install . [--config ]
```The [`--config`](https://cmake.org/cmake/help/latest/manual/cmake.1.html#cmdoption-cmake-build-config) option is only necessary for those [CMake generators](https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html) that ignore [`CMAKE_BUILD_TYPE`](#cmake_option_cmake_build_type) (e.g., Xcode and Visual Studio).
## License
Copyright © 2006-2025 Manuel Sainz de Baranda y Goñi.
This library is [free software](https://www.gnu.org/philosophy/free-sw.html): you can redistribute it and/or modify it under the terms of the [GNU Lesser General Public License](https://www.gnu.org/licenses/lgpl-3.0.html) as published by the [Free Software Foundation](https://www.fsf.org), either version 3 of the License, or (at your option) any later version.
**This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE**. See the GNU Lesser General Public License for more details.
You should have received a [copy](COPYING.LESSER) of the GNU Lesser General Public License along with this library. If not, see .