diff --git a/src/libexpr/expr-config.hh b/src/libexpr/expr-config.hh deleted file mode 100644 index e28b461c0..000000000 --- a/src/libexpr/expr-config.hh +++ /dev/null @@ -1,3 +0,0 @@ -// 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." diff --git a/src/libexpr/include/nix/expr/config.hh b/src/libexpr/include/nix/expr/config.hh deleted file mode 120000 index 45d3ca29d..000000000 --- a/src/libexpr/include/nix/expr/config.hh +++ /dev/null @@ -1 +0,0 @@ -../../../expr-config.hh \ No newline at end of file diff --git a/src/libexpr/include/nix/expr/meson.build b/src/libexpr/include/nix/expr/meson.build index 3eb80de68..01275e52e 100644 --- a/src/libexpr/include/nix/expr/meson.build +++ b/src/libexpr/include/nix/expr/meson.build @@ -10,7 +10,6 @@ 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', diff --git a/src/libexpr/meson.build b/src/libexpr/meson.build index 402bca0e1..2e773938d 100644 --- a/src/libexpr/meson.build +++ b/src/libexpr/meson.build @@ -79,11 +79,6 @@ 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( @@ -168,8 +163,6 @@ 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, @@ -188,8 +181,4 @@ 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') diff --git a/src/libmain/meson.build b/src/libmain/meson.build index 4f78d265b..65fcb6239 100644 --- a/src/libmain/meson.build +++ b/src/libmain/meson.build @@ -17,12 +17,14 @@ 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'), 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') diff --git a/src/libstore-tests/meson.build b/src/libstore-tests/meson.build index eb3d14530..1822a3520 100644 --- a/src/libstore-tests/meson.build +++ b/src/libstore-tests/meson.build @@ -40,9 +40,6 @@ 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', diff --git a/src/libstore-tests/s3-binary-cache-store.cc b/src/libstore-tests/s3-binary-cache-store.cc index dbb414f2b..251e96172 100644 --- a/src/libstore-tests/s3-binary-cache-store.cc +++ b/src/libstore-tests/s3-binary-cache-store.cc @@ -1,10 +1,9 @@ -#include "store-tests-config.hh" -#if ENABLE_S3 +#include "nix/store/s3-binary-cache-store.hh" + +#if NIX_WITH_S3_SUPPORT # include -# include "nix/store/s3-binary-cache-store.hh" - namespace nix { TEST(S3BinaryCacheStore, constructConfig) diff --git a/src/libstore/filetransfer.cc b/src/libstore/filetransfer.cc index 6de458823..475637d74 100644 --- a/src/libstore/filetransfer.cc +++ b/src/libstore/filetransfer.cc @@ -9,7 +9,7 @@ #include "nix/util/signals.hh" #include "store-config-private.hh" -#if ENABLE_S3 +#if NIX_WITH_S3_SUPPORT #include #endif @@ -756,7 +756,7 @@ struct curlFileTransfer : public FileTransfer #endif } -#if ENABLE_S3 +#if NIX_WITH_S3_SUPPORT std::tuple parseS3Uri(std::string uri) { auto [path, params] = splitUriAndParams(uri); @@ -779,7 +779,7 @@ struct curlFileTransfer : public FileTransfer if (hasPrefix(request.uri, "s3://")) { // FIXME: do this on a worker thread try { -#if ENABLE_S3 +#if NIX_WITH_S3_SUPPORT auto [bucketName, key, params] = parseS3Uri(request.uri); std::string profile = getOr(params, "profile", ""); diff --git a/src/libstore/include/nix/store/s3-binary-cache-store.hh b/src/libstore/include/nix/store/s3-binary-cache-store.hh index eec2dc6ee..7bc04aa4a 100644 --- a/src/libstore/include/nix/store/s3-binary-cache-store.hh +++ b/src/libstore/include/nix/store/s3-binary-cache-store.hh @@ -1,9 +1,13 @@ #pragma once ///@file -#include "nix/store/binary-cache-store.hh" +#include "nix/store/config.hh" -#include +#if NIX_WITH_S3_SUPPORT + +# include "nix/store/binary-cache-store.hh" + +# include namespace nix { @@ -125,3 +129,5 @@ public: }; } + +#endif diff --git a/src/libstore/include/nix/store/s3.hh b/src/libstore/include/nix/store/s3.hh index 5ac5b9a9f..9c159ba0f 100644 --- a/src/libstore/include/nix/store/s3.hh +++ b/src/libstore/include/nix/store/s3.hh @@ -1,7 +1,7 @@ #pragma once ///@file #include "store-config-private.hh" -#if ENABLE_S3 +#if NIX_WITH_S3_SUPPORT #include "nix/util/ref.hh" diff --git a/src/libstore/meson.build b/src/libstore/meson.build index e9f817482..59c62fe04 100644 --- a/src/libstore/meson.build +++ b/src/libstore/meson.build @@ -126,7 +126,8 @@ deps_private += sqlite # AWS C++ SDK has bad pkg-config. See # https://github.com/aws/aws-sdk-cpp/issues/2673 for details. aws_s3 = dependency('aws-cpp-sdk-s3', required : false) -configdata_priv.set('ENABLE_S3', aws_s3.found().to_int()) +# The S3 store definitions in the header will be hidden based on this variables. +configdata_pub.set('NIX_WITH_S3_SUPPORT', aws_s3.found().to_int()) if aws_s3.found() aws_s3 = declare_dependency( include_directories: include_directories(aws_s3.get_variable('includedir')), @@ -153,13 +154,13 @@ endforeach busybox = find_program(get_option('sandbox-shell'), required : false) +# This one goes in config.h +# 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? +configdata_priv.set('HAVE_EMBEDDED_SANDBOX_SHELL', get_option('embedded-sandbox-shell').to_int()) + if get_option('embedded-sandbox-shell') - # This one goes in config.h - # 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( 'embedded-sandbox-shell.gen.hh', @@ -182,11 +183,6 @@ 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( @@ -369,7 +365,7 @@ this_library = library( install : true, ) -install_headers(headers + [ config_pub_h ], subdir : 'nix/store', preserve_path : true) +install_headers(headers, subdir : 'nix/store', preserve_path : true) libraries_private = [] diff --git a/src/libstore/s3-binary-cache-store.cc b/src/libstore/s3-binary-cache-store.cc index 4e51e728a..87f5feb45 100644 --- a/src/libstore/s3-binary-cache-store.cc +++ b/src/libstore/s3-binary-cache-store.cc @@ -1,10 +1,10 @@ -#include "store-config-private.hh" -#if ENABLE_S3 +#include "nix/store/s3-binary-cache-store.hh" + +#if NIX_WITH_S3_SUPPORT #include #include "nix/store/s3.hh" -#include "nix/store/s3-binary-cache-store.hh" #include "nix/store/nar-info.hh" #include "nix/store/nar-info-disk-cache.hh" #include "nix/store/globals.hh" diff --git a/src/libstore/unix/build/local-derivation-goal.cc b/src/libstore/unix/build/local-derivation-goal.cc index 185c98bb6..892513ea8 100644 --- a/src/libstore/unix/build/local-derivation-goal.cc +++ b/src/libstore/unix/build/local-derivation-goal.cc @@ -2017,7 +2017,7 @@ void LocalDerivationGoal::runChild() for (auto & i : pathsInChroot) { if (i.second.source == "/proc") continue; // backwards compatibility - #ifdef HAVE_EMBEDDED_SANDBOX_SHELL + #if HAVE_EMBEDDED_SANDBOX_SHELL if (i.second.source == "__embedded_sandbox_shell__") { static unsigned char sh[] = { #include "embedded-sandbox-shell.gen.hh"