1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-12-22 00:41:08 +01:00
nix/src/libmain/meson.build
Sergei Zimmerman 03101cc839
treewide: Bump C++ standard version to C++23
Compilers in nixpkgs have caught up and major distros
should also have recent enough compilers. It would be
nice to have newer features like more full featured
ranges and deducing this.
2025-08-19 15:33:27 +03:00

91 lines
1.9 KiB
Meson

project(
'nix-main',
'cpp',
version : files('.version'),
default_options : [
'cpp_std=c++23',
# TODO(Qyriad): increase the warning level
'warning_level=1',
'errorlogs=true', # Please print logs for tests that fail
],
meson_version : '>= 1.1',
license : 'LGPL-2.1-or-later',
)
cxx = meson.get_compiler('cpp')
subdir('nix-meson-build-support/deps-lists')
configdata = configuration_data()
deps_private_maybe_subproject = []
deps_public_maybe_subproject = [
dependency('nix-util'),
dependency('nix-store'),
# FIXME: This is only here for the NIX_USE_BOEHMGC macro dependency
# Removing nix-expr will make the build more concurrent and is
# architecturally nice, perhaps.
dependency('nix-expr'),
]
subdir('nix-meson-build-support/subprojects')
pubsetbuf_test = '''
#include <iostream>
using namespace std;
char buf[1024];
int main() {
cerr.rdbuf()->pubsetbuf(buf, sizeof(buf));
}
'''
configdata.set(
'HAVE_PUBSETBUF',
cxx.compiles(pubsetbuf_test).to_int(),
description : 'Optionally used for buffering on standard error',
)
config_priv_h = configure_file(
configuration : configdata,
output : 'main-config-private.hh',
)
subdir('nix-meson-build-support/common')
sources = files(
'common-args.cc',
'loggers.cc',
'plugin.cc',
'progress-bar.cc',
'shared.cc',
)
if host_machine.system() != 'windows'
sources += files(
'unix/stack.cc',
)
endif
subdir('include/nix/main')
subdir('nix-meson-build-support/export-all-symbols')
subdir('nix-meson-build-support/windows-version')
this_library = library(
'nixmain',
sources,
config_priv_h,
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
prelink : true, # For C++ static initializers
install : true,
)
install_headers(headers, subdir : 'nix/main', preserve_path : true)
libraries_private = []
subdir('nix-meson-build-support/export')