Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion src/nix/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,7 @@ if host_machine.system() == 'windows'
executable_suffix = '.exe'
endif

nix_symlinks_targets = []
foreach linkname : nix_symlinks
install_symlink(
linkname + executable_suffix,
Expand All @@ -220,7 +221,7 @@ foreach linkname : nix_symlinks
# The 'runtime' tag is what executables default to, which we want to emulate here.
install_tag : 'runtime',
)
custom_target(
symlink_target = custom_target(
command : [ 'ln', '-sf', fs.name(this_exe), '@OUTPUT@' ],
output : linkname + executable_suffix,
# native doesn't allow dangling symlinks, but the target executable often doesn't exist at this time
Expand All @@ -230,6 +231,7 @@ foreach linkname : nix_symlinks
)
# TODO(Ericson3214): Doesn't yet work
#meson.override_find_program(linkname, t)
nix_symlinks_targets += symlink_target
endforeach

install_symlink(
Expand Down
3 changes: 2 additions & 1 deletion src/perl/lib/Nix/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@ nix_perl_scripts = files(
'Utils.pm',
)

nix_perl_scripts_copy_tgts = []
foreach f : nix_perl_scripts
fs.copyfile(f)
nix_perl_scripts_copy_tgts += fs.copyfile(f)
endforeach


Expand Down
2 changes: 1 addition & 1 deletion src/perl/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,6 @@ if get_option('tests').enabled()
yath,
args : [ 'test' ],
workdir : meson.current_build_dir(),
depends : [ nix_perl_store_lib ],
depends : [ nix_perl_store_lib ] + nix_perl_tests_copy_tgts + nix_perl_scripts_copy_tgts,
)
endif
4 changes: 2 additions & 2 deletions src/perl/t/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ nix_perl_tests = files(
'init.t',
)


nix_perl_tests_copy_tgts = []
foreach f : nix_perl_tests
fs.copyfile(f)
nix_perl_tests_copy_tgts += fs.copyfile(f)
endforeach
14 changes: 13 additions & 1 deletion tests/functional/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,18 @@ subdir('local-overlay-store')
foreach suite : suites
workdir = suite['workdir']
suite_name = suite['name']
# This is workaround until [1] is resolved. When building in a devshell
# as a subproject we want the tests to depend on the nix build target, so
# that it gets automatically rebuilt.
# However, when the functional test suite is built separately (via componentized
# builds or in NixOS tests) we can't depend on the nix executable, since it's
# an external program. The following is a simple heuristic that suffices for now.
# [1]: https://github.com/mesonbuild/meson/issues/13877
deps = suite['deps']
if meson.is_subproject()
nix_subproject = subproject('nix')
deps += [ nix ] + nix_subproject.get_variable('nix_symlinks_targets')
endif
foreach script : suite['tests']
# Turns, e.g., `tests/functional/flakes/show.sh` into a Meson test target called
# `functional-flakes-show`.
Expand Down Expand Up @@ -252,7 +264,7 @@ foreach suite : suites
# them more time than the default of 30 seconds.
timeout : 300,
# Used for target dependency/ordering tracking, not adding compiler flags or anything.
depends : suite['deps'],
depends : deps,
workdir : workdir,
)
endforeach
Expand Down
Loading