djcb / mu

maildir indexer/searcher + emacs mail client + guile bindings
http://www.djcbsoftware.nl/code/mu
GNU General Public License v3.0
1.59k stars 384 forks source link

[mu bug] Build script fails if configured with tests disabled #2684

Closed progfolio closed 3 months ago

progfolio commented 3 months ago

Describe the bug

I'm not familiar with meson, so please forgive my ignorance if this is not a bug. When upgrading to the latest mu version with tests disabled I get the following build error:

mu 1.12.2

  User defined options
    tests: disabled

Found ninja-1.11.1 at /usr/bin/ninja
Cleaning... 0 files.                                                                                                                                                                           
*** Now run either 'ninja -C build' or 'make' to build mu
*** Check the Makefile for other useful targets
(ins)n@laptop:mu [master]$ ninja -C build
ninja: Entering directory `build'
[2/99] Compiling C++ object lib/utils/libmu-utils.a.p/mu-test-utils.cc.o
FAILED: lib/utils/libmu-utils.a.p/mu-test-utils.cc.o 
c++ -Ilib/utils/libmu-utils.a.p -Ilib/utils -I../lib/utils -Ilib -I../lib -I../thirdparty -I. -I.. -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gio-unix-2.0 -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Wpedantic -std=c++17 -O2 -g -Wno-unused-parameter -Wno-cast-function-type -Wformat-security -Wformat=2 -Wstack-protector -fstack-protector-strong -Wno-switch-enum -Wno-array-bounds -Wno-stringop-overflow -Wno-volatile -DHAVE_CONFIG_H -fPIC -pthread -MD -MQ lib/utils/libmu-utils.a.p/mu-test-utils.cc.o -MF lib/utils/libmu-utils.a.p/mu-test-utils.cc.o.d -o lib/utils/libmu-utils.a.p/mu-test-utils.cc.o -c ../lib/utils/mu-test-utils.cc
../lib/utils/mu-test-utils.cc: In destructor ‘Mu::TempDir::~TempDir()’:
../lib/utils/mu-test-utils.cc:134:38: error: ‘RM_PROGRAM’ was not declared in this scope; did you mean ‘MU_PROGRAM’?
  134 |         if (auto&& res{run_command0({RM_PROGRAM, "-fr", path_})}; !res) {
      |                                      ^~~~~~~~~~
      |                                      MU_PROGRAM
../lib/utils/mu-test-utils.cc:134:36: error: could not convert ‘{<expression error>, "-fr", ((Mu::TempDir*)this)->Mu::TempDir::path_}’ from ‘<brace-enclosed initializer list>’ to ‘std::initializer_list<std::__cxx11::basic_string<char> >’
  134 |         if (auto&& res{run_command0({RM_PROGRAM, "-fr", path_})}; !res) {
      |                        ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                    |
      |                                    <brace-enclosed initializer list>
[11/99] Compiling C++ object lib/libmu.a.p/mu-query-processor.cc.o
ninja: build stopped: subcommand failed.

Recompiling with tests enabled builds successfully. Won't have time to bisect for a couple days, but my gut is pointing to:

15c9a3ea51bfdef2d590573fa96f024265994723

To Reproduce

  1. $ ./autogen.sh -Dtests=disabled
  2. $ ninja -C build

Environment

Checklist

progfolio commented 3 months ago

Tested and everything is building cleanly again. Thank you.