Ishiko/C++ is a set of C++ libraries.
This repository contains the project documentation.
-
BasePlatform: code to handle differences between operating systems.
-
Collections: container classes.
-
Concurrency: Executors and thread pools.
-
Configuration: configuration classes.
-
Crypto: cryptographic functions.
-
CSV: CSV utilities.
-
DataStructures: data structures.
-
Diff: diff utilities.
-
Errors: code to handle and report errors.
-
FileSystem: utilities to work with the file system.
-
Hash: a library to calculate hashes.
-
HTTP: a library that provides HTTP functionality.
-
IO: I/O utilities.
-
JSON: JSON utilities.
-
Logging: logging utilities.
-
Memory: Allocators and memory buffers.
-
Metrics: utilities to collect metrics.
-
Networking: networking.
-
PDF: code to work with PDF documents.
-
Process: code to work with processes and environment variables.
-
REST: REST utilities.
-
Synchronization: synchronization mechanisms.
-
Terminal: utilities to work with terminal input and output.
-
TestFramework: a C++ test framework.
-
Text: utilities to work with text data.
-
Time: basic classes to represent time.
-
Types: fundamental types.
-
UUIDs: UUID types.
-
Workflows: a framework to schedule and execute tasks.
-
XML: XML utilities.
-
YAML: YAML utilities.
- Botan: Botan is a C++ cryptography library.
- fmt: {fmt} is an open-source formatting library providing a fast and safe alternative to C stdio and C++ iostreams.
- mstch: mstch is a complete implementation of {{mustache}} templates using modern C++.
- pugixml: Light-weight, simple and fast XML parser for C++ with XPath support
First the third-party dependencies need to be installed. These are available in the ishiko-third-party organization. There are no dependencies between them so the build order doesn't matter but we define the following order for consistency.
- fmt
- Botan
- pugixml
- mstch
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=.. ..
cmake --build . --config=Debug
cmake --build . --config=Release
cmake --install . --config=Debug
cmake --install . --config=Release
This installs the libraries in the lib folder at the root of the repo. The last step is to rename the files to adopt the Boost naming convention: fmt-d-x64.lib.
On Windows:
git checkout 2.19.1
python ./configure.py --cc=msvc --os=windows --disable-shared-library --debug-mode
Then open a Visual Studio build shell and run:
nmake
nmake check
nmake install
The following build order can be used to build the projects from scratch:
- BasePlatform (without the test code)
- Errors (without the test code)
- Memory (without the test code)
- Logging (without the test code)
- Types (without the test code)
- Hash (without the test code)
- Synchronization (without the test code)
- DataStructures (without the test code)
- Collections (without the test code)
- Text (without the test code)
- Time (without the test code)
- Concurrency (without the test code)
- Process (without the test code)
- IO (without the test code)
- FileSystem (without the test code)
- XML (without the test code)
- JSON (without the test code)
- YAML (without the test code)
- Diff (without the test code)
- Configuration (without the test code)
- TestFramework/Core
- BasePlatform (now with the test code)
- Errors (now with the test code)
- Memory (now with the test code)
- Logging (now with the test code)
- Types (now with the test code)
- Hash (now with the test code)
- Synchronization (now with the test code)
- DataStructures (now with the test code)
- Collections (now with the test code)
- Text (now with the test code)
- Time (now with the test code)
- Concurrency (now with the test code)
- Process (now with the test code)
- IO (now with the test code)
- FileSystem (now with the test code)
- XML (now with the test code)
- JSON (now with the test code)
- YAML (now with the test code)
- Diff (now with the test code)
- Configuration (now with the test code)
- TestFramework
- Crypto
- Terminal
- Workflows
- UUIDs
- Networking
- HTTP
- REST
- CSV
None.
Copyright (c) 2005-2024 Xavier Leclercq
This work is licensed under the Boost Software License 1.0
See https://github.com/ishiko-cpp/project/blob/main/LICENSE.txt