From 0431e0c7de8d555cd4e7f0b13e601ff0259f94e7 Mon Sep 17 00:00:00 2001 From: Emily Boudreaux Date: Thu, 11 Jun 2026 12:20:32 -0400 Subject: [PATCH] fix(rpath): fixed macos RPATH issue --- Doxyfile | 2 +- meson.build | 2 +- src/composition/meson.build | 33 +++++++++++++++++++++++---------- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/Doxyfile b/Doxyfile index 89e5255..4f3f5ea 100644 --- a/Doxyfile +++ b/Doxyfile @@ -48,7 +48,7 @@ PROJECT_NAME = fourdst::libcomposition # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = v2.4.7 +PROJECT_NUMBER = v2.4.8 # 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 12a1bff..2190be4 100644 --- a/meson.build +++ b/meson.build @@ -18,7 +18,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # *********************************************************************** # -project('libcomposition', 'cpp', version: 'v2.4.7', default_options: ['cpp_std=c++23'], meson_version: '>=1.5.0') +project('libcomposition', 'cpp', version: 'v2.4.8', 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/src/composition/meson.build b/src/composition/meson.build index 3546ab8..950beea 100644 --- a/src/composition/meson.build +++ b/src/composition/meson.build @@ -37,12 +37,16 @@ dependencies = [ xxhash_dep ] +samedir_rpath = host_machine.system() == 'darwin' ? '@loader_path' : '$ORIGIN' + libcomposition = library('composition', composition_sources, cpp_args: ['-fvisibility=default'], dependencies: dependencies, install: true, - install_dir: composition_libdir + install_dir: composition_libdir, + install_rpath: samedir_rpath, + build_rpath: samedir_rpath ) @@ -56,47 +60,56 @@ composition_headers = files( 'include/fourdst/composition/composition.h', 'include/fourdst/composition/composition_abstract.h', ) -install_headers(composition_headers, install_dir : composition_header_install_dir) composition_headers_utils = files( 'include/fourdst/composition/utils/utils.h', 'include/fourdst/composition/utils/composition_hash.h' ) -install_headers(composition_headers_utils, install_dir: composition_header_install_dir / 'utils') composition_headers_io = files( 'include/fourdst/composition/io/standard_compositions.h', 'include/fourdst/composition/io/StandardMetalFractionsBinary.h' ) -install_headers(composition_headers_io, install_dir: composition_header_install_dir / 'io') composition_headers_decorators = files( 'include/fourdst/composition/decorators/composition_masked.h', 'include/fourdst/composition/decorators/composition_decorator_abstract.h', ) -install_headers(composition_headers_decorators, install_dir: composition_header_install_dir / 'decorators') composition_headers_atomic = files( 'include/fourdst/atomic/atomicSpecies.h', 'include/fourdst/atomic/elements.h', 'include/fourdst/atomic/species.h', - + ) -install_headers(composition_headers_atomic, install_dir: composition_header_install_dir / 'atomic') composition_exception_headers = files( 'include/fourdst/composition/exceptions/exceptions_composition.h', ) -install_headers(composition_exception_headers, install_dir: composition_header_install_dir / 'exceptions') composition_iterator_headers = files( 'include/fourdst/composition/iterators/composition_abstract_iterator.h', ) -install_headers(composition_iterator_headers, install_dir: composition_header_install_dir / 'iterators') - +if get_option('build_python') + install_data(composition_headers, install_dir : composition_header_install_dir) + install_data(composition_headers_utils, install_dir: composition_header_install_dir / 'utils') + install_data(composition_headers_io, install_dir: composition_header_install_dir / 'io') + install_data(composition_headers_decorators, install_dir: composition_header_install_dir / 'decorators') + install_data(composition_headers_atomic, install_dir: composition_header_install_dir / 'atomic') + install_data(composition_exception_headers, install_dir: composition_header_install_dir / 'exceptions') + install_data(composition_iterator_headers, install_dir: composition_header_install_dir / 'iterators') +else + install_headers(composition_headers, install_dir : composition_header_install_dir) + install_headers(composition_headers_utils, install_dir: composition_header_install_dir / 'utils') + install_headers(composition_headers_io, install_dir: composition_header_install_dir / 'io') + install_headers(composition_headers_decorators, install_dir: composition_header_install_dir / 'decorators') + install_headers(composition_headers_atomic, install_dir: composition_header_install_dir / 'atomic') + install_headers(composition_exception_headers, install_dir: composition_header_install_dir / 'exceptions') + install_headers(composition_iterator_headers, install_dir: composition_header_install_dir / 'iterators') +endif v = meson.project_version() conf_data = configuration_data()