1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-25 02:21:16 +02:00

Hack together a fix for the public headers

Please fix this.
This commit is contained in:
Robert Hensing 2025-04-05 00:46:06 +02:00
parent 5c90b41715
commit bd2d5b7335
8 changed files with 33 additions and 1 deletions

View file

@ -0,0 +1,3 @@
// TODO: Remove this damn file while keeping public config headers working
#error \
"This file is a placeholder. It only exists so that meson accepts the symbolic link include/nix/expr/config.hh to this file, but we expect meson to overwrite it with the real file. Apparently that did not happen. I deeply apologize for this mess."

View file

@ -0,0 +1 @@
../../../expr-config.hh

View file

@ -10,6 +10,7 @@ config_pub_h = configure_file(
headers = [config_pub_h] + files(
'attr-path.hh',
'attr-set.hh',
'config.hh',
'eval-cache.hh',
'eval-error.hh',
'eval-gc.hh',

View file

@ -79,6 +79,11 @@ config_priv_h = configure_file(
output : 'expr-config-private.hh',
)
config_pub_h = configure_file(
configuration : configdata_pub,
output : 'expr-config.hh',
)
subdir('nix-meson-build-support/common')
parser_tab = custom_target(
@ -163,6 +168,8 @@ subdir('primops')
subdir('nix-meson-build-support/export-all-symbols')
subdir('nix-meson-build-support/windows-version')
headers += [config_pub_h]
this_library = library(
'nixexpr',
sources,
@ -181,4 +188,8 @@ install_headers(headers, subdir : 'nix/expr', preserve_path : true)
libraries_private = []
nixexpr_dep = declare_dependency(
include_directories : include_directories('.'),
link_with : this_library,
)
subdir('nix-meson-build-support/export')

View file

@ -17,6 +17,8 @@ subdir('nix-meson-build-support/deps-lists')
configdata = configuration_data()
deps_private_maybe_subproject = [
# This dependency may be very limited; was introduced for NIX_USE_BOEHMGC macro dependency
dependency('nix-expr'),
]
deps_public_maybe_subproject = [
dependency('nix-util'),

View file

@ -6,6 +6,7 @@
nix-util,
nix-store,
nix-expr,
# Configuration Options
@ -33,6 +34,10 @@ mkMesonLibrary (finalAttrs: {
];
propagatedBuildInputs = [
# 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.
nix-expr
nix-util
nix-store
openssl

View file

@ -40,6 +40,9 @@ deps_private += gtest
configdata = configuration_data()
configdata.set_quoted('PACKAGE_VERSION', meson.project_version())
aws_s3 = dependency('aws-cpp-sdk-s3', required : false)
configdata.set('ENABLE_S3', aws_s3.found().to_int())
config_priv_h = configure_file(
configuration : configdata,
output : 'store-tests-config.hh',

View file

@ -158,6 +158,7 @@ if get_option('embedded-sandbox-shell')
# The path to busybox is passed as a -D flag when compiling this_library.
# This solution is inherited from the old make buildsystem
# TODO: do this differently?
# TODO: at least define it unconditionally, so we get checking from -Wundef
configdata_priv.set('HAVE_EMBEDDED_SANDBOX_SHELL', 1)
hexdump = find_program('hexdump', native : true)
embedded_sandbox_shell_gen = custom_target(
@ -181,6 +182,11 @@ config_priv_h = configure_file(
output : 'store-config-private.hh',
)
config_pub_h = configure_file(
configuration : configdata_pub,
output : 'store-config.hh',
)
subdir('nix-meson-build-support/common')
sources = files(
@ -362,7 +368,7 @@ this_library = library(
install : true,
)
install_headers(headers, subdir : 'nix/store', preserve_path : true)
install_headers(headers + [ config_pub_h ], subdir : 'nix/store', preserve_path : true)
libraries_private = []