diff --git a/src/libcmd/meson.build b/src/libcmd/meson.build index 85d22a5f3..114c099df 100644 --- a/src/libcmd/meson.build +++ b/src/libcmd/meson.build @@ -63,7 +63,9 @@ add_project_arguments( # It would be nice for our headers to be idempotent instead. '-include', 'config-util.hh', '-include', 'config-store.hh', + # '-include', 'config-fetchers.h', '-include', 'config-expr.hh', + '-include', 'config-main.hh', '-include', 'config-cmd.hh', language : 'cpp', ) @@ -91,7 +93,7 @@ sources = files( include_dirs = [include_directories('.')] -headers = files( +headers = [config_h] + files( 'built-path.hh', 'command-installable-value.hh', 'command.hh', @@ -117,7 +119,6 @@ subdir('nix-meson-build-support/windows-version') this_library = library( 'nixcmd', sources, - config_h, dependencies : deps_public + deps_private + deps_other, include_directories : include_dirs, link_args: linker_export_flags, diff --git a/src/libexpr-c/meson.build b/src/libexpr-c/meson.build index 8405525ca..9487132cf 100644 --- a/src/libexpr-c/meson.build +++ b/src/libexpr-c/meson.build @@ -14,6 +14,8 @@ cxx = meson.get_compiler('cpp') subdir('nix-meson-build-support/deps-lists') +configdata = configuration_data() + deps_private_maybe_subproject = [ dependency('nix-util'), dependency('nix-store'), @@ -25,6 +27,14 @@ deps_public_maybe_subproject = [ ] subdir('nix-meson-build-support/subprojects') +# TODO rename, because it will conflict with downstream projects +configdata.set_quoted('PACKAGE_VERSION', meson.project_version()) + +config_h = configure_file( + configuration : configdata, + output : 'config-expr.h', +) + add_project_arguments( # TODO(Qyriad): Yes this is how the autoconf+Make system did it. # It would be nice for our headers to be idempotent instead. @@ -34,6 +44,10 @@ add_project_arguments( '-include', 'config-store.hh', '-include', 'config-expr.hh', + # From C libraries, for our public, installed headers too + '-include', 'config-util.h', + '-include', 'config-store.h', + '-include', 'config-expr.h', language : 'cpp', ) @@ -47,7 +61,7 @@ sources = files( include_dirs = [include_directories('.')] -headers = files( +headers = [config_h] + files( 'nix_api_expr.h', 'nix_api_external.h', 'nix_api_value.h', diff --git a/src/libexpr-tests/meson.build b/src/libexpr-tests/meson.build index 9f6edb9b3..667a0d7b7 100644 --- a/src/libexpr-tests/meson.build +++ b/src/libexpr-tests/meson.build @@ -41,6 +41,9 @@ add_project_arguments( '-include', 'config-util.hh', '-include', 'config-store.hh', '-include', 'config-expr.hh', + '-include', 'config-util.h', + '-include', 'config-store.h', + '-include', 'config-expr.h', language : 'cpp', ) diff --git a/src/libflake-c/meson.build b/src/libflake-c/meson.build index 469e0ade4..85d20644d 100644 --- a/src/libflake-c/meson.build +++ b/src/libflake-c/meson.build @@ -14,6 +14,8 @@ cxx = meson.get_compiler('cpp') subdir('nix-meson-build-support/deps-lists') +configdata = configuration_data() + deps_private_maybe_subproject = [ dependency('nix-util'), dependency('nix-store'), @@ -27,6 +29,14 @@ deps_public_maybe_subproject = [ ] subdir('nix-meson-build-support/subprojects') +# TODO rename, because it will conflict with downstream projects +configdata.set_quoted('PACKAGE_VERSION', meson.project_version()) + +config_h = configure_file( + configuration : configdata, + output : 'config-flake.h', +) + add_project_arguments( # TODO(Qyriad): Yes this is how the autoconf+Make system did it. # It would be nice for our headers to be idempotent instead. @@ -38,6 +48,11 @@ add_project_arguments( # not generated (yet?) # '-include', 'config-flake.hh', + # From C libraries, for our public, installed headers too + '-include', 'config-util.h', + '-include', 'config-store.h', + '-include', 'config-expr.h', + '-include', 'config-flake.h', language : 'cpp', ) @@ -49,7 +64,7 @@ sources = files( include_dirs = [include_directories('.')] -headers = files( +headers = [config_h] + files( 'nix_api_flake.h', ) diff --git a/src/libmain-c/meson.build b/src/libmain-c/meson.build index 0e9380a12..d875d2c3f 100644 --- a/src/libmain-c/meson.build +++ b/src/libmain-c/meson.build @@ -14,6 +14,8 @@ cxx = meson.get_compiler('cpp') subdir('nix-meson-build-support/deps-lists') +configdata = configuration_data() + deps_private_maybe_subproject = [ dependency('nix-util'), dependency('nix-store'), @@ -25,6 +27,14 @@ deps_public_maybe_subproject = [ ] subdir('nix-meson-build-support/subprojects') +# TODO rename, because it will conflict with downstream projects +configdata.set_quoted('PACKAGE_VERSION', meson.project_version()) + +config_h = configure_file( + configuration : configdata, + output : 'config-main.h', +) + add_project_arguments( # TODO(Qyriad): Yes this is how the autoconf+Make system did it. # It would be nice for our headers to be idempotent instead. @@ -32,7 +42,12 @@ add_project_arguments( # From C++ libraries, only for internals '-include', 'config-util.hh', '-include', 'config-store.hh', + '-include', 'config-main.hh', + # From C libraries, for our public, installed headers too + '-include', 'config-util.h', + '-include', 'config-store.h', + '-include', 'config-main.h', language : 'cpp', ) @@ -44,7 +59,7 @@ sources = files( include_dirs = [include_directories('.')] -headers = files( +headers = [config_h] + files( 'nix_api_main.h', ) diff --git a/src/libmain/meson.build b/src/libmain/meson.build index 7c24abb29..6a0a22295 100644 --- a/src/libmain/meson.build +++ b/src/libmain/meson.build @@ -74,7 +74,7 @@ endif include_dirs = [include_directories('.')] -headers = files( +headers = [config_h] + files( 'common-args.hh', 'loggers.hh', 'plugin.hh', @@ -88,7 +88,6 @@ subdir('nix-meson-build-support/windows-version') this_library = library( 'nixmain', sources, - config_h, dependencies : deps_public + deps_private + deps_other, include_directories : include_dirs, link_args: linker_export_flags, diff --git a/src/libstore-c/meson.build b/src/libstore-c/meson.build index 2e2275fee..17d18609f 100644 --- a/src/libstore-c/meson.build +++ b/src/libstore-c/meson.build @@ -14,6 +14,8 @@ cxx = meson.get_compiler('cpp') subdir('nix-meson-build-support/deps-lists') +configdata = configuration_data() + deps_private_maybe_subproject = [ dependency('nix-util'), dependency('nix-store'), @@ -23,6 +25,14 @@ deps_public_maybe_subproject = [ ] subdir('nix-meson-build-support/subprojects') +# TODO rename, because it will conflict with downstream projects +configdata.set_quoted('PACKAGE_VERSION', meson.project_version()) + +config_h = configure_file( + configuration : configdata, + output : 'config-store.h', +) + add_project_arguments( # TODO(Qyriad): Yes this is how the autoconf+Make system did it. # It would be nice for our headers to be idempotent instead. @@ -31,6 +41,9 @@ add_project_arguments( '-include', 'config-util.hh', '-include', 'config-store.hh', + # From C libraries, for our public, installed headers too + '-include', 'config-util.h', + '-include', 'config-store.h', language : 'cpp', ) @@ -42,7 +55,7 @@ sources = files( include_dirs = [include_directories('.')] -headers = files( +headers = [config_h] + files( 'nix_api_store.h', ) diff --git a/src/libstore-tests/meson.build b/src/libstore-tests/meson.build index 9f3d8e1d4..3ba0795e9 100644 --- a/src/libstore-tests/meson.build +++ b/src/libstore-tests/meson.build @@ -45,6 +45,8 @@ add_project_arguments( # It would be nice for our headers to be idempotent instead. '-include', 'config-util.hh', '-include', 'config-store.hh', + '-include', 'config-util.h', + '-include', 'config-store.h', language : 'cpp', ) diff --git a/src/libstore/meson.build b/src/libstore/meson.build index 822a1b3d4..e91b8ad29 100644 --- a/src/libstore/meson.build +++ b/src/libstore/meson.build @@ -67,7 +67,6 @@ endforeach has_acl_support = cxx.has_header('sys/xattr.h') \ and cxx.has_function('llistxattr') \ and cxx.has_function('lremovexattr') -# TODO: used in header - make proper public header and make sure it's included. Affects ABI! configdata.set('HAVE_ACL_SUPPORT', has_acl_support.to_int()) if host_machine.system() == 'darwin' diff --git a/src/libutil-c/meson.build b/src/libutil-c/meson.build index 2733a33ba..ac1297665 100644 --- a/src/libutil-c/meson.build +++ b/src/libutil-c/meson.build @@ -23,6 +23,7 @@ deps_public_maybe_subproject = [ ] subdir('nix-meson-build-support/subprojects') +# TODO rename, because it will conflict with downstream projects configdata.set_quoted('PACKAGE_VERSION', meson.project_version()) config_h = configure_file( @@ -37,6 +38,8 @@ add_project_arguments( # From C++ libraries, only for internals '-include', 'config-util.hh', + # From C libraries, for our public, installed headers too + '-include', 'config-util.h', language : 'cpp', ) @@ -48,7 +51,7 @@ sources = files( include_dirs = [include_directories('.')] -headers = files( +headers = [config_h] + files( 'nix_api_util.h', ) @@ -61,7 +64,6 @@ subdir('nix-meson-build-support/windows-version') this_library = library( 'nixutilc', sources, - config_h, dependencies : deps_public + deps_private + deps_other, include_directories : include_dirs, link_args: linker_export_flags, diff --git a/src/libutil-c/nix_api_util.cc b/src/libutil-c/nix_api_util.cc index 3e061d53e..992ea0a2a 100644 --- a/src/libutil-c/nix_api_util.cc +++ b/src/libutil-c/nix_api_util.cc @@ -7,8 +7,6 @@ #include #include -#include "config-util.h" - nix_c_context * nix_c_context_create() { return new nix_c_context(); diff --git a/src/libutil-tests/meson.build b/src/libutil-tests/meson.build index f982d6cf6..ad2c61711 100644 --- a/src/libutil-tests/meson.build +++ b/src/libutil-tests/meson.build @@ -32,16 +32,11 @@ deps_private += rapidcheck gtest = dependency('gtest', main : true) deps_private += gtest -configdata = configuration_data() -configdata.set_quoted('PACKAGE_VERSION', meson.project_version()) - -config_h = configure_file( - configuration : configdata, - output : 'config-util-tests.hh', -) - add_project_arguments( - '-include', 'config-util-tests.hh', + # TODO(Qyriad): Yes this is how the autoconf+Make system did it. + # It would be nice for our headers to be idempotent instead. + '-include', 'config-util.hh', + '-include', 'config-util.h', language : 'cpp', ) @@ -84,7 +79,6 @@ include_dirs = [include_directories('.')] this_exe = executable( meson.project_name(), sources, - config_h, dependencies : deps_private_subproject + deps_private + deps_other, include_directories : include_dirs, # TODO: -lrapidcheck, see ../libutil-support/build.meson diff --git a/src/libutil/meson.build b/src/libutil/meson.build index 917483771..33de2f882 100644 --- a/src/libutil/meson.build +++ b/src/libutil/meson.build @@ -33,14 +33,12 @@ check_funcs = [ 'pipe2', # Optionally used to preallocate files to be large enough before # writing to them. - # WARNING: define also used in libstore 'posix_fallocate', # Optionally used to get more information about processes failing due # to a signal on Unix. 'strsignal', # Optionally used to try to close more file descriptors (e.g. before # forking) on Unix. - # WARNING: also used in libexpr 'sysconf', # Optionally used for changing the mtime of files and symlinks. 'utimensat', diff --git a/src/nix/meson.build b/src/nix/meson.build index 7e14de958..e19c6b73d 100644 --- a/src/nix/meson.build +++ b/src/nix/meson.build @@ -57,6 +57,9 @@ add_project_arguments( '-include', 'config-util.hh', '-include', 'config-store.hh', '-include', 'config-expr.hh', + #'-include', 'config-fetchers.hh', + '-include', 'config-main.hh', + '-include', 'config-cmd.hh', '-include', 'config-nix-cli.hh', language : 'cpp', ) diff --git a/tests/functional/plugins/meson.build b/tests/functional/plugins/meson.build index 13acdbbc5..3d6b2f0e1 100644 --- a/tests/functional/plugins/meson.build +++ b/tests/functional/plugins/meson.build @@ -6,6 +6,7 @@ libplugintest = shared_module( # It would be nice for our headers to be idempotent instead. '-include', 'config-util.hh', '-include', 'config-store.hh', + # '-include', 'config-fetchers.hh', '-include', 'config-expr.hh', ], dependencies : [