diff --git a/build_tests/configure/check_lib_success.rb b/build_tests/configure/check_lib_success.rb index d98af8c..92dbe8a 100644 --- a/build_tests/configure/check_lib_success.rb +++ b/build_tests/configure/check_lib_success.rb @@ -1,3 +1,9 @@ configure do check_lib "m" end + +build do + Environment.new(echo: :command) do |env| + env.Program("simple.exe", "simple.c") + end +end diff --git a/lib/rscons/configure_op.rb b/lib/rscons/configure_op.rb index 30e5791..d3b23b9 100644 --- a/lib/rscons/configure_op.rb +++ b/lib/rscons/configure_op.rb @@ -178,6 +178,9 @@ module Rscons } command = Environment.new.build_command("${LDCMD}", vars) _, _, status = log_and_test_command(command) + if status == 0 + store_append({"LIBS" => [lib]}, options) + end common_config_checks(status, options) end diff --git a/spec/build_tests_spec.rb b/spec/build_tests_spec.rb index 3796cf6..8c6c6e6 100644 --- a/spec/build_tests_spec.rb +++ b/spec/build_tests_spec.rb @@ -1773,6 +1773,15 @@ EOF expect(result.status).to eq 0 expect(result.stdout).to match /Checking for library 'mfoofoo'... not found/ end + + it "links against the checked library by default" do + test_dir "configure" + result = run_rscons(rsconscript: "check_lib_success.rb", op: "build") + expect(result.stderr).to eq "" + expect(result.status).to eq 0 + expect(result.stdout).to match /Checking for library 'm'... found/ + expect(result.stdout).to match /gcc.*-lm/ + end end context "check_program" do