From fcafa5679b19528ce7c6bbaae5ad96cd9124ea32 Mon Sep 17 00:00:00 2001 From: Emily Boudreaux Date: Fri, 5 Jun 2026 16:02:43 +0000 Subject: [PATCH] docs(version-+-docs): v2.2.5 -> v2.2.2 This version brings the more robust system to system install scheme, sandboxed vendor libraries at install time, and documentation of these locations in the readme --- Doxyfile | 2 +- meson.build | 2 +- readme.md | 21 +++++++++++++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/Doxyfile b/Doxyfile index e98e20b..83182a1 100644 --- a/Doxyfile +++ b/Doxyfile @@ -48,7 +48,7 @@ PROJECT_NAME = libconfig # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = v2.2.5 +PROJECT_NUMBER = v2.2.6 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewers a diff --git a/meson.build b/meson.build index c1fbb1a..b667a27 100644 --- a/meson.build +++ b/meson.build @@ -18,7 +18,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # *********************************************************************** # -project('libconfig', ['cpp', 'c'], version: 'v2.2.5', default_options: ['cpp_std=c++23'], meson_version: '>=1.5.0') +project('libconfig', ['cpp', 'c'], version: 'v2.2.6', default_options: ['cpp_std=c++23'], meson_version: '>=1.5.0') # Add default visibility for all C++ targets add_project_arguments('-fvisibility=default', language: 'cpp') diff --git a/readme.md b/readme.md index 6a0d70d..2a102ee 100644 --- a/readme.md +++ b/readme.md @@ -140,3 +140,24 @@ time_step = 0.01 max_time = 100.0 ``` +## Linking Other Code +At compile time libconfig generates a pkg-config file which makes linking other code to libconfig easy. Note that you +will need to have run `meson setup` at least once to generate the pkg-config file before you can link to it. + +Headers are installed to the meson install dir (e.g. /usr/local/include) under a `fourdst/config` subdirectory so you +can include the main header with `#include "fourdst/config/config.h"`. Including this header will include all of the +necessary headers for using libconfig. + +When linking to libconfig you can use `pkg-config --cflags --libs fourdst-config` to get the necessary compiler and +linker flags. If you are using meson to build your project you can use `dependency('fourdst-config')` in your +meson.build file to link to libconfig. + +Libraries are installed to the meson install dir (e.g. /usr/local/lib) with the name `libfourdst-config.so` on linux and +`fourdst-config.a` on macOS. The pkg-config file will take care of the correct library name for your platform. + +Finally, vendor headers and libraries are placed in a dedicated vendor directory in the fourdst directory so as to not +interfere with system packages. The pkg-config file will include the necessary include and library paths to use these +vendor dependencies as well. For example, libconfig depends on toml++ for parsing TOML files. The toml++ headers are +included in `fourdst/vendor/tomlplusplus` and the pkg-config file will include the necessary include path to use these +headers when you link to libconfig. +