From d03ffd65f23655392592ed7f7cdb5aeee9d087f4 Mon Sep 17 00:00:00 2001 From: trim21 Date: Sun, 5 Jan 2025 02:11:13 +0800 Subject: [PATCH] fmt: add `enable-header-only` option to make it truly header-only --- releases.json | 1 + subprojects/packagefiles/fmt/meson.build | 27 ++++++++++++------- .../packagefiles/fmt/meson_options.txt | 6 +++++ 3 files changed, 24 insertions(+), 10 deletions(-) create mode 100644 subprojects/packagefiles/fmt/meson_options.txt diff --git a/releases.json b/releases.json index a3c461823c..5ccf9adfdf 100644 --- a/releases.json +++ b/releases.json @@ -841,6 +841,7 @@ "fmt" ], "versions": [ + "11.1.1-2", "11.1.1-1", "11.0.2-1", "11.0.1-1", diff --git a/subprojects/packagefiles/fmt/meson.build b/subprojects/packagefiles/fmt/meson.build index 9bfe4f188a..f8d81d7647 100644 --- a/subprojects/packagefiles/fmt/meson.build +++ b/subprojects/packagefiles/fmt/meson.build @@ -7,19 +7,24 @@ if get_option('default_library') == 'shared' fmt_interface_cpp_args += ['-DFMT_SHARED'] endif +header_only = get_option('enable-header-only') + fmt_lib = library( 'fmt', 'src/format.cc', 'src/os.cc', cpp_args: fmt_private_cpp_args, include_directories: 'include', - install: true, + build_by_default: not header_only, + install: not header_only, ) -install_subdir('include', - strip_directory: true, - install_dir: get_option('includedir'), -) +if not header_only + install_subdir('include', + strip_directory: true, + install_dir: get_option('includedir'), + ) +endif fmt_dep = declare_dependency( include_directories: 'include', @@ -36,8 +41,10 @@ fmt_header_only_dep = declare_dependency( compile_args: '-DFMT_HEADER_ONLY', ) -pkg_mod = import('pkgconfig') -pkg_mod.generate(fmt_lib, - name: 'fmt', - filebase: 'fmt', -) +if not header_only + pkg_mod = import('pkgconfig') + pkg_mod.generate(fmt_lib, + name: 'fmt', + filebase: 'fmt', + ) +endif diff --git a/subprojects/packagefiles/fmt/meson_options.txt b/subprojects/packagefiles/fmt/meson_options.txt new file mode 100644 index 0000000000..6d1b209d9b --- /dev/null +++ b/subprojects/packagefiles/fmt/meson_options.txt @@ -0,0 +1,6 @@ +option( + 'enable-header-only', + type: 'boolean', + value: false, + description: 'enable header only mode and disable build for libfmt', +)