YAML is a horrid format with far too many edge cases. We have switched to TOML. Further, we have completly reworked the framework so that 1. There is no longer any global config state. Config objects now must be passed between scopes by the caller. This will introduce some more friction but whill also make order of initialization clear 2. Config objects are now strongly typed and there is a single sourth of truth for any given config object baked in using the some struct.
51 lines
1.8 KiB
Meson
51 lines
1.8 KiB
Meson
# ***********************************************************************
|
|
#
|
|
# Copyright (C) 2025 -- The 4D-STAR Collaboration
|
|
# File Author: Emily Boudreaux
|
|
# Last Modified: June 21, 2025
|
|
#
|
|
# libconfig is free software; you can use it and/or modify
|
|
# it under the terms and restrictions the GNU General Library Public
|
|
# License version 3 (GPLv3) as published by the Free Software Foundation.
|
|
#
|
|
# libconfig 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 Library General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Library General Public License
|
|
# along with this software; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
#
|
|
# *********************************************************************** #
|
|
project('libconfig', 'cpp', version: 'v1.1.4', 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')
|
|
|
|
cpp = meson.get_compiler('cpp')
|
|
subdir('build-config')
|
|
subdir('src')
|
|
|
|
if get_option('build_tests')
|
|
subdir('tests')
|
|
endif
|
|
|
|
if get_option('build_examples')
|
|
subdir('examples')
|
|
endif
|
|
|
|
#if get_option('pkg_config')
|
|
# message('Generating pkg-config file for libconfig...')
|
|
# pkg = import('pkgconfig')
|
|
# pkg.generate(
|
|
# name: 'libconfig',
|
|
# description: 'Configuration module for SERiF and related projects',
|
|
# version: meson.project_version(),
|
|
# libraries: [libconfig],
|
|
# subdirs: ['fourdst'],
|
|
# filebase: 'fourdst_config',
|
|
# install_dir: join_paths(get_option('libdir'), 'pkgconfig')
|
|
# )
|
|
#endif
|