From 25f1e3eee89f38f4d877938d0d6930b92742a147 Mon Sep 17 00:00:00 2001 From: trim21 Date: Sun, 5 Jan 2025 02:08:20 +0800 Subject: [PATCH] fmt: do not build libfmt unless it's needed --- 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 a3c461823..5ccf9adfd 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 9bfe4f188..ad591c7bc 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 000000000..6d1b209d9 --- /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', +)