It is sometimes useful for callers to be able to create new composition objects without overloading all the required methods. The CompositionDecorator acts as a simple translation layer which will pass any calls to virtual methods down to the next level of the composition stack (other than those which may have been overloaded by the caller)
48 lines
1.8 KiB
Meson
48 lines
1.8 KiB
Meson
# ***********************************************************************
|
|
#
|
|
# Copyright (C) 2025 -- The 4D-STAR Collaboration
|
|
# File Author: Emily Boudreaux
|
|
# Last Modified: June 21, 2025
|
|
#
|
|
# libcomposition 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.
|
|
#
|
|
# libcomposition 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('libcomposition', 'cpp', version: 'v2.0.3', 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')
|
|
# Disable shadow warnings
|
|
add_project_arguments('-Wno-shadow', language: 'cpp')
|
|
|
|
cpp = meson.get_compiler('cpp')
|
|
subdir('build-config')
|
|
|
|
|
|
subdir('src')
|
|
subdir('tests')
|
|
|
|
if get_option('pkg-config')
|
|
message('Generating pkg-config file for libcomposition...')
|
|
pkg = import('pkgconfig')
|
|
pkg.generate(
|
|
name: 'libcomposition',
|
|
description: 'Composition module for SERiF and related projects',
|
|
version: meson.project_version(),
|
|
libraries: [libcomposition],
|
|
subdirs: ['fourdst'],
|
|
filebase: 'fourdst_composition',
|
|
install_dir: join_paths(get_option('libdir'), 'pkgconfig')
|
|
)
|
|
endif
|